|
||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jibx.runtime.impl.InputStreamWrapper
public class InputStreamWrapper
Wrapper for input stream that supports multiple character encodings. This is needed because the XPP3 pull parser does not support detecting the character encoding for a document based on the content of the document. If used with a common encoding this performs the conversion to characters using an inner reader class; otherwise, this creates the appropriate reader type
Nested Class Summary | |
---|---|
private class |
InputStreamWrapper.WrappedStream
Stream that just uses the enclosing class to buffer input from the wrapped stream. |
private class |
InputStreamWrapper.WrappedStreamISO88591Reader
Reader for input stream using ISO8859-1 encoding. |
private class |
InputStreamWrapper.WrappedStreamUTF8Reader
Reader for input stream using UTF-8 encoding. |
Field Summary | |
---|---|
static int |
DEFAULT_BUFFER_SIZE
Default input buffer size. |
private byte[] |
m_buffer
Buffer for input bytes. |
private int |
m_emptyOffset
Current offset for generating character from buffer. |
private java.lang.String |
m_encodingName
Name of encoding to be used for stream. |
private int |
m_endOffset
Offset past end of bytes in buffer. |
private boolean |
m_isEnd
Flag for end of stream reached. |
private int |
m_scanOffset
Scan position offset used for lookahead in buffer. |
private java.io.InputStream |
m_stream
Stream for byte input. |
Constructor Summary | |
---|---|
InputStreamWrapper()
Constructor using default buffer size. |
|
InputStreamWrapper(int size)
Constructor. |
Method Summary | |
---|---|
void |
close()
Close document input. |
private boolean |
fillBuffer()
Reads data into the buffer. |
java.lang.String |
getEncoding()
Get encoding for input document. |
java.io.Reader |
getReader()
Get reader for wrapped input stream. |
private boolean |
isWhite(int chr)
Check if a character is XML whitespace. |
private boolean |
require(int min)
Reads data into the buffer to at least a minimum number of bytes. |
void |
reset()
Reset to initial state for reuse. |
private java.lang.String |
scanQuoted()
Reads a quote delimited token from the scan position in the buffer. |
private java.lang.String |
scanToken()
Reads a space or equals ('=') delimited token from the scan position in the buffer. |
void |
setEncoding(java.lang.String enc)
Set encoding for stream. |
void |
setInput(java.io.InputStream ins)
Set input stream with encoding to be defined later. |
void |
setInput(java.io.InputStream ins,
java.lang.String enc)
Set input stream with specified encoding. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int DEFAULT_BUFFER_SIZE
private java.lang.String m_encodingName
private java.io.InputStream m_stream
private boolean m_isEnd
private byte[] m_buffer
private int m_endOffset
private int m_emptyOffset
private int m_scanOffset
Constructor Detail |
---|
public InputStreamWrapper(int size)
public InputStreamWrapper()
Method Detail |
---|
public void setInput(java.io.InputStream ins)
ins
- stream for document data inputpublic void setInput(java.io.InputStream ins, java.lang.String enc) throws java.io.IOException
ins
- stream for document data inputenc
- character encoding used for input from stream
(null
if to be determined from XML input)
java.io.IOException
public void setEncoding(java.lang.String enc) throws java.io.IOException
enc
- character encoding used for input from stream
(null
if to be determined from XML input)
java.io.IOException
- if unknown encoding, or encoding already setprivate boolean fillBuffer() throws java.io.IOException
true
if data has been read into buffer,
false
if not
java.io.IOException
- on error reading from wrapped streamprivate boolean require(int min) throws java.io.IOException
min
- number of bytes required
true
if buffer contains at least the required byte
count on return, false
if not
java.io.IOException
- on error reading from wrapped streamprivate boolean isWhite(int chr)
chr
-
true
if whitespace, false
if notprivate java.lang.String scanToken() throws java.io.IOException
java.io.IOException
- on error reading from wrapped streamprivate java.lang.String scanQuoted() throws java.io.IOException
java.io.IOException
- on error reading from wrapped streampublic java.io.Reader getReader() throws java.io.IOException
java.io.IOException
- if error reading from document or creating a reader
for the encoding foundpublic java.lang.String getEncoding()
getReader()
is called.
public void close() throws java.io.IOException
java.io.IOException
- on error closing documentpublic void reset()
|
||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |