EclipseLink 2.4.2, build 'v20130514-5956486' API Reference

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

java.lang.Object
  extended by org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
      extended by org.eclipse.persistence.jpa.jpql.parser.CollectionExpression
All Implemented Interfaces:
Expression

public final class CollectionExpression
extends AbstractExpression

A CollectionExpression wraps many expression which they are separated by spaces and/or commas.

BNF: expression ::= child_item {, child_item }*
or
BNF: expression ::= child_item { child_item }*

Version:
2.4.2
Author:
Pascal Filion
Since:
2.3

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
CollectionExpression(AbstractExpression parent, java.util.List<AbstractExpression> children, java.util.List<java.lang.Boolean> commas, java.util.List<java.lang.Boolean> spaces)
          Creates a new CollectionExpression.
CollectionExpression(AbstractExpression parent, java.util.List<AbstractExpression> children, java.util.List<java.lang.Boolean> commas, java.util.List<java.lang.Boolean> spaces, boolean temporary)
          Creates a new CollectionExpression.
 
Method Summary
 void accept(ExpressionVisitor visitor)
          Visits this Expression by the given visitor.
 void accept(int index, ExpressionVisitor visitor)
          Visits the child Expression at the given position by the given visitor.
 void acceptChildren(ExpressionVisitor visitor)
          Visits the children of this Expression.
protected  void addChildrenTo(java.util.Collection<Expression> children)
          Adds the children of this AbstractExpression to the given collection.
protected  void addOrderedChildrenTo(java.util.List<Expression> children)
          Adds the children of this AbstractExpression to the given list.
 int childrenSize()
          Returns the count of child expressions.
 boolean endsWithComma()
          Determines whether this CollectionExpression ends with a comma, which means the last Expression is a "null" expression.
 boolean endsWithSpace()
          Determines whether this CollectionExpression ends with a space, which means the last Expression is a "null" expression.
 JPQLQueryBNF findQueryBNF(Expression expression)
          Retrieves the JPQLQueryBNF that represents the fragment of this Expression that was used when parsing the given Expression.
 Expression getChild(int index)
          Retrieves the child Expression at the given position.
 JPQLQueryBNF getQueryBNF()
          Returns the BNF of this Expression.
 boolean hasComma(int index)
          Determines whether a comma was parsed at the given position.
 boolean hasSpace(int index)
          Determines whether a space was parsed at the given position.
 int indexOf(Expression expression)
          Retrieves the index of the given Expression.
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(int endIndex)
          Returns a string representation of this Expression and its children.
 java.lang.String toParsedText(int endIndex)
          Generates a string representation of this CollectionExpression.
protected  void toParsedText(java.lang.StringBuilder writer, boolean actual)
          Generates a string representation of this Expression, including its children, if it has any.
 
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, isParsingComplete, 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

CollectionExpression

public CollectionExpression(AbstractExpression parent,
                            java.util.List<AbstractExpression> children,
                            java.util.List<java.lang.Boolean> commas,
                            java.util.List<java.lang.Boolean> spaces)
Creates a new CollectionExpression.

Parameters:
parent - The parent of this expression
children - The list of children that are regrouped together
spaces - The list of flags used to determine when to add a space after an Expression
commas - The list of flags used to determine when to add a comma after an Expression

CollectionExpression

public CollectionExpression(AbstractExpression parent,
                            java.util.List<AbstractExpression> children,
                            java.util.List<java.lang.Boolean> commas,
                            java.util.List<java.lang.Boolean> spaces,
                            boolean temporary)
Creates a new CollectionExpression.

Parameters:
parent - The parent of this expression
children - The list of children that are regrouped together
commas - The list of flags used to determine when to add a comma after an Expression
spaces - The list of flags used to determine when to add a space after an Expression
temporary - Flag used to determine if this expression is temporarily used, which means the children will not be parented to this object
Method Detail

accept

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

Parameters:
visitor - The ExpressionVisitor to visit this object

accept

public void accept(int index,
                   ExpressionVisitor visitor)
Visits the child Expression at the given position by the given visitor.

