Interface OperatorOverloader

All Known Implementing Classes:
StandardOperatorOverloader

public interface OperatorOverloader
By default, the mathematical operators defined in Operation support simple types like numbers. By providing an implementation of OperatorOverloader, a user of the expression language can support these operations on other types.
Since:
3.0
Author:
Andy Clement
  • Method Details

    • overridesOperation

      boolean overridesOperation(Operation operation, @Nullable Object leftOperand, @Nullable Object rightOperand) throws EvaluationException
      Return true if this operator overloader supports the specified operation on the two operands and should be invoked to handle it.
      Parameters:
      operation - the operation to be performed
      leftOperand - the left operand
      rightOperand - the right operand
      Returns:
      true if this OperatorOverloader supports the specified operation between the two operands
      Throws:
      EvaluationException - if there is a problem performing the operation
    • operate

      Object operate(Operation operation, @Nullable Object leftOperand, @Nullable Object rightOperand) throws EvaluationException
      Perform the specified operation on the two operands, returning a result.

      See Operation for supported operations.

      Parameters:
      operation - the operation to be performed
      leftOperand - the left operand
      rightOperand - the right operand
      Returns:
      the result of performing the operation on the two operands
      Throws:
      EvaluationException - if there is a problem performing the operation