Class 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 EclipseLink 2.1.

    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

    Version:
    2.5.1
    Author:
    Pascal Filion
    Since:
    2.3
    • Constructor Detail

      • TreatExpression

        public TreatExpression​(AbstractExpression parent)
        Creates a new TreatExpression.
        Parameters:
        parent - The parent of this expression
    • Method Detail

      • getActualAsIdentifier

        public java.lang.String getActualAsIdentifier()
        Returns the actual AS identifier found in the string representation of the JPQL query, which has the actual case that was used.
        Returns:
        The AS identifier that was actually parsed, or an empty string if it was not parsed
      • 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
      • 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
      • 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.
        Specified by:
        parseEncapsulatedExpression in class AbstractEncapsulatedExpression
        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
      • toParsedTextEncapsulatedExpression

        protected void toParsedTextEncapsulatedExpression​(java.lang.StringBuilder writer,
                                                          boolean actual)
        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
        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