Parameters:
index - The index of the child to visit
visitor - The ExpressionVisitor to visit a specific child
Since:
2.4

acceptChildren

public void acceptChildren(ExpressionVisitor visitor)
Visits the children of this 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.

Parameters:
visitor - The visitor to visit the children of this object.

addChildrenTo

protected void addChildrenTo(java.util.Collection<Expression> children)
Adds the children of this AbstractExpression to the given collection.

Overrides:
addChildrenTo in class AbstractExpression
Parameters:
children - The collection used to store the children

addOrderedChildrenTo

protected void addOrderedChildrenTo(java.util.List<Expression> children)
Adds the children of this AbstractExpression to the given list.

Overrides:
addOrderedChildrenTo in class AbstractExpression
Parameters:
children - The list used to store the string representation of this AbstractExpression

childrenSize

public int childrenSize()
Returns the count of child expressions.

Returns:
The total count of expressions aggregated with spaces and/or commas

endsWithComma

public boolean endsWithComma()
Determines whether this CollectionExpression ends with a comma, which means the last Expression is a "null" expression.

Returns:
true if the string representation of this CollectionExpression ends with a comma (the ending space is not checked)

endsWithSpace

public boolean endsWithSpace()
Determines whether this CollectionExpression ends with a space, which means the last Expression is a "null" expression.

Returns:
true if the string representation of this CollectionExpression ends with a space (the ending comma is not checked)

findQueryBNF

public JPQLQueryBNF findQueryBNF(Expression expression)
Retrieves the JPQLQueryBNF that represents the fragment of this Expression that was used when parsing the given Expression.

Specified by:
findQueryBNF in interface Expression
Overrides:
findQueryBNF in class AbstractExpression
Parameters:
expression - The Expression that is a descendant of this one
Returns:
The JPQLQueryBNF that was used to parse the given expression

getChild

public Expression getChild(int index)
Retrieves the child Expression at the given position.

Parameters:
index - The position of the child Expression to retrieve
Returns:
The child Expression at the given position

getQueryBNF

public JPQLQueryBNF getQueryBNF()
Returns the BNF of this Expression.

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

hasComma

public boolean hasComma(int index)
Determines whether a comma was parsed at the given position. The index is the position of the comma that is following the child at the same position.

Parameters:
index - The index of the child Expression to verify if there is a comma following it
Returns:
true if a comma is following the child Expression at the given index; false otherwise

hasSpace

public boolean hasSpace(int index)
Determines whether a space was parsed at the given position. The index is the position of the space that is following the child at the same position, which is after a comma, if one was also parsed at that location.

Parameters:
index - The index of the child Expression to verify if there is a space following it, which could be after a comma, if one was parsed
Returns:
true if a space is following the child Expression at the given index; false otherwise

indexOf

public int indexOf(Expression expression)
Retrieves the index of the given Expression.

Parameters:
expression - The Expression that might be a child of this expression
Returns:
The index in the collection of the given Expression or -1 if it is not a child

parse

protected void parse(WordParser wordParser,
                     boolean tolerant)
Parses the query by starting at the current position, which is part of the given WordParser.

Specified by:
parse in class AbstractExpression
Parameters:
wordParser - The text to parse based on the current position of the cursor
tolerant - Determines whether the parsing system should be tolerant, meaning if it should try to parse invalid or incomplete queries

toActualText

public java.lang.String toActualText(int endIndex)
Returns a string representation of this 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".

Parameters:
endIndex - The index used to determine when to create the string representation, which is exclusive
Returns:
The string representation of this Expression

toParsedText

public java.lang.String toParsedText(int endIndex)
Generates a string representation of this CollectionExpression.

Parameters:
endIndex - The index used to determine when to create the string representation, which is exclusive
Returns:
The string representation of this Expression

toParsedText

protected void toParsedText(java.lang.StringBuilder writer,
                            boolean actual)
Generates a string representation of this Expression, including its children, if it has any.

Specified by:
toParsedText in class AbstractExpression
Parameters:
writer - The buffer used to append this Expression's string representation
actual - 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

EclipseLink 2.4.2, build 'v20130514-5956486' API Reference