# Class ELManager

java.lang.Object
jakarta.el.ELManager

public class ELManager extends Object
Provides a simplified API for managing EL context, resolvers, functions, and variables. This class maintains a `StandardELContext` and provides convenience methods for adding resolvers, mapping functions, setting variables, and managing imports. It is used internally by `ELProcessor`.

Since:
  EL 3.0

## Constructor Summary

Constructors
Constructor
Description
`ELManager()`
Constructs an ELManager with a lazily initialized `StandardELContext`.

## Method Summary

Modifier and Type
Method
Description
`void`
`addBeanNameResolver(BeanNameResolver beanNameResolver)`
Adds a `BeanNameELResolver` to the resolver chain that uses the given `BeanNameResolver` to resolve top-level identifiers to managed beans.
`void`
`addELResolver(ELResolver resolver)`
Adds an `ELResolver` to the front of the resolver chain in the managed EL context.
`void`
`addEvaluationListener(EvaluationListener listener)`
Registers an `EvaluationListener` with the managed EL context.
`Object`
`defineBean(String name, Object bean)`
Defines or removes a bean accessible by name in EL expressions.
`StandardELContext`
`getELContext()`
Returns the `StandardELContext` managed by this ELManager, creating it on first access if it does not already exist.
`static ExpressionFactory`
`getExpressionFactory()`
Returns the `ExpressionFactory` used to create and evaluate EL expressions.
`void`
`importClass(String className)`
Imports a class so it can be referenced by its simple name in EL expressions.
`void`
`importPackage(String packageName)`
Imports all classes from a package so they can be referenced by their simple names in EL expressions.
`void`
`importStatic(String staticMemberName)`
Imports a static field or method so it can be referenced by its simple name in EL expressions.
`void`
`mapFunction(String prefix, String function, Method method)`
Maps a static method to an EL function name with the given prefix and local name.
`ELContext`
`setELContext(ELContext context)`
Replaces the current EL context with a new `StandardELContext` initialized from the given context.
`void`
`setVariable(String variable, ValueExpression expression)`
Registers a variable in the EL context's variable mapper.

### Methods inherited from class Object

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

## Constructor Details

### ELManager

public ELManager()
Constructs an ELManager with a lazily initialized `StandardELContext`.

## Method Details

### getExpressionFactory

public static ExpressionFactory getExpressionFactory()
Returns the `ExpressionFactory` used to create and evaluate EL expressions. The factory is obtained through the standard service discovery mechanism.

Returns:
  the ExpressionFactory instance

### getELContext

public StandardELContext getELContext()
Returns the `StandardELContext` managed by this ELManager, creating it on first access if it does not already exist.

Returns:
  the StandardELContext instance

### setELContext

public ELContext setELContext(ELContext context)
Replaces the current EL context with a new `StandardELContext` initialized from the given context. The new context copies the ELResolver chain, FunctionMapper, VariableMapper, and other settings from the provided context.

Parameters:
  `context` - the ELContext from which to initialize the new context
Returns:
  the previous StandardELContext, or `null` if none existed

### addBeanNameResolver

public void addBeanNameResolver(BeanNameResolver beanNameResolver)
Adds a `BeanNameELResolver` to the resolver chain that uses the given `BeanNameResolver` to resolve top-level identifiers to managed beans.

Parameters:
  `beanNameResolver` - the resolver for bean names

### addELResolver

public void addELResolver(ELResolver resolver)
Adds an `ELResolver` to the front of the resolver chain in the managed EL context. Resolvers added first have higher priority during property resolution.

Parameters:
  `resolver` - the ELResolver to add

### mapFunction

public void mapFunction(String prefix, String function, Method method)
Maps a static method to an EL function name with the given prefix and local name. The function can then be invoked in EL expressions as `prefix:function(args)`.

Parameters:
  `prefix` - the namespace prefix for the function
  `function` - the local function name
  `method` - the static `Method` to map

### setVariable

public void setVariable(String variable, ValueExpression expression)
Registers a variable in the EL context's variable mapper. The variable can then be referenced by name in EL expressions. Passing a `null` expression removes the variable.

Parameters:
  `variable` - the variable name
  `expression` - the ValueExpression associated with the variable, or `null` to remove

### importStatic

public void importStatic(String staticMemberName) throws ELException
Imports a static field or method so it can be referenced by its simple name in EL expressions. The argument must be a fully qualified name in the form `className.staticMemberName`.

Parameters:
  `staticMemberName` - the fully qualified name of the static member to import
Throws:
  `ELException` - if the static member cannot be found or is ambiguous

### importClass

public void importClass(String className) throws ELException
Imports a class so it can be referenced by its simple name in EL expressions. The argument must be a fully qualified class name.

Parameters:
  `className` - the fully qualified class name to import
Throws:
  `ELException` - if the class name is invalid or conflicts with an existing import

### importPackage

public void importPackage(String packageName)
Imports all classes from a package so they can be referenced by their simple names in EL expressions.

Parameters:
  `packageName` - the package name to import

### defineBean

public Object defineBean(String name, Object bean)
Defines or removes a bean accessible by name in EL expressions. When a non-null bean is provided, it is stored under the given name. When `null` is provided, the bean with the given name is removed.

Parameters:
  `name` - the bean name
  `bean` - the bean object to define, or `null` to remove the bean
Returns:
  the previous bean associated with the name, or `null` if there was none

### addEvaluationListener

public void addEvaluationListener(EvaluationListener listener)
Registers an `EvaluationListener` with the managed EL context. The listener will be notified before and after expression evaluation, and when properties are resolved.

Parameters:
  `listener` - the EvaluationListener to register