Class CastExpression
- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
-
- org.eclipse.persistence.jpa.jpql.parser.AbstractEncapsulatedExpression
-
- org.eclipse.persistence.jpa.jpql.parser.AbstractSingleEncapsulatedExpression
-
- org.eclipse.persistence.jpa.jpql.parser.CastExpression
-
- All Implemented Interfaces:
Expression
public final class CastExpression extends AbstractSingleEncapsulatedExpression
The CAST function cast value to a different type. The database type is the second parameter, and can be any valid database type including size and scale.BNF:expression ::= CAST(scalar_expression [AS] database_type)- Since:
- 2.4
- Version:
- 2.5
- Author:
- James Sutherland
- See Also:
DatabaseType
-
-
Field Summary
-
Fields inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
COMMA, DOT, DOUBLE_QUOTE, LEFT_CURLY_BRACKET, LEFT_PARENTHESIS, NOT_DEFINED, RIGHT_CURLY_BRACKET, RIGHT_PARENTHESIS, SINGLE_QUOTE, SPACE, UNDERSCORE
-
Fields inherited from interface org.eclipse.persistence.jpa.jpql.parser.Expression
ABS, 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 Summary
Constructors Constructor Description CastExpression(AbstractExpression parent)Creates a newCastExpression.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(ExpressionVisitor visitor)Visits thisExpressionby the givenvisitor.ExpressiongetDatabaseType()Returns the database type to cast to.StringgetEncapsulatedExpressionQueryBNFId()Returns the BNF used to parse the encapsulated expression.JPQLQueryBNFgetQueryBNF()Returns the BNF of thisExpression.booleanhasAs()Determines whether the identifier AS was part of the query.booleanhasDatabaseType()Determines whether the database type was parsed or not.booleanhasEncapsulatedExpression()Determines whether something was parsed after the left parenthesis.booleanhasScalarExpression()Determines whether something was parsed after the left parenthesis and before theASidentifier.booleanhasSpaceAfterAs()Determines whether a whitespace parsed after AS.booleanhasSpaceAfterExpression()Determines whether a whitespace was parsed after the expression.-
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractSingleEncapsulatedExpression
acceptChildren, findQueryBNF, getExpression, hasExpression, setExpression
-
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractEncapsulatedExpression
getActualIdentifier, getIdentifier, hasLeftParenthesis, hasRightParenthesis, hasSpaceAfterIdentifier
-
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
children, getGrammar, getIdentifierVersion, getLength, getOffset, getParent, getQueryBNF, getRoot, isAncestor, orderedChildren, populatePosition, toActualText, toParsedText, toString
-
-
-
-
Constructor Detail
-
CastExpression
public CastExpression(AbstractExpression parent)
Creates a newCastExpression.- Parameters:
parent- The parent of this expression
-
-
Method Detail
-
accept
public void accept(ExpressionVisitor visitor)
Visits thisExpressionby the givenvisitor.- Parameters:
visitor- TheExpressionVisitorto visit this object
-
getEncapsulatedExpressionQueryBNFId
public String getEncapsulatedExpressionQueryBNFId()
Returns the BNF used to parse the encapsulated expression.- Specified by:
getEncapsulatedExpressionQueryBNFIdin classAbstractSingleEncapsulatedExpression- Returns:
- The BNF used to parse the encapsulated expression
-
getDatabaseType
public Expression getDatabaseType()
Returns the database type to cast to.- Returns:
- The
Expressionrepresenting the database type
-
getQueryBNF
public JPQLQueryBNF getQueryBNF()
Returns the BNF of thisExpression.- Returns:
- The
JPQLQueryBNF, which represents the grammar of thisExpression
-
hasAs
public boolean hasAs()
Determines whether the identifier AS was part of the query.- Returns:
trueif the identifier AS was parsed;falseotherwise
-
hasDatabaseType
public boolean hasDatabaseType()
Determines whether the database type was parsed or not.- Returns:
trueif the database type was parsed;falseotherwise
-
hasEncapsulatedExpression
public boolean hasEncapsulatedExpression()
Determines whether something was parsed after the left parenthesis.- Overrides:
hasEncapsulatedExpressionin classAbstractSingleEncapsulatedExpression- Returns:
trueif something was parsed;falseotherwise
-
hasScalarExpression
public boolean hasScalarExpression()
Determines whether something was parsed after the left parenthesis and before theASidentifier.- Returns:
truethe expression to be cast was parsed;falseotherwise- Since:
- 2.5
-
hasSpaceAfterAs
public boolean hasSpaceAfterAs()
Determines whether a whitespace parsed after AS.- Returns:
trueif there was a whitespace parsed after AS;falseotherwise
-
hasSpaceAfterExpression
public boolean hasSpaceAfterExpression()
Determines whether a whitespace was parsed after the expression.- Returns:
trueif there was a whitespace parsed after the expression;falseotherwise
-
-