Class MathExpressionImpl

  • All Implemented Interfaces:
    BinaryExpression, Expression
    Direct Known Subclasses:
    AddImpl, DivideImpl, MultiplyImpl, SubtractImpl

    public abstract class MathExpressionImpl
    extends DefaultExpression
    implements BinaryExpression
    Holds a mathematical relationship between two expressions. Note that the sub expressions must be math expressions. In other words, they must be a math literal, another math expression, or a feature attribute with a declared math type. You may create math expressions of arbitrary complexity by nesting other math expressions as sub expressions in one or more math expressions. This filter defines left and right values to clarify the sub expression precedence for non-associative operations, such as subtraction and division. For example, the left value is the numerator and the right is the denominator in an ExpressionMath division operation.
    Author:
    Rob Hranac, Vision for New York
    • Constructor Detail

      • MathExpressionImpl

        protected MathExpressionImpl()
        No argument constructor.
    • Method Detail

      • getExpression1

        public Expression getExpression1()
        Gets the left or first expression.
        Specified by:
        getExpression1 in interface BinaryExpression
        Returns:
        the expression on the first side of the comparison.
      • setExpression1

        public void setExpression1​(Expression expression)
        Gets the left or first expression.
      • getExpression2

        public Expression getExpression2()
        Gets the second expression.
        Specified by:
        getExpression2 in interface BinaryExpression
        Returns:
        the expression on the second side of the comparison.
      • setExpression2

        public void setExpression2​(Expression expression)
        Gets the second expression.
      • ensureOperandsSet

        protected void ensureOperandsSet()
                                  throws IllegalArgumentException
        Convenience method which ensures that both expressions have been set. If any of operands not set an exception is thrown.
        Throws:
        IllegalArgumentException
      • number

        protected Object number​(double number)
      • handleCollection

        protected Object handleCollection​(Object value1,
                                          Object value2)
      • doArithmeticOperation

        protected abstract Object doArithmeticOperation​(Double operand1,
                                                        Double operand2)