Class EvaluationContext


  • public final class EvaluationContext
    extends ELContext
    The context for Jakarta Expression expression evaluation. This wrapper ELContext captures the function mapper and the variable mapper at the point when the expression is parsed, and only for those functions and variable used in the expression.
    • Method Detail

      • getELContext

        public ELContext getELContext()
      • getFunctionMapper

        public FunctionMapper getFunctionMapper()
        Description copied from class: ELContext
        Retrieves the FunctionMapper associated with this ELContext.
        Specified by:
        getFunctionMapper in class ELContext
        Returns:
        The function mapper to be consulted for the resolution of Jakarta Expression Language functions.
      • getVariableMapper

        public VariableMapper getVariableMapper()
        Description copied from class: ELContext
        Retrieves the VariableMapper associated with this ELContext.
        Specified by:
        getVariableMapper in class ELContext
        Returns:
        The variable mapper to be consulted for the resolution of Jakarta Expression Language variables.
      • getContext

        public java.lang.Object getContext​(java.lang.Class key)
        Description copied from class: ELContext
        Returns the context object associated with the given key.

        The ELContext maintains a collection of context objects relevant to the evaluation of an expression. These context objects are used by ELResolvers. This method is used to retrieve the context with the given key from the collection.

        By convention, the object returned will be of the type specified by the key. However, this is not required and the key is used strictly as a unique identifier.

        Overrides:
        getContext in class ELContext
        Parameters:
        key - The unique identifier that was used to associate the context object with this ELContext.
        Returns:
        The context object associated with the given key, or null if no such context was found.
      • getELResolver

        public ELResolver getELResolver()
        Description copied from class: ELContext
        Retrieves the ELResolver associated with this context.

        The ELContext maintains a reference to the ELResolver that will be consulted to resolve variables and properties during an expression evaluation. This method retrieves the reference to the resolver.

        Once an ELContext is constructed, the reference to the ELResolver associated with the context cannot be changed.

        Specified by:
        getELResolver in class ELContext
        Returns:
        The resolver to be consulted for variable and property resolution during expression evaluation.
      • isPropertyResolved

        public boolean isPropertyResolved()
        Description copied from class: ELContext
        Returns whether an ELResolver has successfully resolved a given (base, property) pair.

        The CompositeELResolver checks this property to determine whether it should consider or skip other component resolvers.

        Overrides:
        isPropertyResolved in class ELContext
        Returns:
        true if the property has been resolved, or false if not.
        See Also:
        CompositeELResolver
      • putContext

        public void putContext​(java.lang.Class key,
                               java.lang.Object contextObject)
        Description copied from class: ELContext
        Associates a context object with this ELContext.

        The ELContext maintains a collection of context objects relevant to the evaluation of an expression. These context objects are used by ELResolvers. This method is used to add a context object to that collection.

        By convention, the contextObject will be of the type specified by the key. However, this is not required and the key is used strictly as a unique identifier.

        Overrides:
        putContext in class ELContext
        Parameters:
        key - The key used by an @{link ELResolver} to identify this context object.
        contextObject - The context object to add to the collection.
      • setPropertyResolved

        public void setPropertyResolved​(java.lang.Object base,
                                        java.lang.Object property)
        Description copied from class: ELContext
        Called to indicate that a ELResolver has successfully resolved a given (base, property) pair and to notify the EvaluationListeners.

        The CompositeELResolver checks this property to determine whether it should consider or skip other component resolvers.

        Overrides:
        setPropertyResolved in class ELContext
        Parameters:
        base - The base object
        property - The property object
        See Also:
        CompositeELResolver
      • addEvaluationListener

        public void addEvaluationListener​(EvaluationListener listener)
        Description copied from class: ELContext
        Registers an evaluation listener to the ELContext.
        Overrides:
        addEvaluationListener in class ELContext
        Parameters:
        listener - The listener to be added.
      • getEvaluationListeners

        public java.util.List<EvaluationListener> getEvaluationListeners()
        Description copied from class: ELContext
        Returns the list of registered evaluation listeners.
        Overrides:
        getEvaluationListeners in class ELContext
        Returns:
        The list of registered evaluation listeners.
      • notifyBeforeEvaluation

        public void notifyBeforeEvaluation​(java.lang.String expr)
        Description copied from class: ELContext
        Notifies the listeners before an Jakarta Expression Language expression is evaluated
        Overrides:
        notifyBeforeEvaluation in class ELContext
        Parameters:
        expr - The Jakarta Expression Language expression string to be evaluated
      • notifyAfterEvaluation

        public void notifyAfterEvaluation​(java.lang.String expr)
        Description copied from class: ELContext
        Notifies the listeners after an Jakarta Expression Language expression is evaluated
        Overrides:
        notifyAfterEvaluation in class ELContext
        Parameters:
        expr - The Jakarta Expression Language expression string that has been evaluated
      • notifyPropertyResolved

        public void notifyPropertyResolved​(java.lang.Object base,
                                           java.lang.Object property)
        Description copied from class: ELContext
        Notifies the listeners when the (base, property) pair is resolved
        Overrides:
        notifyPropertyResolved in class ELContext
        Parameters:
        base - The base object
        property - The property Object
      • isLambdaArgument

        public boolean isLambdaArgument​(java.lang.String arg)
        Description copied from class: ELContext
        Inquires if the name is a LambdaArgument
        Overrides:
        isLambdaArgument in class ELContext
        Parameters:
        arg - A possible Lambda formal parameter name
        Returns:
        true if arg is a LambdaArgument, false otherwise.
      • getLambdaArgument

        public java.lang.Object getLambdaArgument​(java.lang.String arg)
        Description copied from class: ELContext
        Retrieves the Lambda argument associated with a formal parameter. If the Lambda expression is nested within other Lambda expressions, the arguments for the current Lambda expression is first searched, and if not found, the arguments for the immediate nesting Lambda expression then searched, and so on.
        Overrides:
        getLambdaArgument in class ELContext
        Parameters:
        arg - The formal parameter for the Lambda argument
        Returns:
        The object associated with formal parameter. Null if no object has been associated with the parameter.
      • enterLambdaScope

        public void enterLambdaScope​(java.util.Map<java.lang.String,​java.lang.Object> args)
        Description copied from class: ELContext
        Installs a Lambda argument map, in preparation for the evaluation of a Lambda expression. The arguments in the map will be in scope during the evaluation of the Lambda expression.
        Overrides:
        enterLambdaScope in class ELContext
        Parameters:
        args - The Lambda arguments map
      • exitLambdaScope

        public void exitLambdaScope()
        Description copied from class: ELContext
        Exits the Lambda expression evaluation. The Lambda argument map that was previously installed is removed.
        Overrides:
        exitLambdaScope in class ELContext
      • convertToType

        public java.lang.Object convertToType​(java.lang.Object obj,
                                              java.lang.Class<?> targetType)
        Description copied from class: ELContext
        Converts an object to a specific type. If a custom converter in the ELResolver handles this conversion, it is used. Otherwise the standard coercions is applied.

        An ELException is thrown if an error occurs during the conversion.

        Overrides:
        convertToType in class ELContext
        Parameters:
        obj - The object to convert.
        targetType - The target type for the conversion.
        Returns:
        object converted to targetType
      • getImportHandler

        public ImportHandler getImportHandler()
        Description copied from class: ELContext
        Retrieves the ImportHandler associated with this ELContext.
        Overrides:
        getImportHandler in class ELContext
        Returns:
        The import handler to manage imports of classes and packages.