- All Implemented Interfaces:
- Closeable, AutoCloseable
- Enclosing class:
- XMLEntityManager
protected final class XMLEntityManager.RewindableInputStream
extends InputStream
This class wraps the byte inputstreams we're presented with.
 We need it because java.io.InputStreams don't provide
 functionality to reread processed bytes, and they have a habit
 of reading more than one character when you call their read()
 methods.  This means that, once we discover the true (declared)
 encoding of a document, we can neither backtrack to read the
 whole doc again nor start reading where we are with a new
 reader.
 This class allows rewinding an inputStream by allowing a mark
 to be set, and the stream reset to that position.  The
 class assumes that it needs to read one character per
 invocation when it's read() method is inovked, but uses the
 underlying InputStream's read(char[], offset length) method--it
 won't buffer data read this way!
- Author:
- Neil Graham, IBM, Glenn Marcy, IBM