Class ELContext
- java.lang.Object
- 
- jakarta.el.ELContext
 
- 
- Direct Known Subclasses:
- FaceletContext,- StandardELContext
 
 public abstract class ELContext extends Object Context information for expression parsing and evaluation.To parse or evaluate an Expression, anELContextmust be provided. TheELContextholds:- a reference to FunctionMapperthat will be used to resolve Jakarta Expression Language Functions. This is used only in parsing.
- a reference to VariableMapperthat will be used to resolve Jakarta Expression Language Variables. This is used only in parsing.
- a reference to the base ELResolverthat will be consulted to resolve model objects and their properties
- a collection of all the relevant context objects for use by ELResolvers
- state information during the evaluation of an expression, such as whether a property has been resolved yet
- a reference to ImportHandlerthat will be consulted to resolve classes that have been imported
- a reference to the arguments for the active LambdaExpressions
- a reference to the list of registered evaluation listeners
 The collection of context objects is necessary because each ELResolvermay need access to a different context object. For example, Jakarta Server Pages and Jakarta Faces resolvers need access to ajakarta.servlet.jsp.JspContextand ajakarta.faces.context.FacesContext, respectively.When used in a web container, the creation of ELContextobjects is controlled through the underlying technology. For example, in Jakarta Server Pages theJspContext.getELContext()factory method is used. Some technologies provide the ability to add anELContextListenerso that applications and frameworks can ensure their own context objects are attached to any newly createdELContext.When used in a stand-alone environment, StandardELContextprovides a defaultELContext, which is managed and modified byELManager.Because it stores state during expression evaluation, an ELContextobject is not thread-safe. Care should be taken to never share anELContextinstance between two or more threads.- Since:
- Jakarta Expression Language 2.1 and Jakarta Expression Language 3.0
- See Also:
- ELContextListener,- ELContextEvent,- ELResolver,- FunctionMapper,- VariableMapper,- ImportHandler,- LambdaExpression,- StandardELContext
 
- 
- 
Constructor SummaryConstructors Constructor Description ELContext()
 - 
Method SummaryAll Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddEvaluationListener(EvaluationListener listener)Registers an evaluation listener to the ELContext.<T> TconvertToType(Object obj, Class<T> targetType)Converts an object to a specific type.voidenterLambdaScope(Map<String,Object> args)Installs a Lambda argument map, in preparation for the evaluation of a Lambda expression.voidexitLambdaScope()Exits the Lambda expression evaluation.ObjectgetContext(Class<?> key)Returns the context object associated with the given key.abstract ELResolvergetELResolver()Retrieves theELResolverassociated with this context.List<EvaluationListener>getEvaluationListeners()Returns the list of registered evaluation listeners.abstract FunctionMappergetFunctionMapper()Retrieves theFunctionMapperassociated with thisELContext.ImportHandlergetImportHandler()Retrieves theImportHandlerassociated with thisELContext.ObjectgetLambdaArgument(String arg)Retrieves the Lambda argument associated with a formal parameter.LocalegetLocale()Get theLocalestored by a previous invocation tosetLocale(java.util.Locale).abstract VariableMappergetVariableMapper()Retrieves theVariableMapperassociated with thisELContext.booleanisLambdaArgument(String arg)Inquires if the name is a LambdaArgumentbooleanisPropertyResolved()Returns whether anELResolverhas successfully resolved a given (base, property) pair.voidnotifyAfterEvaluation(String expr)Notifies the listeners after an Jakarta Expression Language expression is evaluatedvoidnotifyBeforeEvaluation(String expr)Notifies the listeners before an Jakarta Expression Language expression is evaluatedvoidnotifyPropertyResolved(Object base, Object property)Notifies the listeners when the (base, property) pair is resolvedvoidputContext(Class<?> key, Object contextObject)Associates a context object with thisELContext.voidsetLocale(Locale locale)Sets theLocalefor this instance.voidsetPropertyResolved(boolean resolved)Called to indicate that aELResolverhas successfully resolved a given (base, property) pair.voidsetPropertyResolved(Object base, Object property)Called to indicate that aELResolverhas successfully resolved a given (base, property) pair and to notify theEvaluationListeners.
 
- 
- 
- 
Method Detail- 
setPropertyResolvedpublic void setPropertyResolved(boolean resolved) Called to indicate that aELResolverhas successfully resolved a given (base, property) pair. UsesetPropertyResolved(Object, Object)if resolved is true and to notifyEvaluationListeners.The CompositeELResolverchecks this property to determine whether it should consider or skip other component resolvers.- Parameters:
- resolved- true if the property has been resolved, or false if not.
- See Also:
- CompositeELResolver
 
 - 
setPropertyResolvedpublic void setPropertyResolved(Object base, Object property) Called to indicate that aELResolverhas successfully resolved a given (base, property) pair and to notify theEvaluationListeners.The CompositeELResolverchecks this property to determine whether it should consider or skip other component resolvers.- Parameters:
- base- The base object
- property- The property object
- Since:
- Jakarta Expression Language 3.0
- See Also:
- CompositeELResolver
 
 - 
isPropertyResolvedpublic boolean isPropertyResolved() Returns whether anELResolverhas successfully resolved a given (base, property) pair.The CompositeELResolverchecks this property to determine whether it should consider or skip other component resolvers.- Returns:
- true if the property has been resolved, or false if not.
- See Also:
- CompositeELResolver
 
 - 
