Class AbstractDoubleEncapsulatedExpression

    • Constructor Detail

      • AbstractDoubleEncapsulatedExpression

        protected AbstractDoubleEncapsulatedExpression​(AbstractExpression parent,
                                                       java.lang.String identifier)
        Creates a new AbstractDoubleEncapsulatedExpression.
        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 and second expressions.
        Returns:
        The first and second expressions wrapped 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
      • getSecondExpression

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

        public final boolean hasComma()
        Determines whether the comma was parsed after the first expression.
        Returns:
        true if a comma was parsed after the first expression; false otherwise
      • 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
      • 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
      • 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
      • hasSpaceAfterComma

        public final boolean hasSpaceAfterComma()
        Determines whether a whitespace was parsed after the comma.
        Returns:
        true if there was a whitespace after the comma; 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
      • isSecondExpressionOptional

        protected boolean isSecondExpressionOptional()
        Determines whether the second expression is optional or not.
        Returns:
        true if the second expression is optional; false if it is required
      • parameterExpressionBNF

        public abstract java.lang.String parameterExpressionBNF​(int index)
        Returns the BNF to be used to parse one of the encapsulated expression.
        Parameters:
        index - The position of the encapsulated Expression that needs to be parsed within the parenthesis, which starts at position 0
        Returns:
        The BNF to be used to parse one of the encapsulated expression
      • 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