org.springframework.expression.spel.ast

## Class FunctionReference

- java.lang.Object
- - org.springframework.expression.spel.ast.SpelNodeImpl
  - - org.springframework.expression.spel.ast.FunctionReference

- All Implemented Interfaces:
    SpelNode

      public class FunctionReference
      extends SpelNodeImpl

  A function reference is of the form "#someFunction(a,b,c)". Functions may be defined in the context prior to the expression being evaluated or within the expression itself using a lambda function definition. For example: Lambda function definition in an expression: "(#max = {|x,y|$x>$y?$x:$y};max(2,3))" Calling context defined function: "#isEven(37)". Functions may also be static java methods, registered in the context prior to invocation of the expression.

  Functions are very simplistic, the arguments are not part of the definition (right now), so the names must be unique.

  Since:
    3.0
  Author:
    Andy Clement

- - ### Field Summary

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

      `children, pos`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FunctionReference(String functionName, int pos, SpelNodeImpl... arguments)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `TypedValue` | `getValueInternal(ExpressionState state)`
    `String` | `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

    - #### FunctionReference

          public FunctionReference(String functionName,
                           int pos,
                           SpelNodeImpl... arguments)

  - ### Method Detail

    - #### getValueInternal

          public TypedValue getValueInternal(ExpressionState state)
                                      throws EvaluationException

      Specified by:
        `getValueInternal` in class `SpelNodeImpl`
      Throws:
        `EvaluationException`

    - #### toStringAST

          public String toStringAST()

      Specified by:
        `toStringAST` in interface `SpelNode`
      Specified by:
        `toStringAST` in class `SpelNodeImpl`
      Returns:
        the string form of this AST node