Class XmlHeaderAwareReader
- java.lang.Object
-
- java.io.Reader
-
- com.thoughtworks.xstream.core.util.XmlHeaderAwareReader
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,java.lang.Readable
public final class XmlHeaderAwareReader extends java.io.ReaderAReaderthat evaluates the XML header. It selects its encoding based on the encoding read with the XML header of the providedInputStream. The default encoding is UTF-8 and the version is 1.0 if the stream does not contain an XML header or the attributes are not set within the header.- Since:
- 1.3
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.StringKEY_ENCODINGprivate static java.lang.StringKEY_VERSIONprivate java.io.InputStreamReaderreaderprivate static intSTATE_ATTR_NAMEprivate static intSTATE_ATTR_VALUEprivate static intSTATE_AWAIT_XML_HEADERprivate static intSTATE_BOMprivate static intSTATE_STARTprivate doubleversionprivate static java.lang.StringXML_TOKEN
-
Constructor Summary
Constructors Constructor Description XmlHeaderAwareReader(java.io.InputStream in)Constructs an XmlHeaderAwareReader.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()booleanequals(java.lang.Object obj)java.lang.StringgetEncoding()private java.util.MapgetHeader(java.io.PushbackInputStream[] in)doublegetVersion()inthashCode()voidmark(int readAheadLimit)booleanmarkSupported()intread()intread(char[] cbuf)intread(char[] cbuf, int offset, int length)booleanready()voidreset()longskip(long n)java.lang.StringtoString()
-
-
-
Field Detail
-
reader
private final java.io.InputStreamReader reader
-
version
private final double version
-
KEY_ENCODING
private static final java.lang.String KEY_ENCODING
- See Also:
- Constant Field Values
-
KEY_VERSION
private static final java.lang.String KEY_VERSION
- See Also:
- Constant Field Values
-
XML_TOKEN
private static final java.lang.String XML_TOKEN
- See Also:
- Constant Field Values
-
STATE_BOM
private static final int STATE_BOM
- See Also:
- Constant Field Values
-
STATE_START
private static final int STATE_START
- See Also:
- Constant Field Values
-
STATE_AWAIT_XML_HEADER
private static final int STATE_AWAIT_XML_HEADER
- See Also:
- Constant Field Values
-
STATE_ATTR_NAME
private static final int STATE_ATTR_NAME
- See Also:
- Constant Field Values
-
STATE_ATTR_VALUE
private static final int STATE_ATTR_VALUE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
XmlHeaderAwareReader
public XmlHeaderAwareReader(java.io.InputStream in) throws java.io.UnsupportedEncodingException, java.io.IOExceptionConstructs an XmlHeaderAwareReader.- Parameters:
in- theInputStream- Throws:
java.io.UnsupportedEncodingException- if the encoding is not supportedjava.io.IOException- occurred while reading the XML header- Since:
- 1.3
-
-
Method Detail
-
getHeader
private java.util.Map getHeader(java.io.PushbackInputStream[] in) throws java.io.IOException- Throws:
java.io.IOException
-
getEncoding
public java.lang.String getEncoding()
- Since:
- 1.3
- See Also:
InputStreamReader.getEncoding()
-
getVersion
public double getVersion()
- Since:
- 1.3
- See Also:
InputStreamReader.getEncoding()
-
mark
public void mark(int readAheadLimit) throws java.io.IOException- Overrides:
markin classjava.io.Reader- Throws:
java.io.IOException- See Also:
Reader.mark(int)
-
markSupported
public boolean markSupported()
- Overrides:
markSupportedin classjava.io.Reader- See Also:
Reader.markSupported()
-
read
public int read() throws java.io.IOException- Overrides:
readin classjava.io.Reader- Throws:
java.io.IOException- See Also:
Reader.read()
-
read
public int read(char[] cbuf, int offset, int length) throws java.io.IOException- Specified by:
readin classjava.io.Reader- Throws:
java.io.IOException- See Also:
Reader.read(char[], int, int)
-
read
public int read(char[] cbuf) throws java.io.IOException- Overrides:
readin classjava.io.Reader- Throws:
java.io.IOException- See Also:
Reader.read(char[])
-
ready
public boolean ready() throws java.io.IOException- Overrides:
readyin classjava.io.Reader- Throws:
java.io.IOException- See Also:
Reader.ready()
-
reset
public void reset() throws java.io.IOException- Overrides:
resetin classjava.io.Reader- Throws:
java.io.IOException- See Also:
Reader.reset()
-
skip
public long skip(long n) throws java.io.IOException- Overrides:
skipin classjava.io.Reader- Throws:
java.io.IOException- See Also:
Reader.skip(long)
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Specified by:
closein classjava.io.Reader- Throws:
java.io.IOException- See Also:
Reader.close()
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object- See Also:
Object.equals(java.lang.Object)
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object- See Also:
Object.hashCode()
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object- See Also:
Object.toString()
-
-