public final class CastExpression extends AbstractSingleEncapsulatedExpression
expression ::= CAST(scalar_expression [AS] database_type)DatabaseTypeCOMMA, DOT, DOUBLE_QUOTE, LEFT_CURLY_BRACKET, LEFT_PARENTHESIS, NOT_DEFINED, RIGHT_CURLY_BRACKET, RIGHT_PARENTHESIS, SINGLE_QUOTE, SPACE, UNDERSCOREABS, ALL, AND, ANY, AS, AS_OF, ASC, AVG, BETWEEN, BIT_LENGTH, BOTH, CASE, CAST, CHAR_LENGTH, CHARACTER_LENGTH, CLASS, COALESCE, COLUMN, CONCAT, CONNECT_BY, COUNT, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, DELETE, DELETE_FROM, DESC, DIFFERENT, DISTINCT, DIVISION, ELSE, EMPTY, END, ENTRY, EQUAL, ESCAPE, EXCEPT, EXISTS, EXTRACT, FALSE, FETCH, FIRST, FROM, FUNC, FUNCTION, GREATER_THAN, GREATER_THAN_OR_EQUAL, GROUP_BY, HAVING, IN, INDEX, INNER, INNER_JOIN, INNER_JOIN_FETCH, INTERSECT, IS, IS_EMPTY, IS_NOT_EMPTY, IS_NOT_NULL, IS_NULL, JOIN, JOIN_FETCH, KEY, LAST, LEADING, LEFT, LEFT_JOIN, LEFT_JOIN_FETCH, LEFT_OUTER_JOIN, LEFT_OUTER_JOIN_FETCH, LENGTH, LIKE, LOCATE, LOWER, LOWER_THAN, LOWER_THAN_OR_EQUAL, MAX, MEMBER, MEMBER_OF, MIN, MINUS, MOD, MULTIPLICATION, NAMED_PARAMETER, NEW, NOT, NOT_BETWEEN, NOT_EQUAL, NOT_EXISTS, NOT_IN, NOT_LIKE, NOT_MEMBER, NOT_MEMBER_OF, NULL, NULLIF, NULLS, NULLS_FIRST, NULLS_LAST, OBJECT, OF, ON, OPERATOR, OR, ORDER_BY, ORDER_SIBLINGS_BY, OUTER, PLUS, POSITION, POSITIONAL_PARAMETER, QUOTE, REGEXP, SCN, SELECT, SET, SIZE, SOME, SQL, SQRT, START_WITH, SUBSTRING, SUM, TABLE, THEN, TIMESTAMP, TRAILING, TREAT, TRIM, TRUE, TYPE, UNION, UNKNOWN, UPDATE, UPPER, VALUE, WHEN, WHERE| Constructor and Description |
|---|
CastExpression(AbstractExpression parent)
Creates a new
CastExpression. |
| Modifier and Type | Method and Description |
|---|---|
void |
accept(ExpressionVisitor visitor)
Visits this
Expression by the given visitor. |
protected void |
addOrderedEncapsulatedExpressionTo(java.util.List<Expression> children)
Adds the
Expressions representing the encapsulated Expression. |
Expression |
getDatabaseType()
Returns the database type to cast to.
|
java.lang.String |
getEncapsulatedExpressionQueryBNFId()
Returns the BNF used to parse the encapsulated expression.
|
JPQLQueryBNF |
getQueryBNF()
Returns the BNF of this
Expression. |
boolean |
hasAs()
Determines whether the identifier AS was part of the query.
|
boolean |
hasDatabaseType()
Determines whether the database type was parsed or not.
|
boolean |
hasEncapsulatedExpression()
Determines whether something was parsed after the left parenthesis.
|
boolean |
hasScalarExpression()
Determines whether something was parsed after the left parenthesis and before the
AS identifier. |
boolean |
hasSpaceAfterAs()
Determines whether a whitespace parsed after AS.
|
boolean |
hasSpaceAfterExpression()
Determines whether a whitespace was parsed after the expression.
|
protected boolean |
isParsingComplete(WordParser wordParser,
java.lang.String word,
Expression expression)
Determines whether the parsing is complete based on what is left in the given text.
|
protected void |
parseEncapsulatedExpression(WordParser wordParser,
int whitespaceCount,
boolean tolerant)
Parses the encapsulated expression by starting at the current position, which is part of the
given
WordParser. |
protected void |
removeEncapsulatedExpression()
Removes the encapsulated
Expression that was parsed, it should not be part of this one. |
protected boolean |
shouldParseWithFactoryFirst()
Determines whether the parsing of the query should be performed using the
factories first or it should automatically fallback to the fallback factory. |
protected void |
toParsedTextEncapsulatedExpression(java.lang.StringBuilder writer,
boolean actual)
Generates a string representation of the encapsulated
Expression. |
acceptChildren, addChildrenTo, findQueryBNF, getExpression, hasExpression, setExpressionaddOrderedChildrenTo, areLogicalIdentifiersSupported, getActualIdentifier, getIdentifier, hasLeftParenthesis, hasRightParenthesis, hasSpaceAfterIdentifier, parse, shouldParseRightParenthesis, toParsedTextacceptUnknownVisitor, acceptUnknownVisitor, buildExpressionFromFallingBack, buildNullExpression, buildStringExpression, buildStringExpression, buildUnknownExpression, calculatePosition, children, findFallBackExpressionFactory, getExpressionFactory, getExpressionRegistry, getGrammar, getIdentifierVersion, getJPAVersion, getLength, getOffset, getParent, getQueryBNF, getRoot, getText, handleAggregate, handleCollection, isAncestor, isIdentifier, isNull, isTolerant, isUnknown, isVirtual, orderedChildren, parse, parseUsingExpressionFactory, populatePosition, rebuildActualText, rebuildParsedText, setParent, setText, shouldSkipLiteral, toActualText, toParsedText, toStringpublic CastExpression(AbstractExpression parent)
CastExpression.parent - The parent of this expressionpublic void accept(ExpressionVisitor visitor)
Expression by the given visitor.visitor - The ExpressionVisitor to visit this objectprotected void addOrderedEncapsulatedExpressionTo(java.util.List<Expression> children)
Expressions representing the encapsulated Expression.addOrderedEncapsulatedExpressionTo in class AbstractSingleEncapsulatedExpressionchildren - The list used to store the string representation of the encapsulated Expressionpublic java.lang.String getEncapsulatedExpressionQueryBNFId()
getEncapsulatedExpressionQueryBNFId in class AbstractSingleEncapsulatedExpressionpublic Expression getDatabaseType()
Expression representing the database typepublic JPQLQueryBNF getQueryBNF()
Expression.JPQLQueryBNF, which represents the grammar of this Expressionpublic boolean hasAs()
true if the identifier AS was parsed; false otherwisepublic boolean hasDatabaseType()
true if the database type was parsed; false otherwisepublic boolean hasEncapsulatedExpression()
hasEncapsulatedExpression in class AbstractSingleEncapsulatedExpressiontrue if something was parsed; false otherwisepublic boolean hasScalarExpression()
AS identifier.true the expression to be cast was parsed; false otherwisepublic boolean hasSpaceAfterAs()
true if there was a whitespace parsed after AS;
false otherwisepublic boolean hasSpaceAfterExpression()
true if there was a whitespace parsed after the expression;
false otherwiseprotected boolean isParsingComplete(WordParser wordParser, java.lang.String word, Expression expression)
isParsingComplete in class AbstractEncapsulatedExpressionwordParser - The text to parse based on the current position of the cursorword - The word that was retrieved from the given text, which is the first word in the textexpression - The Expression that has already been parsedtrue if the text no longer can't be parsed by the current expression;
false if more can be parsedprotected void parseEncapsulatedExpression(WordParser wordParser, int whitespaceCount, boolean tolerant)
WordParser.parseEncapsulatedExpression in class AbstractSingleEncapsulatedExpressionwordParser - The text to parse based on the current position of the cursorwhitespaceCount - The number of whitespace characters that were parsed after '('tolerant - Determines whether the parsing system should be tolerant, meaning if it should
try to parse invalid or incomplete queriesprotected void removeEncapsulatedExpression()
Expression that was parsed, it should not be part of this one.
This happens when the parsed information does not have both '(' and ')'.removeEncapsulatedExpression in class AbstractSingleEncapsulatedExpressionprotected boolean shouldParseWithFactoryFirst()
factories first or it should automatically fallback to the fallback factory.shouldParseWithFactoryFirst in class AbstractExpressiontrue is returned by default so the factories are used before falling backprotected void toParsedTextEncapsulatedExpression(java.lang.StringBuilder writer,
boolean actual)
Expression.toParsedTextEncapsulatedExpression in class AbstractSingleEncapsulatedExpressionwriter - The buffer used to append the encapsulated Expression's string
representationactual - Determines whether to include any characters that are considered
virtual, i.e. that was parsed when the query is incomplete and is needed for functionality
like content assist