putContextpublic void putContext(Class<?> key, Object contextObject) Associates a context object with thisELContext.The ELContextmaintains a collection of context objects relevant to the evaluation of an expression. These context objects are used byELResolvers. This method is used to add a context object to that collection.By convention, the contextObjectwill be of the type specified by thekey. However, this is not required and the key is used strictly as a unique identifier.- Parameters:
- key- The key used by an @{link ELResolver} to identify this context object.
- contextObject- The context object to add to the collection.
- Throws:
- NullPointerException- if key is null or contextObject is null.
 
 - 
getContextpublic Object getContext(Class<?> key) Returns the context object associated with the given key.The ELContextmaintains a collection of context objects relevant to the evaluation of an expression. These context objects are used byELResolvers. 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.- 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.
- Throws:
- NullPointerException- if key is null.
 
 - 
getELResolverpublic abstract ELResolver getELResolver() Retrieves theELResolverassociated with this context.The ELContextmaintains a reference to theELResolverthat will be consulted to resolve variables and properties during an expression evaluation. This method retrieves the reference to the resolver.Once an ELContextis constructed, the reference to theELResolverassociated with the context cannot be changed.- Returns:
- The resolver to be consulted for variable and property resolution during expression evaluation.
 
 - 
getImportHandlerpublic ImportHandler getImportHandler() Retrieves theImportHandlerassociated with thisELContext.- Returns:
- The import handler to manage imports of classes and packages.
- Since:
- Jakarta Expression Language 3.0
 
 - 
getFunctionMapperpublic abstract FunctionMapper getFunctionMapper() Retrieves theFunctionMapperassociated with thisELContext.- Returns:
- The function mapper to be consulted for the resolution of Jakarta Expression Language functions.
 
 - 
getLocalepublic Locale getLocale() Get theLocalestored by a previous invocation tosetLocale(java.util.Locale). If this method returns nonnull, thisLocalemust be used for all localization needs in the implementation. TheLocalemust not be cached to allow for applications that changeLocaledynamically.- Returns:
- The Localein which this instance is operating. Used primarily for message localization.
 
 - 
setLocalepublic void setLocale(Locale locale) Sets theLocalefor this instance.This method may be called by the party creating the instance, such as Jakarta Faces or Jakarta Server Pages, to enable the Jakarta Expression Language implementation to provide localized messages to the user. If no Localeis set, the implementation must use the locale returned byLocale.getDefault( ).- Parameters:
- locale- the locale for this instance
 
 - 
getVariableMapperpublic abstract VariableMapper getVariableMapper() Retrieves theVariableMapperassociated with thisELContext.- Returns:
- The variable mapper to be consulted for the resolution of Jakarta Expression Language variables.
 
 - 
addEvaluationListenerpublic void addEvaluationListener(EvaluationListener listener) Registers an evaluation listener to the ELContext.- Parameters:
- listener- The listener to be added.
- Since:
- Jakarta Expression Language 3.0
 
 - 
getEvaluationListenerspublic List<EvaluationListener> getEvaluationListeners() Returns the list of registered evaluation listeners.- Returns:
- The list of registered evaluation listeners.
- Since:
- Jakarta Expression Language 3.0
 
 - 
notifyBeforeEvaluationpublic void notifyBeforeEvaluation(String expr) Notifies the listeners before an Jakarta Expression Language expression is evaluated- Parameters:
- expr- The Jakarta Expression Language expression string to be evaluated
 
 - 
notifyAfterEvaluationpublic void notifyAfterEvaluation(String expr) Notifies the listeners after an Jakarta Expression Language expression is evaluated- Parameters:
- expr- The Jakarta Expression Language expression string that has been evaluated
 
 - 
notifyPropertyResolvedpublic void notifyPropertyResolved(Object base, Object property) Notifies the listeners when the (base, property) pair is resolved- Parameters:
- base- The base object
- property- The property Object
 
 - 
isLambdaArgumentpublic boolean isLambdaArgument(String arg) Inquires if the name is a LambdaArgument- Parameters:
- arg- A possible Lambda formal parameter name
- Returns:
- true if arg is a LambdaArgument, false otherwise.
 
 - 
getLambdaArgumentpublic Object getLambdaArgument(String arg) 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.- 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.
- Since:
- Jakarta Expression Language 3.0
 
 - 
enterLambdaScopepublic void enterLambdaScope(Map<String,Object> args) 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.- Parameters:
- args- The Lambda arguments map
- Since:
- Jakarta Expression Language 3.0
 
 - 
exitLambdaScopepublic void exitLambdaScope() Exits the Lambda expression evaluation. The Lambda argument map that was previously installed is removed.- Since:
- Jakarta Expression Language 3.0
 
 - 
convertToTypepublic <T> T convertToType(Object obj, Class<T> targetType) Converts an object to a specific type. If a custom converter in theELResolverhandles this conversion, it is used. Otherwise the standard coercions is applied.An ELExceptionis thrown if an error occurs during the conversion.- Parameters:
- obj- The object to convert.
- targetType- The target type for the conversion.
- Returns:
- object converted to targetType
- Throws:
- ELException- thrown if errors occur.
- Since:
- Jakarta Expression Language 3.0
 
 
- 
 
-