Class AbstractFromClause

  • All Implemented Interfaces:
    Expression
    Direct Known Subclasses:
    FromClause, SimpleFromClause

    public abstract class AbstractFromClause
    extends AbstractExpression
    The FROM clause of a query defines the domain of the query by declaring identification variables. An identification variable is an identifier declared in the FROM clause of a query. The domain of the query may be constrained by path expressions. Identification variables designate instances of a particular entity abstract schema type. The FROM clause can contain multiple identification variable declarations separated by a comma (,).
    Version:
    2.5
    See Also:
    FromClause, SimpleFromClause
    Author:
    Pascal Filion
    Since:
    2.3
    • Constructor Detail

      • AbstractFromClause

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

      • buildCollectionExpression

        public final CollectionExpression buildCollectionExpression()
        Creates a new CollectionExpression that will wrap the single declaration.
        Returns:
        The single declaration represented by a temporary collection
      • getActualIdentifier

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

        public final Expression getAsOfClause()
        Returns the Expression representing the AS OF clause.
        Returns:
        The expression representing the AS OF clause
      • getDeclaration

        public final Expression getDeclaration()
        Returns the Expression that represents the declaration of this clause.
        Returns:
        The expression that was parsed representing the declaration
      • getDeclarationQueryBNFId

        public abstract java.lang.String getDeclarationQueryBNFId()
        Returns the BNF of the declaration part of this clause.
        Returns:
        The BNF of the declaration part of this clause
      • getHierarchicalQueryClause

        public final Expression getHierarchicalQueryClause()
        Returns the Expression representing the hierarchical query clause.
        Returns:
        The expression representing the hierarchical query clause
        Since:
        2.5
      • hasAsOfClause

        public final boolean hasAsOfClause()
        Determines whether the AS OF clause is defined.
        Returns:
        true if the query that got parsed had the AS OF clause
      • hasDeclaration

        public final boolean hasDeclaration()
        Determines whether the declaration of this clause was parsed.
        Returns:
        true if the declaration of this clause was parsed; false if it was not parsed
      • hasHierarchicalQueryClause

        public final boolean hasHierarchicalQueryClause()
        Determines whether the hierarchical query clause was parsed or not.
        Returns:
        true if the query that got parsed had the hierarchical query clause
        Since:
        2.5
      • hasSpaceAfterDeclaration

        public final boolean hasSpaceAfterDeclaration()
        Determines whether a whitespace was found after the declaration query clause, which will be true if it's followed by either the hierarchical query clause or the AS OF clause.
        Returns:
        true if there was a whitespace after the declaration; false otherwise
        Since:
        2.5
      • hasSpaceAfterFrom

        public final boolean hasSpaceAfterFrom()
        Determines whether a whitespace was parsed after the FROM identifier.
        Returns:
        true if a whitespace was parsed after the FROM identifier; false otherwise
      • hasSpaceAfterHierarchicalQueryClause

        public final boolean hasSpaceAfterHierarchicalQueryClause()
        Determines whether a whitespace was found after the hierarchical query clause. In some cases, the space is owned by a child of the hierarchical query clause.
        Returns:
        true if there was a whitespace after the hierarchical query clause and owned by this expression; false otherwise
        Since:
        2.5
      • 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 AbstractExpression
        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
      • 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
      • shouldParseWithFactoryFirst

        protected boolean shouldParseWithFactoryFirst()
        Determines whether the parsing of the query should be performed using the factories first or it should automatically fallback to the fallback factory.
        Overrides:
        shouldParseWithFactoryFirst in class AbstractExpression
        Returns:
        true is returned by default so the factories are used before falling back
      • 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