Class ExtractExpression
- 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.ExtractExpression
-
- All Implemented Interfaces:
Expression
public final class ExtractExpression extends AbstractSingleEncapsulatedExpression
The EXTRACT function extracts a date part from a date/time value. The date part can beYEAR,MONTH,DAY,HOUR,MINUTE,SECOND. Some databases may support other parts.BNF:extract_expression ::= EXTRACT(date_part_literal [FROM] scalar_expression)date_part_literal ::= { MICROSECOND | SECOND | MINUTE | HOUR | DAY | WEEK | MONTH | QUARTER | YEAR | SECOND_MICROSECOND | MINUTE_MICROSECOND | MINUTE_SECOND | HOUR_MICROSECOND | HOUR_SECOND | HOUR_MINUTE | DAY_MICROSECOND | DAY_SECOND | DAY_MINUTE | DAY_HOUR | YEAR_MONTH, etc }
- Since:
- 2.4
- Version:
- 2.5
- Author:
- James Sutherland
-
-
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 ExtractExpression(AbstractExpression parent)Creates a newExtractExpression.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(ExpressionVisitor visitor)Visits thisExpressionby the givenvisitor.StringgetActualFromIdentifier()Returns the actual FROM identifier found in the string representation of the JPQL query, which has the actual case that was used.StringgetDatePart()Returns the date part that was parsed, it is used to extract a single part of a date/time, such as year, month, day, your, etc.StringgetEncapsulatedExpressionQueryBNFId()Returns the BNF used to parse the encapsulated expression.JPQLQueryBNFgetQueryBNF()Returns the BNF of thisExpression.booleanhasDatePart()Determines whether the date part literal was parsed or not.booleanhasEncapsulatedExpression()Determines whether something was parsed after the left parenthesis.booleanhasFrom()Determines whether the identifier FROM was part of the query.booleanhasSpaceAfterDatePart()Determines whether a whitespace was found after the date part literal.booleanhasSpaceAfterFrom()Determines whether a whitespace was found after FROM.-
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
-
ExtractExpression
public ExtractExpression(AbstractExpression parent)
Creates a newExtractExpression.- 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
-
getActualFromIdentifier
public String getActualFromIdentifier()
Returns the actual FROM identifier found in the string representation of the JPQL query, which has the actual case that was used.- Returns:
- The FROM identifier that was actually parsed, or an empty string if it was not parsed
-
getDatePart
public String getDatePart()
Returns the date part that was parsed, it is used to extract a single part of a date/time, such as year, month, day, your, etc.- Returns:
- The part of the date/time to retrieve
-
getQueryBNF
public JPQLQueryBNF getQueryBNF()
Returns the BNF of thisExpression.- Returns:
- The
JPQLQueryBNF, which represents the grammar of thisExpression
-
hasDatePart
public boolean hasDatePart()
Determines whether the date part literal was parsed or not.- Returns:
trueif the date part literal 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
-
hasFrom
public boolean hasFrom()
Determines whether the identifier FROM was part of the query.- Returns:
trueif the identifier FROM was parsed;falseotherwise
-
hasSpaceAfterDatePart
public boolean hasSpaceAfterDatePart()
Determines whether a whitespace was found after the date part literal.- Returns:
trueif there was a whitespace after the date part literal;falseotherwise
-
hasSpaceAfterFrom
public boolean hasSpaceAfterFrom()
Determines whether a whitespace was found after FROM.- Returns:
trueif there was a whitespace after FROM;falseotherwise
-
-