com.thaiopensource.validate.auto
Class RewindableInputStream
java.lang.Object
java.io.InputStream
com.thaiopensource.validate.auto.RewindableInputStream
- All Implemented Interfaces:
- Rewindable, Closeable
public class RewindableInputStream
- extends InputStream
- implements Rewindable
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
head
private RewindableInputStream.Block head
curBlockAvail
private int curBlockAvail
- If curBlockAvail > 0, then there are curBlockAvail bytes available to be
returned starting at curBlockPos in curBlock.buf.
curBlock
private RewindableInputStream.Block curBlock
curBlockPos
private int curBlockPos
lastBlock
private RewindableInputStream.Block lastBlock
saving
private boolean saving
- true unless willNotRewind has been called
in
private final InputStream in
pretendClosed
private boolean pretendClosed
eof
private boolean eof
- true if we have got an EOF from the underlying InputStream
RewindableInputStream
public RewindableInputStream(InputStream in)
close
public void close()
throws IOException
- Specified by:
close
in interface Closeable
- Overrides:
close
in class InputStream
- Throws:
IOException
rewind
public void rewind()
- Specified by:
rewind
in interface Rewindable
canRewind
public boolean canRewind()
- Specified by:
canRewind
in interface Rewindable
willNotRewind
public void willNotRewind()
- Specified by:
willNotRewind
in interface Rewindable
read
public int read()
throws IOException
- Specified by:
read
in class InputStream
- Throws:
IOException
read
public int read(byte[] b,
int off,
int len)
throws IOException
- Overrides:
read
in class InputStream
- Throws:
IOException
available
public int available()
throws IOException
- Overrides:
available
in class InputStream
- Throws:
IOException