Oracle Fusion Middleware Java API Reference for Oracle TopLink
11g Release 1 (11.1.1)

E28847-01


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

java.lang.Object
  extended by org.eclipse.persistence.jpa.internal.jpql.parser.StringExpression
      extended by org.eclipse.persistence.jpa.internal.jpql.parser.AbstractExpression
          extended by org.eclipse.persistence.jpa.internal.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 }*
Since:
2.3
Version:
2.3
Author:
Pascal Filion

Field Summary
private  java.util.List<AbstractExpression> children
          The Expressions that forms a collection within another expression.
private  java.util.List<java.lang.Boolean> commas
          The list of flags used to determine where to separate two child Expressions with a comma or with a space only.
private  java.util.List<java.lang.Boolean> spaces
          Flag used to determine when a space is required after a comma.
 
Fields inherited from class org.eclipse.persistence.jpa.internal.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.internal.jpql.parser.Expression
ABS, ALL, AND, ANY, AS, ASC, AVG, BETWEEN, BIT_LENGTH, BOTH, CASE, CHAR_LENGTH, CHARACTER_LENGTH, CLASS, COALESCE, CONCAT, COUNT, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, DELETE, DELETE_FROM, DESC, DIFFERENT, DISTINCT, DIVISION, ELSE, EMPTY, END, ENTRY, EQUAL, ESCAPE, EXISTS, FALSE, FETCH, FROM, FUNC, GREATER_THAN, GREATER_THAN_OR_EQUAL, GROUP_BY, HAVING, IN, INDEX, INNER, INNER_JOIN, INNER_JOIN_FETCH, 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_EXISTS, NOT_IN, NOT_LIKE, NOT_MEMBER, NOT_MEMBER_OF, NULL, NULLIF, OBJECT, OF, OR, ORDER_BY, OUTER, PLUS, POSITION, POSITIONAL_PARAMETER, QUOTE, SELECT, SET, SIZE, SOME, SQRT, SUBSTRING, SUM, THEN, TRAILING, TREAT, TRIM, TRUE, TYPE, 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 acceptChildren(ExpressionVisitor visitor)
          Visits the children of this Expression.
(package private)  void addChildrenTo(java.util.Collection<Expression> children)
          Adds the children of this Expression to the given collection.
(package private)  void addOrderedChildrenTo(java.util.List<StringExpression> children)
          Adds the StringExpressions representing this Expression.
 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(AbstractExpression expression)
          Retrieves the JPQLQueryBNF that was used to parse the given Expression.
 Expression getChild(int index)
          Retrieves the child Expression at the given position.
private  AbstractExpression getChildInternal(int index)
           
 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.
(package private)  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.
(package private)  void toParsedText(java.lang.StringBuilder writer, boolean includeVirtual)
          Generates a string representation of this Expression.
private  void toParsedText(java.lang.StringBuilder writer, int endIndex, boolean includeVirtual)
           
private  void updateBackpointers()
           
 
Methods inherited from class org.eclipse.persistence.jpa.internal.jpql.parser.AbstractExpression
buildExpressionFromFallingBack, buildNullExpression, buildStringExpression, buildStringExpression, buildUnknownExpression, children, expressionFactory, expressionFactoryForIdentifier, getChildren, getJPAVersion, getParent, getRoot, getText, handleAggregate, identifierRole, identifiers, identifiers, identifierVersion, isAncestor, isIdentifier, isNull, isParsingComplete, isTolerant, isUnknown, isVirtual, orderedChildren, parse, parseSingleExpression, populatePosition, queryBNF, readdLeadingSpaces, 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
 

Field Detail

children

private java.util.List<AbstractExpression> children
The Expressions that forms a collection within another expression.

commas

private java.util.List<java.lang.Boolean> commas
The list of flags used to determine where to separate two child Expressions with a comma or with a space only.

spaces

private java.util.List<java.lang.Boolean> spaces
Flag used to determine when a space is required after a comma.
Constructor Detail

CollectionExpression

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

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 visitor to visit this object

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() or Expression.getChildren() is called.

This does not traverse the Expression sub-hierarchy, use an subclass of AbstractTraverseChildrenVisitor in order to traverse the entire sub-hierarchy.

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

addChildrenTo

void addChildrenTo(java.util.Collection<Expression> children)
Adds the children of this Expression to the given collection.
Overrides:
addChildrenTo in class AbstractExpression
Parameters:
children - The collection used to store the children

addOrderedChildrenTo

void addOrderedChildrenTo(java.util.List<StringExpression> children)
Adds the StringExpressions representing this Expression.
Overrides:
addOrderedChildrenTo in class AbstractExpression
Parameters:
children - The list used to store the string representation of this Expression

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(AbstractExpression expression)
Retrieves the JPQLQueryBNF that was used to parse the given Expression.
Overrides:
findQueryBNF in class AbstractExpression
Parameters:
expression - The expression for which its BNF is needed
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

getChildInternal

private AbstractExpression getChildInternal(int index)

getQueryBNF

public JPQLQueryBNF getQueryBNF()
Returns the BNF of this Expression.
Specified by:
getQueryBNF in class AbstractExpression
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

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#toText() would return "SELECT e".
Parameters:
endIndex - The index used to determine when to create the string representation, which is exclusive
writer - The buffer used to append this CollectionExpression's string representation
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
writer - The buffer used to append this CollectionExpression's string representation
Returns:
The string representation of this Expression

toParsedText

void toParsedText(java.lang.StringBuilder writer,
                  boolean includeVirtual)
Generates a string representation of this Expression.
Specified by:
toParsedText in class AbstractExpression
Parameters:
writer - The buffer used to append this Expression's string representation
includeVirtual - 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

toParsedText

private void toParsedText(java.lang.StringBuilder writer,
                          int endIndex,
                          boolean includeVirtual)

updateBackpointers

private void updateBackpointers()

Copyright © 1998, 2012, Oracle. All Rights Reserved.