org.apache.james.mime4j.io
Class MimeBoundaryInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by java.io.FilterInputStream
          extended by org.apache.james.mime4j.io.LineReaderInputStream
              extended by org.apache.james.mime4j.io.MimeBoundaryInputStream
All Implemented Interfaces:
java.io.Closeable

public class MimeBoundaryInputStream
extends LineReaderInputStream

Stream that constrains itself to a single MIME body part. After the stream ends (i.e. read() returns -1) isLastPart() can be used to determine if a final boundary has been seen or not.


Field Summary
 
Fields inherited from class java.io.FilterInputStream
in
 
Constructor Summary
MimeBoundaryInputStream(BufferedLineReaderInputStream inbuffer, java.lang.String boundary)
          Creates a new MimeBoundaryInputStream.
MimeBoundaryInputStream(BufferedLineReaderInputStream inbuffer, java.lang.String boundary, boolean strict)
          Creates a new MimeBoundaryInputStream.
 
Method Summary
 void close()
          Closes the underlying stream.
 boolean eof()
           
 boolean isEmptyStream()
           
 boolean isFullyConsumed()
           
 boolean isLastPart()
           
 boolean markSupported()
           
 int read()
           
 int read(byte[] b, int off, int len)
           
 boolean readAllowed()
           
 int readLine(ByteArrayBuffer dst)
          Reads one line of text into the given ByteArrayBuffer.
 java.lang.String toString()
           
 boolean unread(ByteArrayBuffer buf)
          Tries to unread the last read line.
 
Methods inherited from class java.io.FilterInputStream
available, mark, read, reset, skip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

MimeBoundaryInputStream

public MimeBoundaryInputStream(BufferedLineReaderInputStream inbuffer,
                               java.lang.String boundary,
                               boolean strict)
                        throws java.io.IOException
Creates a new MimeBoundaryInputStream.

Parameters:
inbuffer - The underlying stream.
boundary - Boundary string (not including leading hyphens).
Throws:
java.lang.IllegalArgumentException - when boundary is too long
java.io.IOException

MimeBoundaryInputStream

public MimeBoundaryInputStream(BufferedLineReaderInputStream inbuffer,
                               java.lang.String boundary)
                        throws java.io.IOException
Creates a new MimeBoundaryInputStream.

Parameters:
inbuffer - The underlying stream.
boundary - Boundary string (not including leading hyphens).
Throws:
java.lang.IllegalArgumentException - when boundary is too long
java.io.IOException
Method Detail

close

public void close()
           throws java.io.IOException
Closes the underlying stream.

Specified by:
close in interface java.io.Closeable
Overrides:
close in class java.io.FilterInputStream
Throws:
java.io.IOException - on I/O errors.

markSupported

public boolean markSupported()
Overrides:
markSupported in class java.io.FilterInputStream
See Also:
InputStream.markSupported()

readAllowed

public boolean readAllowed()
                    throws java.io.IOException
Throws:
java.io.IOException

read

public int read()
         throws java.io.IOException
Overrides:
read in class java.io.FilterInputStream
Throws:
java.io.IOException
See Also:
InputStream.read()

read

public int read(byte[] b,
                int off,
                int len)
         throws java.io.IOException
Overrides:
read in class java.io.FilterInputStream
Throws:
java.io.IOException

readLine

public int readLine(ByteArrayBuffer dst)
             throws java.io.IOException
Description copied from class: LineReaderInputStream
Reads one line of text into the given ByteArrayBuffer.

Specified by:
readLine in class LineReaderInputStream
Parameters:
dst - Destination
Returns:
number of bytes copied or -1 if the end of the stream has been reached.
Throws:
MaxLineLimitException - if the line exceeds a limit on the line length imposed by a subclass.
java.io.IOException - in case of an I/O error.

isEmptyStream

public boolean isEmptyStream()

isFullyConsumed

public boolean isFullyConsumed()

isLastPart

public boolean isLastPart()

eof

public boolean eof()

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

unread

public boolean unread(ByteArrayBuffer buf)
Description copied from class: LineReaderInputStream
Tries to unread the last read line. Implementation may refuse to unread a new buffer until the previous unread one has been competely consumed. Implementations will directly use the byte array backed by buf, so make sure to not alter it anymore once this method has been called.

Specified by:
unread in class LineReaderInputStream
Returns:
true if the unread has been succesfull.


Copyright © 2004-2012 The Apache Software Foundation. All Rights Reserved.