org.codehaus.jackson.io
Class UTF32Reader
java.lang.Object
java.io.Reader
org.codehaus.jackson.io.UTF32Reader
- All Implemented Interfaces:
- java.io.Closeable, java.lang.Readable
public final class UTF32Reader
- extends java.io.Reader
Since JDK does not come with UTF-32/UCS-4, let's implement a simple
decoder to use.
| Fields inherited from class java.io.Reader |
lock |
|
Constructor Summary |
UTF32Reader(IOContext ctxt,
java.io.InputStream in,
byte[] buf,
int ptr,
int len,
boolean isBigEndian)
|
|
Method Summary |
void |
close()
|
void |
freeBuffers()
This method should be called along with (or instead of) normal
close. |
int |
read()
Although this method is implemented by the base class, AND it should
never be called by main code, let's still implement it bit more
efficiently just in case |
int |
read(char[] cbuf,
int start,
int len)
|
protected void |
reportBounds(char[] cbuf,
int start,
int len)
|
protected void |
reportStrangeStream()
|
| Methods inherited from class java.io.Reader |
mark, markSupported, read, read, ready, reset, skip |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
LAST_VALID_UNICODE_CHAR
protected static final int LAST_VALID_UNICODE_CHAR
- JSON actually limits available Unicode range in the high end
to the same as xml (to basically limit UTF-8 max byte sequence
length to 4)
- See Also:
- Constant Field Values
NULL_CHAR
protected static final char NULL_CHAR
- See Also:
- Constant Field Values
NULL_BYTE
protected static final char NULL_BYTE
- See Also:
- Constant Field Values
mContext
protected final IOContext mContext
mIn
protected java.io.InputStream mIn
mBuffer
protected byte[] mBuffer
mPtr
protected int mPtr
mLength
protected int mLength
UTF32Reader
public UTF32Reader(IOContext ctxt,
java.io.InputStream in,
byte[] buf,
int ptr,
int len,
boolean isBigEndian)
read
public int read(char[] cbuf,
int start,
int len)
throws java.io.IOException
- Specified by:
read in class java.io.Reader
- Throws:
java.io.IOException
close
public void close()
throws java.io.IOException
- Specified by:
close in interface java.io.Closeable- Specified by:
close in class java.io.Reader
- Throws:
java.io.IOException
read
public int read()
throws java.io.IOException
- Although this method is implemented by the base class, AND it should
never be called by main code, let's still implement it bit more
efficiently just in case
- Overrides:
read in class java.io.Reader
- Throws:
java.io.IOException
freeBuffers
public final void freeBuffers()
- This method should be called along with (or instead of) normal
close. After calling this method, no further reads should be tried.
Method will try to recycle read buffers (if any).
reportBounds
protected void reportBounds(char[] cbuf,
int start,
int len)
throws java.io.IOException
- Throws:
java.io.IOException
reportStrangeStream
protected void reportStrangeStream()
throws java.io.IOException
- Throws:
java.io.IOException