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 void
accept(ExpressionVisitor visitor)
Visits thisExpression
by the givenvisitor
.Expression
getDatabaseType()
Returns the database type to cast to.String
getEncapsulatedExpressionQueryBNFId()
Returns the BNF used to parse the encapsulated expression.JPQLQueryBNF
getQueryBNF()
Returns the BNF of thisExpression
.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 theAS
identifier.boolean
hasSpaceAfterAs()
Determines whether a whitespace parsed after AS.boolean
hasSpaceAfterExpression()
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 thisExpression
by the givenvisitor
.- Parameters:
visitor
- TheExpressionVisitor
to visit this object
-
getEncapsulatedExpressionQueryBNFId
public String getEncapsulatedExpressionQueryBNFId()
Returns the BNF used to parse the encapsulated expression.- Specified by:
getEncapsulatedExpressionQueryBNFId
in classAbstractSingleEncapsulatedExpression
- Returns:
- The BNF used to parse the encapsulated expression
-
getDatabaseType
public Expression getDatabaseType()
Returns the database type to cast to.- Returns:
- The
Expression
representing 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:
true
if the identifier AS was parsed;false
otherwise
-
hasDatabaseType
public boolean hasDatabaseType()
Determines whether the database type was parsed or not.- Returns:
true
if the database type was parsed;false
otherwise
-
hasEncapsulatedExpression
public boolean hasEncapsulatedExpression()
Determines whether something was parsed after the left parenthesis.- Overrides:
hasEncapsulatedExpression
in classAbstractSingleEncapsulatedExpression
- Returns:
true
if something was parsed;false
otherwise
-
hasScalarExpression
public boolean hasScalarExpression()
Determines whether something was parsed after the left parenthesis and before theAS
identifier.- Returns:
true
the expression to be cast was parsed;false
otherwise- Since:
- 2.5
-
hasSpaceAfterAs
public boolean hasSpaceAfterAs()
Determines whether a whitespace parsed after AS.- Returns:
true
if there was a whitespace parsed after AS;false
otherwise
-
hasSpaceAfterExpression
public boolean hasSpaceAfterExpression()
Determines whether a whitespace was parsed after the expression.- Returns:
true
if there was a whitespace parsed after the expression;false
otherwise
-
-