public final class CharacterReader
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private int |
bufLength |
private int |
bufMark |
private int |
bufPos |
private int |
bufSplitPoint |
private char[] |
charBuf |
(package private) static char |
EOF |
(package private) static int |
maxBufferLen |
private static int |
maxStringCacheLen |
private static int |
readAheadLimit |
private java.io.Reader |
reader |
private int |
readerPos |
private java.lang.String[] |
stringCache |
Constructor and Description |
---|
CharacterReader(java.io.Reader input) |
CharacterReader(java.io.Reader input,
int sz) |
CharacterReader(java.lang.String input) |
Modifier and Type | Method and Description |
---|---|
void |
advance()
Moves the current position by one.
|
private void |
bufferUp() |
private static java.lang.String |
cacheString(char[] charBuf,
java.lang.String[] stringCache,
int start,
int count)
Caches short strings, as a flywheel pattern, to reduce GC load.
|
(package private) char |
consume() |
(package private) java.lang.String |
consumeData() |
(package private) java.lang.String |
consumeDigitSequence() |
(package private) java.lang.String |
consumeHexSequence() |
(package private) java.lang.String |
consumeLetterSequence() |
(package private) java.lang.String |
consumeLetterThenDigitSequence() |
(package private) java.lang.String |
consumeTagName() |
java.lang.String |
consumeTo(char c)
Reads characters up to the specific char.
|
(package private) java.lang.String |
consumeTo(java.lang.String seq) |
java.lang.String |
consumeToAny(char... chars)
Read characters until the first of any delimiters is found.
|
(package private) java.lang.String |
consumeToAnySorted(char... chars) |
(package private) java.lang.String |
consumeToEnd() |
(package private) boolean |
containsIgnoreCase(java.lang.String seq) |
char |
current()
Get the char at the current position.
|
boolean |
isEmpty()
Tests if all the content has been read.
|
private boolean |
isEmptyNoBufferUp() |
(package private) void |
mark() |
(package private) boolean |
matchConsume(java.lang.String seq) |
(package private) boolean |
matchConsumeIgnoreCase(java.lang.String seq) |
(package private) boolean |
matches(char c) |
(package private) boolean |
matches(java.lang.String seq) |
(package private) boolean |
matchesAny(char... seq) |
(package private) boolean |
matchesAnySorted(char[] seq) |
(package private) boolean |
matchesDigit() |
(package private) boolean |
matchesIgnoreCase(java.lang.String seq) |
(package private) boolean |
matchesLetter() |
(package private) int |
nextIndexOf(char c)
Returns the number of characters between the current position and the next instance of the input char
|
(package private) int |
nextIndexOf(java.lang.CharSequence seq)
Returns the number of characters between the current position and the next instance of the input sequence
|
int |
pos()
Gets the current cursor position in the content.
|
(package private) static boolean |
rangeEquals(char[] charBuf,
int start,
int count,
java.lang.String cached)
Check if the value of the provided range equals the string.
|
(package private) boolean |
rangeEquals(int start,
int count,
java.lang.String cached) |
(package private) void |
rewindToMark() |
java.lang.String |
toString() |
(package private) void |
unconsume() |
static final char EOF
private static final int maxStringCacheLen
static final int maxBufferLen
private static final int readAheadLimit
private final char[] charBuf
private final java.io.Reader reader
private int bufLength
private int bufSplitPoint
private int bufPos
private int readerPos
private int bufMark
private final java.lang.String[] stringCache
public CharacterReader(java.io.Reader input, int sz)
public CharacterReader(java.io.Reader input)
public CharacterReader(java.lang.String input)
private void bufferUp()
public int pos()
public boolean isEmpty()
private boolean isEmptyNoBufferUp()
public char current()
char consume()
void unconsume()
public void advance()
void mark()
void rewindToMark()
int nextIndexOf(char c)
c
- scan targetint nextIndexOf(java.lang.CharSequence seq)
seq
- scan targetpublic java.lang.String consumeTo(char c)
c
- the delimiterjava.lang.String consumeTo(java.lang.String seq)
public java.lang.String consumeToAny(char... chars)
chars
- delimiters to scan forjava.lang.String consumeToAnySorted(char... chars)
java.lang.String consumeData()
java.lang.String consumeTagName()
java.lang.String consumeToEnd()
java.lang.String consumeLetterSequence()
java.lang.String consumeLetterThenDigitSequence()
java.lang.String consumeHexSequence()
java.lang.String consumeDigitSequence()
boolean matches(char c)
boolean matches(java.lang.String seq)
boolean matchesIgnoreCase(java.lang.String seq)
boolean matchesAny(char... seq)
boolean matchesAnySorted(char[] seq)
boolean matchesLetter()
boolean matchesDigit()
boolean matchConsume(java.lang.String seq)
boolean matchConsumeIgnoreCase(java.lang.String seq)
boolean containsIgnoreCase(java.lang.String seq)
public java.lang.String toString()
toString
in class java.lang.Object
private static java.lang.String cacheString(char[] charBuf, java.lang.String[] stringCache, int start, int count)
static boolean rangeEquals(char[] charBuf, int start, int count, java.lang.String cached)
boolean rangeEquals(int start, int count, java.lang.String cached)