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 TreatExpression

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.AbstractEncapsulatedExpression
              extended by org.eclipse.persistence.jpa.internal.jpql.parser.TreatExpression

All Implemented Interfaces:
Expression

public final class TreatExpression
extends AbstractEncapsulatedExpression

Returns an expression that allows to treat its base as if it were a subclass of the class returned by the base.

New to

BNF: join_treat ::= TREAT(collection_valued_path_expression AS entity_type_literal)

Example: SELECT e FROM Employee e JOIN TREAT(e.projects AS LargeProject) lp WHERE lp.budget = value

Since:
2.3
Version:
2.3
Author:
Pascal Filion

Field Summary
private  AbstractExpression collectionValuedPathExpression
          The Expression that represents the collection-valued path expression.
private  AbstractExpression entityType
          The entity type used to downcast the type of the elements in the collection.
private  boolean hasAs
          Determines whether the identifier AS was parsed.
private  boolean hasSpaceAfterAs
          Determines whether a whitespace was parsed after AS.
private  boolean hasSpaceAfterCollectionValuedPathExpression
          Determines whether a whitespace was parsed after the collection-valued path expression.
 
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
TreatExpression(AbstractExpression parent)
          Creates a new TreatExpression.
 
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 addOrderedEncapsulatedExpressionTo(java.util.List<StringExpression> children)
          Adds the StringExpressions representing the encapsulated Expression.
 Expression getCollectionValuedPathExpression()
          Returns the Expression that represents the collection-valued path expression.
 Expression getEntityType()
          Returns the Expression that represents the entity type that will be used to downcast the type of the elements in the collection.
 JPQLQueryBNF getQueryBNF()
          Returns the BNF of this Expression.
 boolean hasAs()
          Determines whether the identifier AS was parsed.
 boolean hasCollectionValuedPathExpression()
          Determines whether the collection-valued path expression of the query was parsed.
 boolean hasEncapsulatedExpression()
          Determines whether something was parsed after the left parenthesis.
 boolean hasEntityType()
          Determines whether the entity type was parsed.
 boolean hasSpaceAfterAs()
          Determines whether a whitespace was parsed after AS.
 boolean hasSpaceAfterCollectionValuedPathExpression()
          Determines whether a whitespace was parsed after the collection-valued path expression.
(package private)  void parseEncapsulatedExpression(WordParser wordParser, boolean tolerant)
          Parses the encapsulated expression by starting at the current position, which is part of the given WordParser.
(package private)  java.lang.String parseIdentifier(WordParser wordParser)
          Parses the identifier of this expression.
(package private)  void toParsedTextEncapsulatedExpression(java.lang.StringBuilder writer, boolean includeVirtual)
          Generates a string representation of the encapsulated Expression.
 
Methods inherited from class org.eclipse.persistence.jpa.internal.jpql.parser.AbstractEncapsulatedExpression
addOrderedChildrenTo, areLogicalIdentifiersSupported, getIdentifier, hasLeftParenthesis, hasRightParenthesis, isParsingComplete, parse, toParsedText
 
Methods inherited from class org.eclipse.persistence.jpa.internal.jpql.parser.AbstractExpression
buildExpressionFromFallingBack, buildNullExpression, buildStringExpression, buildStringExpression, buildUnknownExpression, children, expressionFactory, expressionFactoryForIdentifier, findQueryBNF, getChildren, getJPAVersion, getParent, getRoot, getText, handleAggregate, identifierRole, identifiers, identifiers, identifierVersion, isAncestor, isIdentifier, isNull, 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

collectionValuedPathExpression

private AbstractExpression collectionValuedPathExpression
The Expression that represents the collection-valued path expression.

entityType

private AbstractExpression entityType
The entity type used to downcast the type of the elements in the collection.

hasAs

private boolean hasAs
Determines whether the identifier AS was parsed.

hasSpaceAfterAs

private boolean hasSpaceAfterAs
Determines whether a whitespace was parsed after AS.

hasSpaceAfterCollectionValuedPathExpression

private boolean hasSpaceAfterCollectionValuedPathExpression
Determines whether a whitespace was parsed after the collection-valued path expression.
Constructor Detail

TreatExpression

TreatExpression(AbstractExpression parent)
Creates a new TreatExpression.
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 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

addOrderedEncapsulatedExpressionTo

void addOrderedEncapsulatedExpressionTo(java.util.List<StringExpression> children)
Adds the StringExpressions representing the encapsulated Expression.
Specified by:
addOrderedEncapsulatedExpressionTo in class AbstractEncapsulatedExpression
Parameters:
children - The list used to store the string representation of the encapsulated Expression

getCollectionValuedPathExpression

public Expression getCollectionValuedPathExpression()
Returns the Expression that represents the collection-valued path expression.
Returns:
The expression that represents the collection-valued path expression

getEntityType

public Expression getEntityType()
Returns the Expression that represents the entity type that will be used to downcast the type of the elements in the collection.
Returns:
The expression representing the entity type

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

hasAs

public boolean hasAs()
Determines whether the identifier AS was parsed.
Returns:
true if the identifier AS was parsed; false otherwise

hasCollectionValuedPathExpression

public boolean hasCollectionValuedPathExpression()
Determines whether the collection-valued path expression of the query was parsed.
Returns:
true if the collection-valued path expression was parsed; false if nothing was parsed

hasEncapsulatedExpression

public boolean hasEncapsulatedExpression()
Determines whether something was parsed after the left parenthesis.
Specified by:
hasEncapsulatedExpression in class AbstractEncapsulatedExpression
Returns:
true if something was parsed; false otherwise

hasEntityType

public boolean hasEntityType()
Determines whether the entity type was parsed.
Returns:
true if the entity type was parsed; false if nothing was parsed

hasSpaceAfterAs

public boolean hasSpaceAfterAs()
Determines whether a whitespace was parsed after AS.
Returns:
true if there was a whitespace after AS; false otherwise

hasSpaceAfterCollectionValuedPathExpression

public boolean hasSpaceAfterCollectionValuedPathExpression()
Determines whether a whitespace was parsed after the collection-valued path expression.
Returns:
true if a whitespace was parsed after the collection-valued path expression; false otherwise

parseEncapsulatedExpression

void parseEncapsulatedExpression(WordParser wordParser,
                                 boolean tolerant)
Parses the encapsulated expression by starting at the current position, which is part of the given WordParser.
Specified by:
parseEncapsulatedExpression in class AbstractEncapsulatedExpression
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

parseIdentifier

java.lang.String parseIdentifier(WordParser wordParser)
Parses the identifier of this expression.
Specified by:
parseIdentifier in class AbstractEncapsulatedExpression
Returns:
The identifier for this expression

toParsedTextEncapsulatedExpression

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

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