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 Details

    • MathExpressionImpl

      protected MathExpressionImpl()
      No argument constructor.
    • MathExpressionImpl

      protected MathExpressionImpl(Expression e1, Expression e2)
  • Method Details

    • 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)