org.apache.axiom.attachments.utils
Class BAAInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by org.apache.axiom.attachments.utils.BAAInputStream
All Implemented Interfaces:
java.io.Closeable

public class BAAInputStream
extends java.io.InputStream

BAAInputStream is like a ByteArrayInputStream. A ByteArrayInputStream stores the backing data in a byte[]. BAAInputStream stores the backing data in a Array of 4K byte[]. Using several non-contiguous chunks reduces memory copy and resizing.


Field Summary
(package private)  int BUFFER_SIZE
           
(package private)  byte[] currBuffer
           
(package private)  int currIndex
           
(package private)  java.util.ArrayList data
           
(package private)  int i
           
(package private)  int mark
           
(package private)  byte[] read_byte
           
(package private)  int size
           
(package private)  int totalIndex
           
 
Constructor Summary
BAAInputStream(java.util.ArrayList data, int size)
           
 
Method Summary
 int available()
           
 void mark(int readlimit)
           
 boolean markSupported()
           
 int read()
           
 int read(byte[] b)
           
 int read(byte[] b, int off, int len)
           
 void reset()
           
 
Methods inherited from class java.io.InputStream
close, skip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

data

java.util.ArrayList data

BUFFER_SIZE

int BUFFER_SIZE

i

int i

size

int size

currIndex

int currIndex

totalIndex

int totalIndex

mark

int mark

currBuffer

byte[] currBuffer

read_byte

byte[] read_byte
Constructor Detail

BAAInputStream

public BAAInputStream(java.util.ArrayList data,
                      int size)
Method Detail

read

public int read()
         throws java.io.IOException
Specified by:
read in class java.io.InputStream
Throws:
java.io.IOException

available

public int available()
              throws java.io.IOException
Overrides:
available in class java.io.InputStream
Throws:
java.io.IOException

mark

public void mark(int readlimit)
Overrides:
mark in class java.io.InputStream

markSupported

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

read

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

read

public int read(byte[] b)
         throws java.io.IOException
Overrides:
read in class java.io.InputStream
Throws:
java.io.IOException

reset

public void reset()
           throws java.io.IOException
Overrides:
reset in class java.io.InputStream
Throws:
java.io.IOException