Class ELContext

java.lang.Object
jakarta.el.ELContext
Direct Known Subclasses:
StandardELContext

public abstract class ELContext extends Object
Provides the context in which an EL expression is evaluated. An ELContext holds references to the ELResolver, FunctionMapper, VariableMapper, ImportHandler, locale, and other objects required for expression evaluation. Implementations include StandardELContext.
  • Constructor Details

    • ELContext

      public ELContext()
      Constructs an ELContext with the resolved flag set to false.
  • Method Details

    • setPropertyResolved

      public void setPropertyResolved(boolean resolved)
      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.
      Parameters:
      resolved - true if a property has been resolved, false otherwise
    • setPropertyResolved

      public void setPropertyResolved(Object base, Object property)
      Mark the given property as resolved and notify any interested listeners.
      Parameters:
      base - The base object on which the property was found
      property - The property that was resolved
      Since:
      EL 3.0
    • isPropertyResolved

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

      public void putContext(Class<?> key, Object contextObject)
      Add an object to this EL context under the given key.
      Parameters:
      key - The key under which to store the object
      contextObject - The object to add
      Throws:
      NullPointerException - If the supplied key or context is null
    • getContext

      public Object getContext(Class<?> key)
      Obtain the context object for the given key.
      Parameters:
      key - The key of the required context object
      Returns:
      The value of the context object associated with the given key
      Throws:
      NullPointerException - If the supplied key is null
    • getELResolver

      public abstract ELResolver getELResolver()
      Returns the ELResolver used to resolve properties and method invocations during expression evaluation.
      Returns:
      the ELResolver for this context
    • getImportHandler

      public ImportHandler getImportHandler()
      Obtain the ImportHandler for this ELContext, creating one if necessary. This method is not thread-safe.
      Returns:
      the ImportHandler for this ELContext.
      Since:
      EL 3.0
    • getFunctionMapper

      public abstract FunctionMapper getFunctionMapper()
      Returns the FunctionMapper used to resolve EL function names to Java methods during expression evaluation.
      Returns:
      the FunctionMapper for this context
    • getLocale

      public Locale getLocale()
      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.
      Returns:
      the locale for this context, or null if not set
    • setLocale

      public void setLocale(Locale locale)
      Sets the locale for this EL context. The locale is used for type conversion operations such as parsing numbers and dates during expression evaluation.
      Parameters:
      locale - the locale to use for this context
    • getVariableMapper

      public abstract VariableMapper getVariableMapper()
      Returns the VariableMapper used to resolve EL variable names to ValueExpression instances during expression evaluation.
      Returns:
      the VariableMapper for this context
    • addEvaluationListener

      public void addEvaluationListener(EvaluationListener listener)
      Register an EvaluationListener with this ELContext.
      Parameters:
      listener - The EvaluationListener to register
      Since:
      EL 3.0
    • getEvaluationListeners

      public List<EvaluationListener> getEvaluationListeners()
      Obtain the list of registered EvaluationListeners.
      Returns:
      A list of the EvaluationListener registered with this ELContext
      Since:
      EL 3.0
    • notifyBeforeEvaluation

      public void notifyBeforeEvaluation(String expression)
      Notify interested listeners that an expression will be evaluated.
      Parameters:
      expression - The expression that will be evaluated
      Since:
      EL 3.0
    • notifyAfterEvaluation

      public void notifyAfterEvaluation(String expression)
      Notify interested listeners that an expression has been evaluated.
      Parameters:
      expression - The expression that was evaluated
      Since:
      EL 3.0
    • notifyPropertyResolved

      public void notifyPropertyResolved(Object base, Object property)
      Notify interested listeners that a property has been resolved.
      Parameters:
      base - The object on which the property was resolved
      property - The property that was resolved
      Since:
      EL 3.0
    • isLambdaArgument

      public boolean isLambdaArgument(String name)
      Determine if the specified name is recognised as the name of a lambda argument.
      Parameters:
      name - The name of the lambda argument
      Returns:
      true if the name is recognised as the name of a lambda argument, otherwise false
      Since:
      EL 3.0
    • getLambdaArgument

      public Object getLambdaArgument(String name)
      Obtain the value of the lambda argument with the given name.
      Parameters:
      name - The name of the lambda argument
      Returns:
      The value of the specified argument
      Since:
      EL 3.0
    • enterLambdaScope

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

      public void exitLambdaScope()
      Called after evaluating a lambda expression to signal that the arguments are no longer required.
      Since:
      EL 3.0
    • convertToType

      public <T> T convertToType(Object obj, Class<T> type)
      Coerce the supplied object to the requested type.
      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.
      Throws:
      ELException - If the conversion fails
      Since:
      EL 3.0