Class EvaluationContext

java.lang.Object
jakarta.el.ELContext
org.apache.el.lang.EvaluationContext

public final class EvaluationContext extends ELContext
Extended EL context that wraps an existing ELContext and provides additional functionality for lambda expression evaluation.
  • Constructor Details

    • EvaluationContext

      public EvaluationContext(ELContext elContext, FunctionMapper fnMapper, VariableMapper varMapper)
      Creates a new EvaluationContext wrapping the given ELContext.
      Parameters:
      elContext - The underlying ELContext to wrap
      fnMapper - The function mapper
      varMapper - The variable mapper
  • Method Details

    • getELContext

      public ELContext getELContext()
      Returns the underlying wrapped ELContext.
      Returns:
      the wrapped ELContext
    • getFunctionMapper

      public FunctionMapper getFunctionMapper()
      Description copied from class: jakarta.el.ELContext
      Returns the FunctionMapper used to resolve EL function names to Java methods during expression evaluation.
      Specified by:
      getFunctionMapper in class ELContext
      Returns:
      the FunctionMapper for this context
    • getVariableMapper

      public VariableMapper getVariableMapper()
      Description copied from class: jakarta.el.ELContext
      Returns the VariableMapper used to resolve EL variable names to ValueExpression instances during expression evaluation.
      Specified by:
      getVariableMapper in class ELContext
      Returns:
      the VariableMapper for this context
    • getContext

      public Object getContext(Class<?> key)
      Description copied from class: jakarta.el.ELContext
      Obtain the context object for the given key.
      Overrides:
      getContext in class ELContext
      Parameters:
      key - The key of the required context object
      Returns:
      The value of the context object associated with the given key
    • getELResolver

      public ELResolver getELResolver()
      Description copied from class: jakarta.el.ELContext
      Returns the ELResolver used to resolve properties and method invocations during expression evaluation.
      Specified by:
      getELResolver in class ELContext
      Returns:
      the ELResolver for this context
    • isPropertyResolved

      public boolean isPropertyResolved()
      Description copied from class: jakarta.el.ELContext
      Returns whether a property has been resolved during the current evaluation step. ELResolver implementations call ELContext.setPropertyResolved(boolean) to indicate resolution, and the expression evaluator checks this flag to determine if resolution was successful.
      Overrides:
      isPropertyResolved in class ELContext
      Returns:
      true if a property has been resolved, false otherwise
    • putContext

      public void putContext(Class<?> key, Object contextObject)
      Description copied from class: jakarta.el.ELContext
      Add an object to this EL context under the given key.
      Overrides:
      putContext in class ELContext
      Parameters:
      key - The key under which to store the object
      contextObject - The object to add
    • setPropertyResolved

      public void setPropertyResolved(boolean resolved)
      Description copied from class: jakarta.el.ELContext
      Sets the internal flag indicating whether a property has been resolved during the current evaluation step. This method is used by ELResolver implementations to signal that they have handled the current base/property combination.
      Overrides:
      setPropertyResolved in class ELContext
      Parameters:
      resolved - true if a property has been resolved, false otherwise
    • getLocale

      public Locale getLocale()
      Description copied from class: jakarta.el.ELContext
      Returns the locale associated with this EL context. The locale is used for type conversion operations such as parsing numbers and dates during expression evaluation.
      Overrides:
      getLocale in class ELContext
      Returns:
      the locale for this context, or null if not set
    • setLocale

      public void setLocale(Locale locale)
      Description copied from class: jakarta.el.ELContext
      Sets the locale for this EL context. The locale is used for type conversion operations such as parsing numbers and dates during expression evaluation.
      Overrides:
      setLocale in class ELContext
      Parameters:
      locale - the locale to use for this context
    • setPropertyResolved

      public void setPropertyResolved(Object base, Object property)
      Description copied from class: jakarta.el.ELContext
      Mark the given property as resolved and notify any interested listeners.
      Overrides:
      setPropertyResolved in class ELContext
      Parameters:
      base - The base object on which the property was found
      property - The property that was resolved
    • getImportHandler

      public ImportHandler getImportHandler()
      Description copied from class: jakarta.el.ELContext
      Obtain the ImportHandler for this ELContext, creating one if necessary. This method is not thread-safe.
      Overrides:
      getImportHandler in class ELContext
      Returns:
      the ImportHandler for this ELContext.
    • addEvaluationListener

      public void addEvaluationListener(EvaluationListener listener)
      Description copied from class: jakarta.el.ELContext
      Register an EvaluationListener with this ELContext.
      Overrides:
      addEvaluationListener in class ELContext
      Parameters:
      listener - The EvaluationListener to register
    • getEvaluationListeners

      public List<EvaluationListener> getEvaluationListeners()
      Description copied from class: jakarta.el.ELContext
      Obtain the list of registered EvaluationListeners.
      Overrides:
      getEvaluationListeners in class ELContext
      Returns:
      A list of the EvaluationListener registered with this ELContext
    • notifyBeforeEvaluation

      public void notifyBeforeEvaluation(String expression)
      Description copied from class: jakarta.el.ELContext
      Notify interested listeners that an expression will be evaluated.
      Overrides:
      notifyBeforeEvaluation in class ELContext
      Parameters:
      expression - The expression that will be evaluated
    • notifyAfterEvaluation

      public void notifyAfterEvaluation(String expression)
      Description copied from class: jakarta.el.ELContext
      Notify interested listeners that an expression has been evaluated.
      Overrides:
      notifyAfterEvaluation in class ELContext
      Parameters:
      expression - The expression that was evaluated
    • notifyPropertyResolved

      public void notifyPropertyResolved(Object base, Object property)
      Description copied from class: jakarta.el.ELContext
      Notify interested listeners that a property has been resolved.
      Overrides:
      notifyPropertyResolved in class ELContext
      Parameters:
      base - The object on which the property was resolved
      property - The property that was resolved
    • isLambdaArgument

      public boolean isLambdaArgument(String name)
      Description copied from class: jakarta.el.ELContext
      Determine if the specified name is recognised as the name of a lambda argument.
      Overrides:
      isLambdaArgument in class ELContext
      Parameters:
      name - The name of the lambda argument
      Returns:
      true if the name is recognised as the name of a lambda argument, otherwise false
    • getLambdaArgument

      public Object getLambdaArgument(String name)
      Description copied from class: jakarta.el.ELContext
      Obtain the value of the lambda argument with the given name.
      Overrides:
      getLambdaArgument in class ELContext
      Parameters:
      name - The name of the lambda argument
      Returns:
      The value of the specified argument
    • enterLambdaScope

      public void enterLambdaScope(Map<String,Object> arguments)
      Description copied from class: jakarta.el.ELContext
      Called when starting to evaluate a lambda expression so that the arguments are available to the EL context during evaluation.
      Overrides:
      enterLambdaScope in class ELContext
      Parameters:
      arguments - The arguments in scope for the current lambda expression.
    • exitLambdaScope

      public void exitLambdaScope()
      Description copied from class: jakarta.el.ELContext
      Called after evaluating a lambda expression to signal that the arguments are no longer required.
      Overrides:
      exitLambdaScope in class ELContext
    • convertToType

      public <T> T convertToType(Object obj, Class<T> type)
      Description copied from class: jakarta.el.ELContext
      Coerce the supplied object to the requested type.
      Overrides:
      convertToType in class ELContext
      Type Parameters:
      T - The type to which the object should be coerced
      Parameters:
      obj - The object to be coerced
      type - The type to which the object should be coerced
      Returns:
      An instance of the requested type.
    • getLambdaExpressionNestedState

      public LambdaExpressionNestedState getLambdaExpressionNestedState()
      Returns the lambda expression nested state, if this context or its wrapped context is associated with a nested lambda expression.
      Returns:
      the lambda expression nested state, or null if none
    • setLambdaExpressionNestedState

      public void setLambdaExpressionNestedState(LambdaExpressionNestedState lambdaExpressionNestedState)
      Sets the lambda expression nested state for this context.
      Parameters:
      lambdaExpressionNestedState - The lambda expression nested state
      Throws:
      IllegalStateException - if a nested state has already been set