EclipseLink 2.4.2, build 'v20130514-5956486' API Reference

org.eclipse.persistence.jpa.jpql.parser
Class ExtractExpression

java.lang.Object
  extended by org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
      extended by org.eclipse.persistence.jpa.jpql.parser.AbstractEncapsulatedExpression
          extended by org.eclipse.persistence.jpa.jpql.parser.AbstractSingleEncapsulatedExpression
              extended by 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 be YEAR, 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 }

Version:
2.4
Author:
James Sutherland
Since:
2.4

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, ASC, AVG, BETWEEN, BIT_LENGTH, BOTH, CASE, CAST, CHAR_LENGTH, CHARACTER_LENGTH, CLASS, COALESCE, COLUMN, CONCAT, 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, 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, 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_FIRST, NULLS_LAST, OBJECT, OF, ON, OPERATOR, OR, ORDER_BY, OUTER, PLUS, POSITION, POSITIONAL_PARAMETER, QUOTE, REGEXP, SELECT, SET, SIZE, SOME, SQL, SQRT, SUBSTRING, SUM, TABLE, THEN, TRAILING, TREAT, TRIM, TRUE, TYPE, UNION, UNKNOWN, UPDATE, UPPER, VALUE, WHEN, WHERE
 
Constructor Summary
ExtractExpression(AbstractExpression parent)
          Creates a new ExtractExpression.
 
Method Summary
 void accept(ExpressionVisitor visitor)
          Visits this Expression by the given visitor.
protected  void addOrderedEncapsulatedExpressionTo(java.util.List<Expression> children)
          Adds the Expressions representing the encapsulated Expression.
 java.lang.String encapsulatedExpressionBNF()
          Returns the BNF used to parse the encapsulated expression.
 java.lang.String getActualFromIdentifier()
          Returns the actual FROM identifier found in the string representation of the JPQL query, which has the actual case that was used.
 java.lang.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.
 JPQLQueryBNF getQueryBNF()
          Returns the BNF of this Expression.
 boolean hasDatePart()
          Determines whether the date part literal was parsed or not.
 boolean hasEncapsulatedExpression()
          Determines whether something was parsed after the left parenthesis.
 boolean hasFrom()
          Determines whether the identifier FROM was part of the query.
 boolean hasSpaceAfterDatePart()
          Determines whether a whitespace was found after the date part literal.
 boolean hasSpaceAfterFrom()
          Determines whether a whitespace was found after FROM.
protected  boolean isParsingComplete(WordParser wordParser, java.lang.String word, Expression expression)
          Determines whether the parsing is complete based on what is left in the given text.
protected  void parseEncapsulatedExpression(WordParser wordParser, int whitespaceCount, boolean tolerant)
          Parses the encapsulated expression by starting at the current position, which is part of the given WordParser.
protected  java.lang.String parseIdentifier(WordParser wordParser)
          Parses the identifier of this expression.
protected  void removeEncapsulatedExpression()
          
protected  void toParsedTextEncapsulatedExpression(java.lang.StringBuilder writer, boolean actual)
          Generates a string representation of the encapsulated Expression.
 
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractSingleEncapsulatedExpression
acceptChildren, addChildrenTo, findQueryBNF, getExpression, hasExpression, setExpression
 
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractEncapsulatedExpression
addOrderedChildrenTo, areLogicalIdentifiersSupported, getActualIdentifier, getIdentifier, hasLeftParenthesis, hasRightParenthesis, hasSpaceAfterIdentifier, parse, shouldParseRightParenthesis, toParsedText
 
Methods 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, getQueryBNF, getRoot, getText, handleAggregate, handleCollection, isAncestor, isIdentifier, isNull, isTolerant, isUnknown, isVirtual, orderedChildren, parse, parseUsingExpressionFactory, populatePosition, rebuildActualText, rebuildParsedText, setParent, setText, shouldParseWithFactoryFirst, shouldSkipLiteral, toActualText, toParsedText, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ExtractExpression

public ExtractExpression(AbstractExpression parent)
Creates a new ExtractExpression.

