Home » HttpComponents-Core-4.0.1 » org.apache.http.io » [javadoc | source]

    1   /*
    2    * $HeadURL: https://svn.apache.org/repos/asf/jakarta/httpcomponents/httpcore/tags/4.0-alpha2/src/java/org/apache/http/io/HttpDataOutputStream.java $
    3    * $Revision: 376961 $
    4    * $Date: 2006-02-11 11:32:50 +0100 (Sat, 11 Feb 2006) $
    5    *
    6    * ====================================================================
    7    *
    8    *  Copyright 1999-2006 The Apache Software Foundation
    9    *
   10    *  Licensed under the Apache License, Version 2.0 (the "License");
   11    *  you may not use this file except in compliance with the License.
   12    *  You may obtain a copy of the License at
   13    *
   14    *      http://www.apache.org/licenses/LICENSE-2.0
   15    *
   16    *  Unless required by applicable law or agreed to in writing, software
   17    *  distributed under the License is distributed on an "AS IS" BASIS,
   18    *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   19    *  See the License for the specific language governing permissions and
   20    *  limitations under the License.
   21    * ====================================================================
   22    *
   23    * This software consists of voluntary contributions made by many
   24    * individuals on behalf of the Apache Software Foundation.  For more
   25    * information on the Apache Software Foundation, please see
   26    * <http://www.apache.org/>.
   27    *
   28    */
   29   
   30   package org.apache.http.io;
   31   
   32   import java.io.IOException;
   33   import java.io.OutputStream;
   34   
   35   /**
   36    * A stream for writing to a {@link HttpDataTransmitter HttpDataTransmitter}.
   37    *
   38    * @author <a href="mailto:oleg at ural.ru">Oleg Kalnichevski</a>
   39    *
   40    * @version $Revision: 376961 $
   41    * 
   42    * @since 4.0
   43    */
   44   public class HttpDataOutputStream extends OutputStream {
   45       
   46       private final HttpDataTransmitter datatransmitter;
   47       
   48       private boolean closed = false;
   49       
   50       public HttpDataOutputStream(final HttpDataTransmitter datatransmitter) {
   51           super();
   52           if (datatransmitter == null) {
   53               throw new IllegalArgumentException("HTTP data transmitter may not be null");
   54           }
   55           this.datatransmitter = datatransmitter;
   56       }
   57       
   58       public void close() throws IOException {
   59           if (!this.closed) {
   60               this.closed = true;
   61               this.datatransmitter.flush();
   62           }
   63       }
   64   
   65       private void assertNotClosed() {
   66           if (this.closed) {
   67               throw new IllegalStateException("Stream closed"); 
   68           }
   69       }
   70       
   71       public void flush() throws IOException {
   72           assertNotClosed();
   73           this.datatransmitter.flush();
   74       }
   75       
   76       public void write(final byte[] b, int off, int len) throws IOException {
   77           assertNotClosed();
   78           this.datatransmitter.write(b, off, len);
   79       }
   80       
   81       public void write(int b) throws IOException {
   82           assertNotClosed();
   83           this.datatransmitter.write(b);
   84       }
   85   }

Home » HttpComponents-Core-4.0.1 » org.apache.http.io » [javadoc | source]