java.lang.Object
org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
org.eclipse.persistence.jpa.jpql.parser.AbstractEncapsulatedExpression
org.eclipse.persistence.jpa.jpql.parser.AbstractDoubleEncapsulatedExpression
org.eclipse.persistence.jpa.jpql.parser.DatabaseType
- All Implemented Interfaces:
Expression
This expression represents the database specific data type, which may include size and scale.
BNF:
database_type ::= data_type_literal [( [numeric_literal [, numeric_literal]] )]BNF:
data_type_literal ::= [CHAR, VARCHAR, NUMERIC, INTEGER, DATE, TIME, TIMESTAMP, etc]
Example: CASE(e.name AS VARCHAR(20))
- Version:
- 2.5
- Author:
- Pascal Filion
-
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, UNDERSCOREFields 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, CEILING, CHAR_LENGTH, CHARACTER_LENGTH, CLASS, COALESCE, COLUMN, CONCAT, CONCAT_PIPES, CONNECT_BY, COUNT, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, DATE, DATETIME, DELETE, DELETE_FROM, DESC, DIFFERENT, DISTINCT, DIVISION, ELSE, EMPTY, END, ENTRY, EQUAL, ESCAPE, EXCEPT, EXISTS, EXP, EXTRACT, FALSE, FETCH, FIRST, FLOOR, FROM, FUNC, FUNCTION, GREATER_THAN, GREATER_THAN_OR_EQUAL, GROUP_BY, HAVING, ID, 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, LN, LOCAL, 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, POWER, QUOTE, REGEXP, REPLACE, RIGHT, ROUND, SCN, SELECT, SET, SIGN, SIZE, SOME, SQL, SQRT, START_WITH, SUBSTRING, SUM, TABLE, THEN, THIS, TIME, TIMESTAMP, TRAILING, TREAT, TRIM, TRUE, TYPE, UNION, UNKNOWN, UPDATE, UPPER, VALUE, VERSION, WHEN, WHERE -
Constructor Summary
ConstructorsConstructorDescriptionDatabaseType(AbstractExpression parent, String databaseType) Creates a newDatabaseType. -
Method Summary
Modifier and TypeMethodDescriptionvoidaccept(ExpressionVisitor visitor) Visits thisExpressionby the givenvisitor.Returns the BNF of thisExpression.protected booleanDetermines whether the second expression is optional or not.parameterExpressionBNF(int index) Returns the BNF to be used to parse one of the encapsulated expression.protected booleanshouldParseRightParenthesis(WordParser wordParser, boolean tolerant) Determines whether the right parenthesis should be parsed or not by this expression.Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractDoubleEncapsulatedExpression
acceptChildren, addChildrenTo, addOrderedEncapsulatedExpressionTo, buildCollectionExpression, findQueryBNF, getFirstExpression, getSecondExpression, hasComma, hasEncapsulatedExpression, hasFirstExpression, hasSecondExpression, hasSpaceAfterComma, isParsingComplete, parseEncapsulatedExpression, removeEncapsulatedExpression, toParsedTextEncapsulatedExpressionMethods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractEncapsulatedExpression
addOrderedChildrenTo, areLogicalIdentifiersSupported, getActualIdentifier, getIdentifier, hasLeftParenthesis, hasRightParenthesis, hasSpaceAfterIdentifier, isInvalid, parse, toParsedTextMethods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
acceptUnknownVisitor, acceptUnknownVisitor, buildExpressionFromFallingBack, buildNullExpression, buildStringExpression, buildStringExpression, buildUnknownExpression, calculatePosition, children, findFallBackExpressionFactory, getExpressionFactory, getExpressionRegistry, getGrammar, getIdentifierVersion, getJPAVersion, getLength, getOffset, getParent, getParentExpression, getQueryBNF, getRoot, getText, handleAggregate, handleCollection, isAncestor, isIdentifier, isNull, isParentExpression, isSubExpression, isTolerant, isUnknown, isVirtual, orderedChildren, parse, parseUsingExpressionFactory, populatePosition, rebuildActualText, rebuildParsedText, setParent, setText, shouldParseWithFactoryFirst, shouldSkipLiteral, toActualText, toParsedText, toString
-
Constructor Details
-
DatabaseType
Creates a newDatabaseType.- Parameters:
parent- The parent of this expressiondatabaseType- The database type
-
-
Method Details
-
accept
Description copied from interface:ExpressionVisits thisExpressionby the givenvisitor.- Parameters:
visitor- TheExpressionVisitorto visit this object
-
getQueryBNF
Description copied from interface:ExpressionReturns the BNF of thisExpression.- Returns:
- The
JPQLQueryBNF, which represents the grammar of thisExpression
-
isSecondExpressionOptional
protected boolean isSecondExpressionOptional()Description copied from class:AbstractDoubleEncapsulatedExpressionDetermines whether the second expression is optional or not.- Overrides:
isSecondExpressionOptionalin classAbstractDoubleEncapsulatedExpression- Returns:
trueif the second expression is optional;falseif it is required
-
parameterExpressionBNF
Description copied from class:AbstractDoubleEncapsulatedExpressionReturns the BNF to be used to parse one of the encapsulated expression.- Specified by:
parameterExpressionBNFin classAbstractDoubleEncapsulatedExpression- Parameters:
index- The position of the encapsulatedExpressionthat needs to be parsed within the parenthesis, which starts at position 0- Returns:
- The BNF to be used to parse one of the encapsulated expression
-
shouldParseRightParenthesis
Description copied from class:AbstractEncapsulatedExpressionDetermines whether the right parenthesis should be parsed or not by this expression. There is a possible case where this expression should have optional left and right parenthesis. If there is no left parenthesis, then it would most likely mean the right parenthesis does not belong to this expression.- Overrides:
shouldParseRightParenthesisin classAbstractEncapsulatedExpression- Parameters:
wordParser- The text to parse based on the current position of the cursortolerant- Determines whether the parsing system should be tolerant, meaning if it should try to parse invalid or incomplete queries- Returns:
trueif the right parenthesis should be owned by this expression if it is the next character to scan;falseotherwise
-