public final class DateTime extends AbstractExpression
Expression
represents a date or time. It supports the following identifiers:
CURRENT_DATE: This function returns the value of current date on the database server.
CURRENT_TIME: This function returns the value of current time on the database server.
CURRENT_TIMESTAMP: This function returns the value of current timestamp on the database server.
functions_returning_datetime ::= CURRENT_DATE | CURRENT_TIME | CURRENT_TIMESTAMP
The JDBC escape syntax may be used for the specification of date, time, and timestamp literals.
expression ::= {d 'yyyy-mm-dd'} | {t 'hh:mm:ss'} | {ts 'yyyy-mm-dd hh:mm:ss.f...'}
COMMA, DOT, DOUBLE_QUOTE, LEFT_CURLY_BRACKET, LEFT_PARENTHESIS, NOT_DEFINED, RIGHT_CURLY_BRACKET, RIGHT_PARENTHESIS, SINGLE_QUOTE, SPACE, UNDERSCORE
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 and Description |
---|
DateTime(AbstractExpression parent)
Creates a new
DateTime . |
Modifier and Type | Method and Description |
---|---|
void |
accept(ExpressionVisitor visitor)
Visits this
Expression by the given visitor . |
void |
acceptChildren(ExpressionVisitor visitor)
Visits the children of this
Expression . |
protected void |
addOrderedChildrenTo(java.util.List<Expression> children)
Adds the children of this
AbstractExpression to the given list. |
java.lang.String |
getActualIdentifier()
Returns the actual identifier found in the string representation of the JPQL query, which has
the actual case that was used.
|
JPQLQueryBNF |
getQueryBNF()
Returns the BNF of this
Expression . |
java.lang.String |
getText()
Returns the encapsulated text of this
AbstractExpression , which can be used in various
ways, it can be a keyword, a literal, etc. |
boolean |
isCurrentDate()
Determines whether this
DateTime represents the JPQL identifier
CURRENT_DATE . |
boolean |
isCurrentTime()
Determines whether this
DateTime represents the JPQL identifier
CURRENT_TIME . |
boolean |
isCurrentTimestamp()
Determines whether this
DateTime represents the JPQL identifier
CURRENT_TIMESTAMP . |
boolean |
isJDBCDate()
Determines whether this
DateTime represents the JDBC escape syntax for date, time,
timestamp formats. |
protected void |
parse(WordParser wordParser,
boolean tolerant)
Parses the query by starting at the current position, which is part of the given
WordParser . |
java.lang.String |
toActualText()
Generates a string representation of this
Expression , which needs 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. |
java.lang.String |
toParsedText()
Returns a string representation of this
Expression and its children. |
protected void |
toParsedText(java.lang.StringBuilder writer,
boolean actual)
Generates a string representation of this
Expression , including its children,
if it has any. |
acceptUnknownVisitor, acceptUnknownVisitor, addChildrenTo, buildExpressionFromFallingBack, buildNullExpression, buildStringExpression, buildStringExpression, buildUnknownExpression, calculatePosition, children, findFallBackExpressionFactory, findQueryBNF, getExpressionFactory, getExpressionRegistry, getGrammar, getIdentifierVersion, getJPAVersion, getLength, getOffset, getParent, getQueryBNF, getRoot, handleAggregate, handleCollection, isAncestor, isIdentifier, isNull, isParsingComplete, isTolerant, isUnknown, isVirtual, orderedChildren, parse, parseUsingExpressionFactory, populatePosition, rebuildActualText, rebuildParsedText, setParent, setText, shouldParseWithFactoryFirst, shouldSkipLiteral, toString
public DateTime(AbstractExpression parent)
DateTime
.parent
- The parent of this expressionpublic void accept(ExpressionVisitor visitor)
Expression
by the given visitor
.visitor
- The ExpressionVisitor
to visit this objectpublic void acceptChildren(ExpressionVisitor visitor)
Expression
. This method can be used to optimize traversing
the children since a new list is not created every time Expression.children()
is called.
This does not traverse the Expression
sub-hierarchy, use a subclass of
AbstractTraverseChildrenVisitor
in order to traverse the entire sub-hierarchy.
visitor
- The visitor
to visit the children of this object.protected void addOrderedChildrenTo(java.util.List<Expression> children)
AbstractExpression
to the given list.addOrderedChildrenTo
in class AbstractExpression
children
- The list used to store the string representation of this AbstractExpression
public java.lang.String getActualIdentifier()
public JPQLQueryBNF getQueryBNF()
Expression
.JPQLQueryBNF
, which represents the grammar of this Expression
public java.lang.String getText()
AbstractExpression
, which can be used in various
ways, it can be a keyword, a literal, etc.getText
in class AbstractExpression
AbstractExpression
, the literal it
encapsulates or an empty stringpublic boolean isCurrentDate()
DateTime
represents the JPQL identifier
CURRENT_DATE
.true
if this Expression
represents
CURRENT_DATE
; false
otherwisepublic boolean isCurrentTime()
DateTime
represents the JPQL identifier
CURRENT_TIME
.true
if this Expression
represents
CURRENT_TIME
; false
otherwisepublic boolean isCurrentTimestamp()
DateTime
represents the JPQL identifier
CURRENT_TIMESTAMP
.true
if this Expression
represents
CURRENT_TIMESTAMP
; false
otherwisepublic boolean isJDBCDate()
DateTime
represents the JDBC escape syntax for date, time,
timestamp formats.true
if this Expression
represents a JDBC escape syntax;
false
otherwiseprotected void parse(WordParser wordParser, boolean tolerant)
WordParser
.parse
in class AbstractExpression
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 queriespublic java.lang.String toActualText()
Expression
, which needs 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.toActualText
in interface Expression
toActualText
in class AbstractExpression
Expression
public java.lang.String toParsedText()
Expression
and its children. The expression
should contain whitespace even if the beautified version would not have any. For instance,
"SELECT e " should be returned where Expression.toParsedText()
would return "SELECT e".toParsedText
in interface Expression
toParsedText
in class AbstractExpression
Expression
protected void toParsedText(java.lang.StringBuilder writer, boolean actual)
Expression
, including its children,
if it has any.toParsedText
in class AbstractExpression
writer
- The buffer used to append this Expression
's string representationactual
- Determines whether the string representation should represent what was parsed,
i.e. include any "virtual" whitespace (such as ending whitespace) and the actual case of the
JPQL identifiers