org.jboss.axis.attachments
Class BoundaryDelimitedStream

java.lang.Object
  extended byjava.io.InputStream
      extended byjava.io.FilterInputStream
          extended byorg.jboss.axis.attachments.BoundaryDelimitedStream

public class BoundaryDelimitedStream
extends java.io.FilterInputStream

This class takes the input stream and turns it multiple streams.


Field Summary
protected  byte[] boundary
           
protected static int BOUNDARY_NOT_FOUND
          Field BOUNDARY_NOT_FOUND.
protected  int streamNo
          Field streamNo.
 
Fields inherited from class java.io.FilterInputStream
in
 
Constructor Summary
protected BoundaryDelimitedStream(BoundaryDelimitedStream (src)  prev, int readbufsz)
          Constructor to create the next stream from the previous one.
 
Method Summary
 int available()
           
protected  int boundaryPosition(byte[] searchbuf, int start, int end)
          Read from the boundary delimited stream.
 void close()
          Closes the stream.
protected  void finalClose()
          Close the underlying stream and remove all references to it.
 BoundaryDelimitedStream (src) getNextStream()
          Gets the next stream.
protected  BoundaryDelimitedStream (src) getNextStream(int readbufsz)
          Gets the next stream.
 void mark(int readlimit)
          mark the stream.
 boolean markSupported()
          markSupported return false;
protected static int newStreamNo()
          Signal that a new stream has been created.
static void printarry(byte[] b, int start, int end)
          Method printarry
 int read()
          Read from the boundary delimited stream.
 int read(byte[] b)
          Read from the boundary delimited stream.
 int read(byte[] b, int off, int len)
          Read from the boundary delimited stream.
 void reset()
          reset the stream.
 
Methods inherited from class java.io.FilterInputStream
skip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

boundary

protected byte[] boundary

BOUNDARY_NOT_FOUND

protected static final int BOUNDARY_NOT_FOUND
Field BOUNDARY_NOT_FOUND.

See Also:
Constant Field Values (src)

streamNo

protected int streamNo
Field streamNo.

Constructor Detail

BoundaryDelimitedStream

protected BoundaryDelimitedStream(BoundaryDelimitedStream (src)  prev,
                                  int readbufsz)
                           throws java.io.IOException
Constructor to create the next stream from the previous one.

Parameters:
prev - the previous stream
readbufsz - how many bytes to make the read buffer
Throws:
java.io.IOException - if there was a problem reading data from prev
Method Detail

newStreamNo

protected static int newStreamNo()
Signal that a new stream has been created.

Returns:

getNextStream

public BoundaryDelimitedStream (src)  getNextStream()
                                      throws java.io.IOException
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:
java.io.IOException - if there was an error loading the data for the next stream

getNextStream

protected BoundaryDelimitedStream (src)  getNextStream(int readbufsz)
                                         throws java.io.IOException
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:
java.io.IOException - if there was an error loading the data for the next stream

read

public int read(byte[] b,
                int off,
                int len)
         throws java.io.IOException
Read from the boundary delimited stream.

Parameters:
b - is the array to read into.
off - is the offset
len -
Returns:
the number of bytes read. -1 if endof stream.
Throws:
java.io.IOException

read

public int read(byte[] b)
         throws java.io.IOException
Read from the boundary delimited stream.

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:
java.io.IOException

read

public int read()
         throws java.io.IOException
Read from the boundary delimited stream.

Returns:
The byte read, or -1 if endof stream.
Throws:
java.io.IOException

close

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

Throws:
java.io.IOException

mark

public void mark(int readlimit)
mark the stream. This is not supported.

Parameters:
readlimit -

reset

public void reset()
           throws java.io.IOException
reset the stream. This is not supported.

Throws:
java.io.IOException

markSupported

public boolean markSupported()
markSupported return false;

Returns:

available

public int available()
              throws java.io.IOException
Throws:
java.io.IOException

boundaryPosition

protected int boundaryPosition(byte[] searchbuf,
                               int start,
                               int end)
                        throws java.io.IOException
Read from the boundary delimited stream.

Parameters:
searchbuf - buffer to read from
start - starting index
end - ending index
Returns:
The position of the boundary. Detects the end of the source stream.
Throws:
java.io.IOException - if there was an error manipulating the underlying stream

finalClose

protected void finalClose()
                   throws java.io.IOException
Close the underlying stream and remove all references to it.

Throws:
java.io.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 -