org.springframework.context.expression

## Class MethodBasedEvaluationContext

- java.lang.Object
- - org.springframework.expression.spel.support.StandardEvaluationContext
  - - org.springframework.context.expression.MethodBasedEvaluationContext

- All Implemented Interfaces:
    EvaluationContext

      public class MethodBasedEvaluationContext
      extends StandardEvaluationContext

  A method-based `EvaluationContext` that provides explicit support for method-based invocations.

  Expose the actual method arguments using the following aliases:

  1. pX where X is the index of the argument (p0 for the first argument)
  2. aX where X is the index of the argument (a1 for the second argument)
  3. the name of the parameter as discovered by a configurable `ParameterNameDiscoverer`
  Since:
    4.2
  Author:
    Stephane Nicoll, Juergen Hoeller

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `MethodBasedEvaluationContext(Object rootObject, Method method, Object[] arguments, ParameterNameDiscoverer parameterNameDiscoverer)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `lazyLoadArguments()` Load the param information only when needed.
    `Object` | `lookupVariable(String name)` Look up a named variable within this evaluation context.

    - ### Methods inherited from class org.springframework.expression.spel.support.StandardEvaluationContext

      `addConstructorResolver, addMethodResolver, addPropertyAccessor, getBeanResolver, getConstructorResolvers, getMethodResolvers, getOperatorOverloader, getPropertyAccessors, getRootObject, getTypeComparator, getTypeConverter, getTypeLocator, registerFunction, registerMethodFilter, removeConstructorResolver, removeMethodResolver, removePropertyAccessor, setBeanResolver, setConstructorResolvers, setMethodResolvers, setOperatorOverloader, setPropertyAccessors, setRootObject, setRootObject, setTypeComparator, setTypeConverter, setTypeLocator, setVariable, setVariables`

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

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

    - ### Methods inherited from interface org.springframework.expression.EvaluationContext

      `assignVariable, isAssignmentEnabled`

- - ### Constructor Detail

    - #### MethodBasedEvaluationContext

          public MethodBasedEvaluationContext(Object rootObject,
                                              Method method,
                                              Object[] arguments,
                                              ParameterNameDiscoverer parameterNameDiscoverer)

  - ### Method Detail

    - #### lookupVariable

          @Nullable
          public Object lookupVariable(String name)

      Description copied from interface: `EvaluationContext`
      Look up a named variable within this evaluation context.
      Specified by:
        `lookupVariable` in interface `EvaluationContext`
      Overrides:
        `lookupVariable` in class `StandardEvaluationContext`
      Parameters:
        `name` - the name of the variable to look up
      Returns:
        the value of the variable, or `null` if not found

    - #### lazyLoadArguments

          protected void lazyLoadArguments()

      Load the param information only when needed.