org.springframework.expression.spel.ast

## Class OpMultiply

- java.lang.Object
- - org.springframework.expression.spel.ast.SpelNodeImpl
  - - org.springframework.expression.spel.ast.Operator
    - - org.springframework.expression.spel.ast.OpMultiply

- All Implemented Interfaces:
    SpelNode

      public class OpMultiply
      extends Operator

  Implements the `multiply` operator.

  Conversions and promotions are handled as defined in Section 5.6.2 of the Java Language Specification:

  If any of the operands is of a reference type, unboxing conversion (Section 5.1.8) is performed. Then:
  If either operand is of type double, the other is converted to double.
  Otherwise, if either operand is of type float, the other is converted to float.
  Otherwise, if either operand is of type long, the other is converted to long.
  Otherwise, both operands are converted to type int.

  Since:
    3.0
  Author:
    Andy Clement, Sam Brannen

- - ### Field Summary

    - ### Fields inherited from class org.springframework.expression.spel.ast.SpelNodeImpl

      `children, pos`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `OpMultiply(int pos, SpelNodeImpl... operands)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `TypedValue` | `getValueInternal(ExpressionState state)` Implements the `multiply` operator directly here for certain types of supported operands and otherwise delegates to any registered overloader for types not supported here.

    - ### Methods inherited from class org.springframework.expression.spel.ast.Operator

      `getLeftOperand, getOperatorName, getRightOperand, toStringAST`

    - ### Methods inherited from class org.springframework.expression.spel.ast.SpelNodeImpl

      `getChild, getChildCount, getEndPosition, getObjectClass, getPreviousChild, getStartPosition, getTypedValue, getValue, getValue, getValueRef, isWritable, nextChildIs, setValue`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### OpMultiply

          public OpMultiply(int pos,
                    SpelNodeImpl... operands)

  - ### Method Detail

    - #### getValueInternal

          public TypedValue getValueInternal(ExpressionState state)
                                      throws EvaluationException

      Implements the `multiply` operator directly here for certain types of supported operands and otherwise delegates to any registered overloader for types not supported here.

      Supported operand types:

      - doubles
      - longs
      - integers
      - String and int ('abc' * 2 == 'abcabc')
      Specified by:
        `getValueInternal` in class `SpelNodeImpl`
      Throws:
        `EvaluationException`