Interface Token
-
@InternalApi public interface Token
A token is an individual element of a SQL statement.The available implementations of
Token
are primarily guided by the implementation of the tokenization and the needs of the parser and included visitors. It does not distinguish all types of tokens. For example there isQuotedIdentifierToken
because the tokenization needs handling for quoted identifiers, while a normal identifier is aGenericToken
, because that is handled by the fallback tokenization after checking for all other types. On the other hand, open and close curly braces, square brackets and parentheses each have their own type, as the parser may need this to find nested contexts.- Since:
- 4.0.8
- Author:
- Mark Rotteveel
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
appendTo(java.lang.StringBuilder sb)
Appends the current token to the supplied String builder.boolean
equalsIgnoreCase(java.lang.String tokenText)
Case-insensitive equality of this tokens text using an equivalent ofString.equalsIgnoreCase(String)
.boolean
isValidIdentifier()
Detects if the token is valid as an identifier (ignoring length constraints).boolean
isWhitespaceOrComment()
int
length()
Token text length.int
position()
Token position.java.lang.String
text()
Token text.java.lang.CharSequence
textAsCharSequence()
Token text asCharSequence
.
-
-
-
Method Detail
-
text
java.lang.String text()
Token text.- Returns:
- the text of the token; this is the original text from the source
- See Also:
textAsCharSequence()
-
textAsCharSequence
java.lang.CharSequence textAsCharSequence()
Token text asCharSequence
.An basic implementation should return
text()
. As an optimization, implementations may return their containedCharSequence
to avoid unnecessary conversion to string.- Returns:
- the text of the token; this is the original text from the source
- See Also:
text()
-
appendTo
void appendTo(java.lang.StringBuilder sb)
Appends the current token to the supplied String builder.A basic implementation should do
sb.append(text())
orsb.append(textAsCharSequence())
.- Parameters:
sb
- String builder to append to
-
position
int position()
Token position.- Returns:
- 0-based position of the occurrence of this token in the source (the first character)
-
length
int length()
Token text length.- Returns:
- Length of the token text
-
isWhitespaceOrComment
boolean isWhitespaceOrComment()
- Returns:
true
if this token is whitespace or a comment,false
for all other tokens
-
equalsIgnoreCase
boolean equalsIgnoreCase(java.lang.String tokenText)
Case-insensitive equality of this tokens text using an equivalent ofString.equalsIgnoreCase(String)
.A basic implementation should do
text().equalsIgnoreCase(tokenText)
.- Parameters:
tokenText
- Token text to compare- Returns:
true
iftokenText
is equal - ignoring case - to the text of this token,false
otherwise
-
isValidIdentifier
boolean isValidIdentifier()
Detects if the token is valid as an identifier (ignoring length constraints).This will always return
false
forReservedToken
or other specialised tokens (e.g.OperatorToken
withIS
orLIKE
) that can't occur as an identifier.- Returns:
true
if the token is valid as an identifier,false
otherwise
-
-