Package org.springframework.expression

# 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 Summary

Modifier and Type
Method
Description
`Object`
`operate(Operation operation, Object leftOperand, Object rightOperand)`
Perform the specified operation on the two operands, returning a result.
`boolean`
`overridesOperation(Operation operation, Object leftOperand, Object rightOperand)`
Return `true` if this operator overloader supports the specified operation on the two operands and should be invoked to handle it.

## 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