public class PushbackTokenizer extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
PushbackTokenizer.Range
A range of long numbers.
|
static class |
PushbackTokenizer.Token
The token types that may be read
|
Modifier and Type | Field and Description |
---|---|
private int |
c |
private java.lang.Long |
currentNumber |
private java.lang.Long |
currentRange |
private java.lang.String |
currentText |
private PushbackTokenizer.Token |
currentToken |
private boolean |
isRange |
private java.io.Reader |
search |
private static java.util.List<java.lang.Character> |
SPECIAL_CHARS |
private static java.util.List<java.lang.Character> |
SPECIAL_CHARS_QUOTED |
Constructor and Description |
---|
PushbackTokenizer(java.io.Reader search)
Creates a new
PushbackTokenizer |
Modifier and Type | Method and Description |
---|---|
private void |
getChar() |
long |
getReadNumber()
Gets the last number that was read
|
private java.lang.String |
getString() |
private java.lang.String |
getString(boolean quoted) |
java.lang.String |
getText()
Gets the last text that was found
|
PushbackTokenizer.Token |
nextToken()
The token returned is
null or starts with an identifier character:
- for an '-'. |
boolean |
readIfEqual(PushbackTokenizer.Token token)
Reads the next token if it is equal to the given, suggested token
|
long |
readNumber(java.lang.String errorMessage)
Reads a number
|
PushbackTokenizer.Range |
readRange(java.lang.String errorMessage)
Reads a range of numbers
|
java.lang.String |
readTextOrNumber()
Reads the next token.
|
private final java.io.Reader search
private PushbackTokenizer.Token currentToken
private java.lang.String currentText
private java.lang.Long currentNumber
private java.lang.Long currentRange
private int c
private boolean isRange
private static final java.util.List<java.lang.Character> SPECIAL_CHARS
private static final java.util.List<java.lang.Character> SPECIAL_CHARS_QUOTED
public PushbackTokenizer(java.io.Reader search)
PushbackTokenizer
search
- The search string reader to read the tokens fromprivate void getChar()
private java.lang.String getString(boolean quoted)
private java.lang.String getString()
public PushbackTokenizer.Token nextToken()
null
or starts with an identifier character:
- for an '-'. This will be the only character
: for an key. The value is the next token
| for "OR"
^ for "XOR"
' ' for anything else.public boolean readIfEqual(PushbackTokenizer.Token token)
token
- The token the next one should be equal totrue
if it has been readpublic java.lang.String readTextOrNumber()
null
if the reader was advancedpublic long readNumber(java.lang.String errorMessage) throws SearchParseError
errorMessage
- The error if the number cannot be readSearchParseError
- if there is no numberpublic long getReadNumber()
public PushbackTokenizer.Range readRange(java.lang.String errorMessage) throws SearchParseError
errorMessage
- The error if the input is malformedSearchParseError
- If the input is not as expected for a rangepublic java.lang.String getText()