Class CollectionMemberDeclaration

  • All Implemented Interfaces:
    Expression

    public final class CollectionMemberDeclaration
    extends AbstractExpression
    An identification variable declared by a collection member declaration ranges over values of a collection obtained by navigation using a path expression. Such a path expression represents a navigation involving the association-fields of an entity abstract schema type. Because a path expression can be based on another path expression, the navigation can use the association-fields of related entities. An identification variable of a collection member declaration is declared using a special operator, the reserved identifier IN. The argument to the IN operator is a collection-valued path expression. The path expression evaluates to a collection type specified as a result of navigation to a collection-valued association-field of an entity abstract schema type.
    BNF: collection_member_declaration ::= IN(collection_valued_path_expression) [AS] identification_variable

    or
    BNF: derived_collection_member_declaration ::= IN superquery_identification_variable.{single_valued_object_field.}*collection_valued_field

    Example: SELECT t FROM Player p, IN (p.teams) AS t

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

      • CollectionMemberDeclaration

        public CollectionMemberDeclaration​(AbstractExpression parent)
        Creates a new CollectionMemberDeclaration.
        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
      • getActualInIdentifier

        public java.lang.String getActualInIdentifier()
        Returns the actual IN identifier found in the string representation of the JPQL query, which has the actual case that was used.
        Returns:
        The IN identifier that was actually parsed
      • getCollectionValuedPathExpression

        public Expression getCollectionValuedPathExpression()
        Returns the Expression representing the collection member, which is declared by an identification variable.
        Returns:
        The expression representing the collection-valued path expression
      • getIdentificationVariable

        public Expression getIdentificationVariable()
        Returns the Expression representing the identification variable, which maps the collection-valued path expression.
        Returns:
        The expression representing the identification variable
      • 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 was parsed.
        Returns:
        true if the query has the collection-valued path expression; false otherwise
      • hasIdentificationVariable

        public boolean hasIdentificationVariable()
        Determines whether the identification variable was parsed.
        Returns:
        true if the query has the identification variable; false otherwise
      • hasLeftParenthesis

        public boolean hasLeftParenthesis()
        Determines whether the open parenthesis was parsed or not.
        Returns:
        true if the open parenthesis was present in the string version of the query; false otherwise
      • hasRightParenthesis

        public boolean hasRightParenthesis()
        Determines whether the close parenthesis was parsed or not.
        Returns:
        true if the close parenthesis was present in the string version of the query; false otherwise
      • hasSpaceAfterAs

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

        public boolean hasSpaceAfterIn()
        Determines whether a whitespace was found after IN.
        Returns:
        true if there was a whitespace after IN; false otherwise
      • hasSpaceAfterRightParenthesis

        public boolean hasSpaceAfterRightParenthesis()
        Determines whether a whitespace was found after the close parenthesis.
        Returns:
        true if there was a whitespace after the right parenthesis; false otherwise
      • isDerived

        public boolean isDerived()
        Determines whether this collection member declaration is used as a derived collection-valued path expression.
        Returns:
        true if this collection member declaration is used as this form: "IN collection_valued_path_expression" in a subquery; false if it's used as this form: IN(collection_valued_path_expression) [AS] identification_variable" in a top-level or subquery queries
        Since:
        2.4
      • toParsedTextUntilAs

        public java.lang.String toParsedTextUntilAs()
        Creates a string representation of this expression up and excluding the AS identifier.
        Returns:
        The string representation of a section of this expression