Package org.apache.axis.attachments
Class BoundaryDelimitedStream
java.lang.Object
java.io.InputStream
java.io.FilterInputStream
org.apache.axis.attachments.BoundaryDelimitedStream
- All Implemented Interfaces:
Closeable,AutoCloseable
This class takes the input stream and turns it multiple streams.
- Author:
- Rick Rineholt
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected byte[]protected static final intField BOUNDARY_NOT_FOUND.protected static org.apache.commons.logging.LogTheLogthat this class should log all events to.protected intField streamNo.Fields inherited from class java.io.FilterInputStream
in -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedBoundaryDelimitedStream(BoundaryDelimitedStream prev, int readbufsz) Constructor to create the next stream from the previous one. -
Method Summary
Modifier and TypeMethodDescriptionintprotected intboundaryPosition(byte[] searchbuf, int start, int end) Read from the boundary delimited stream.voidclose()Closes the stream.protected voidClose the underlying stream and remove all references to it.Gets the next stream.protected BoundaryDelimitedStreamgetNextStream(int readbufsz) Gets the next stream.voidmark(int readlimit) mark the stream.booleanmarkSupported return false;protected static intSignal that a new stream has been created.static voidprintarry(byte[] b, int start, int end) Method printarryintread()Read from the boundary delimited stream.intread(byte[] b) Read from the boundary delimited stream.intread(byte[] b, int off, int len) Read from the boundary delimited stream.voidreset()reset the stream.Methods inherited from class java.io.FilterInputStream
skipMethods inherited from class java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
-
Field Details
-
log
protected static org.apache.commons.logging.Log logTheLogthat this class should log all events to. -
boundary
protected byte[] boundary -
BOUNDARY_NOT_FOUND
protected static final int BOUNDARY_NOT_FOUNDField BOUNDARY_NOT_FOUND.- See Also:
-
streamNo
protected int streamNoField streamNo.
-
-
Constructor Details
-
BoundaryDelimitedStream
Constructor to create the next stream from the previous one.- Parameters:
prev- the previous streamreadbufsz- how many bytes to make the read buffer- Throws:
IOException- if there was a problem reading data fromprev
-
-
Method Details
-
newStreamNo
protected static int newStreamNo()Signal that a new stream has been created.- Returns:
-
getNextStream
Gets the next stream. From the previous using the same buffer size to read.- Returns:
- the boundary delmited stream, null if there are no more streams.
- Throws:
IOException- if there was an error loading the data for the next stream
-
getNextStream
Gets the next stream. From the previous using new buffer reading size.- Parameters:
readbufsz-- Returns:
- the boundary delmited stream, null if there are no more streams.
- Throws:
IOException- if there was an error loading the data for the next stream
-
read
Read from the boundary delimited stream.- Overrides:
readin classFilterInputStream- Parameters:
b- is the array to read into.off- is the offsetlen-- Returns:
- the number of bytes read. -1 if endof stream.
- Throws:
IOException
-
read
Read from the boundary delimited stream.- Overrides:
readin classFilterInputStream- Parameters:
b- is the array to read into. Read as much as possible into the size of this array.- Returns:
- the number of bytes read. -1 if endof stream.
- Throws:
IOException
-
read
Read from the boundary delimited stream.- Overrides:
readin classFilterInputStream- Returns:
- The byte read, or -1 if endof stream.
- Throws:
IOException
-
close
Closes the stream.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classFilterInputStream- Throws:
IOException
-
mark
public void mark(int readlimit) mark the stream. This is not supported.- Overrides:
markin classFilterInputStream- Parameters:
readlimit-
-
reset
reset the stream. This is not supported.- Overrides:
resetin classFilterInputStream- Throws:
IOException
-
markSupported
public boolean markSupported()markSupported return false;- Overrides:
markSupportedin classFilterInputStream- Returns:
-
available
- Overrides:
availablein classFilterInputStream- Throws:
IOException
-
boundaryPosition
Read from the boundary delimited stream.- Parameters:
searchbuf- buffer to read fromstart- starting indexend- ending index- Returns:
- The position of the boundary. Detects the end of the source stream.
- Throws:
IOException- if there was an error manipulating the underlying stream
-
finalClose
Close the underlying stream and remove all references to it.- Throws:
IOException- if the stream could not be closed
-
printarry
public static void printarry(byte[] b, int start, int end) Method printarry- Parameters:
b-start-end-
-