Parameters:
parent - The parent of this expression
Method Detail

accept

public void accept(ExpressionVisitor visitor)
Visits this Expression by the given visitor.

Parameters:
visitor - The ExpressionVisitor to visit this object

addOrderedEncapsulatedExpressionTo

protected void addOrderedEncapsulatedExpressionTo(java.util.List<Expression> children)
Adds the Expressions representing the encapsulated Expression.

Overrides:
addOrderedEncapsulatedExpressionTo in class AbstractSingleEncapsulatedExpression
Parameters:
children - The list used to store the string representation of the encapsulated Expression

encapsulatedExpressionBNF

public java.lang.String encapsulatedExpressionBNF()
Returns the BNF used to parse the encapsulated expression.

Specified by:
encapsulatedExpressionBNF in class AbstractSingleEncapsulatedExpression
Returns:
The BNF used to parse the encapsulated expression

getActualFromIdentifier

public java.lang.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 java.lang.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 this Expression.

Returns:
The JPQLQueryBNF, which represents the grammar of this Expression

hasDatePart

public boolean hasDatePart()
Determines whether the date part literal was parsed or not.

Returns:
true if the date part literal was parsed; false otherwise

hasEncapsulatedExpression

public boolean hasEncapsulatedExpression()
Determines whether something was parsed after the left parenthesis.

Overrides:
hasEncapsulatedExpression in class AbstractSingleEncapsulatedExpression
Returns:
true if something was parsed; false otherwise

hasFrom

public boolean hasFrom()
Determines whether the identifier FROM was part of the query.

Returns:
true if the identifier FROM was parsed; false otherwise

hasSpaceAfterDatePart

public boolean hasSpaceAfterDatePart()
Determines whether a whitespace was found after the date part literal.

Returns:
true if there was a whitespace after the date part literal; false otherwise

hasSpaceAfterFrom

public boolean hasSpaceAfterFrom()
Determines whether a whitespace was found after FROM.

Returns:
true if there was a whitespace after FROM; false otherwise

isParsingComplete

protected boolean isParsingComplete(WordParser wordParser,
                                    java.lang.String word,
                                    Expression expression)
Determines whether the parsing is complete based on what is left in the given text. The text is never empty.

Overrides:
isParsingComplete in class AbstractEncapsulatedExpression
Parameters:
wordParser - The text to parse based on the current position of the cursor
word - The word that was retrieved from the given text, which is the first word in the text
expression - The Expression that has already been parsed
Returns:
true if the text no longer can't be parsed by the current expression; false if more can be parsed

parseEncapsulatedExpression

protected void parseEncapsulatedExpression(WordParser wordParser,
                                           int whitespaceCount,
                                           boolean tolerant)
Parses the encapsulated expression by starting at the current position, which is part of the given WordParser.

Overrides:
parseEncapsulatedExpression in class AbstractSingleEncapsulatedExpression
Parameters:
wordParser - The text to parse based on the current position of the cursor
whitespaceCount - The number of whitespace characters that were parsed after '('
tolerant - Determines whether the parsing system should be tolerant, meaning if it should try to parse invalid or incomplete queries

parseIdentifier

protected java.lang.String parseIdentifier(WordParser wordParser)
Parses the identifier of this expression.

Specified by:
parseIdentifier in class AbstractEncapsulatedExpression
Returns:
The identifier for this expression

removeEncapsulatedExpression

protected void removeEncapsulatedExpression()

Overrides:
removeEncapsulatedExpression in class AbstractSingleEncapsulatedExpression

toParsedTextEncapsulatedExpression

protected void toParsedTextEncapsulatedExpression(java.lang.StringBuilder writer,
                                                  boolean actual)
Generates a string representation of the encapsulated Expression.

Overrides:
toParsedTextEncapsulatedExpression in class AbstractSingleEncapsulatedExpression
Parameters:
writer - The buffer used to append the encapsulated Expression's string representation
actual - Determines whether 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

EclipseLink 2.4.2, build 'v20130514-5956486' API Reference