Class AbstractTripleEncapsulatedExpression

    • Field Detail

      • parameterIndex

        protected int parameterIndex
        Determines which child expression is been currently parsed.
    • Constructor Detail

      • AbstractTripleEncapsulatedExpression

        protected AbstractTripleEncapsulatedExpression​(AbstractExpression parent,
                                                       java.lang.String identifier)
        Creates a new AbstractTripleEncapsulatedExpression.
        Parameters:
        parent - The parent of this expression
        identifier - The JPQL identifier that starts this expression
    • Method Detail

      • buildCollectionExpression

        public final CollectionExpression buildCollectionExpression()
        Creates a new CollectionExpression that will wrap the first, second and third expressions.
        Returns:
        The first, second and third expressions represented by a temporary collection
      • getFirstExpression

        public final Expression getFirstExpression()
        Returns the Expression that represents the first expression.
        Returns:
        The expression that was parsed representing the first expression
      • getParameterQueryBNFId

        public abstract java.lang.String getParameterQueryBNFId​(int index)
        Returns the unique identifier of the JPQLQueryBNF to be used to parse one of the encapsulated expression at the given position.
        Parameters:
        index - The position of the encapsulated Expression that needs to be parsed within the parenthesis, which starts at position 0
        Returns:
        The ID of the JPQLQueryBNF to be used to parse one of the encapsulated expression
      • getSecondExpression

        public final Expression getSecondExpression()
        Returns the Expression that represents the second expression.
        Returns:
        The expression that was parsed representing the second expression
      • getThirdExpression

        public final Expression getThirdExpression()
        Returns the Expression that represents the first expression.
        Returns:
        The expression that was parsed representing the first expression
      • 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
      • hasFirstComma

        public final boolean hasFirstComma()
        Determines whether the comma was parsed after the first expression.
        Returns:
        true if a comma was parsed after the first expression; false otherwise
      • hasFirstExpression

        public final boolean hasFirstExpression()
        Determines whether the first expression of the query was parsed.
        Returns:
        true if the first expression was parsed; false if it was not parsed
      • hasSecondComma

        public final boolean hasSecondComma()
        Determines whether the comma was parsed after the second expression.
        Returns:
        true if a comma was parsed after the second expression; false otherwise
      • hasSecondExpression

        public final boolean hasSecondExpression()
        Determines whether the second expression of the query was parsed.
        Returns:
        true if the second expression was parsed; false if it was not parsed
      • hasSpaceAfterFirstComma

        public final boolean hasSpaceAfterFirstComma()
        Determines whether a whitespace was parsed after the first comma.
        Returns:
        true if there was a whitespace after the first comma; false otherwise
      • hasSpaceAfterSecondComma

        public final boolean hasSpaceAfterSecondComma()
        Determines whether a whitespace was parsed after the second comma.
        Returns:
        true if there was a whitespace after the second comma; false otherwise
      • hasThirdExpression

        public final boolean hasThirdExpression()
        Determines whether the third expression of the query was parsed.
        Returns:
        true if the third expression was parsed; false if it was not parsed
      • 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
      • isThirdExpressionOptional

        protected abstract boolean isThirdExpressionOptional()
        Determines whether the third expression is an optional expression, which means a valid query can have it or not.
        Returns:
        true if the third expression can either be present or not in a valid query; false if it's mandatory
      • 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 final 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