Class ArithmeticFactor

  • All Implemented Interfaces:
    Expression

    public final class ArithmeticFactor
    extends AbstractExpression
    This expression simply adds a plus or minus sign to the arithmetic primary expression.
    BNF: arithmetic_factor ::= [{+|-}] arithmetic_primary

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

      • ArithmeticFactor

        public ArithmeticFactor​(AbstractExpression parent,
                                java.lang.String arithmeticFactor)
        Creates a new ArithmeticFactor.
        Parameters:
        parent - The parent of this expression
        arithmeticFactor - The arithmetic factor, which is either '+' or '-'
    • Method Detail

      • getExpression

        public Expression getExpression()
        Returns the Expression representing the arithmetic primary.
        Returns:
        The expression representing the arithmetic primary
      • handleAggregate

        protected boolean handleAggregate​(JPQLQueryBNF queryBNF)
        Determines whether the given JPQLQueryBNF handles aggregate expressions.
        Overrides:
        handleAggregate in class AbstractExpression
        Parameters:
        queryBNF - The JPQLQueryBNF used to determine if the parsing should handle aggregate expressions
        Returns:
        true if the given BNF handles aggregate expressions; false otherwise
      • hasExpression

        public boolean hasExpression()
        Determines whether the arithmetic primary was parsed.
        Returns:
        true the arithmetic primary was parsed; false if nothing was parsed
      • hasSpaceAfterArithmeticOperator

        public boolean hasSpaceAfterArithmeticOperator()
        Determines whether a whitespace was parsed after the arithmetic operator.
        Returns:
        true if there was a whitespace after the arithmetic operator; false otherwise
      • isNegative

        public boolean isNegative()
        Determines if the arithmetic primary is prepended with the minus sign.
        Returns:
        true if the expression is prepended with '-'; 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 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
      • isPositive

        public boolean isPositive()
        Determines if the arithmetic primary is prepended with the plus sign.
        Returns:
        true if the expression is prepended with '+'; false otherwise
      • 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
      • 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