# Class ELResolver

java.lang.Object
jakarta.el.ELResolver

Direct Known Subclasses:
  `ArrayELResolver, BeanELResolver, BeanNameELResolver, CompositeELResolver, ListELResolver, MapELResolver, ResourceBundleELResolver, StaticFieldELResolver, TypeConverter`

public abstract class ELResolver extends Object

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`RESOLVABLE_AT_DESIGN_TIME`
`static final String`
`TYPE`

## Constructor Summary

Constructors
Constructor
Description
`ELResolver()`

## Method Summary

Modifier and Type
Method
Description
`<T> T`
`convertToType(ELContext context, Object obj, Class<T> type)`
Converts the given object to the given type.
`abstract Class<?>`
`getCommonPropertyType(ELContext context, Object base)`
Obtain the most common type that is acceptable for the given base object.
`Iterator<FeatureDescriptor>`
`getFeatureDescriptors(ELContext context, Object base)`
Deprecated, for removal: This API element is subject to removal in a future version.
This method will be removed, without replacement, in EL 6.0 / Tomcat 11.
`abstract Class<?>`
`getType(ELContext context, Object base, Object property)`
Obtain the most generally acceptable type that may be used to set the given property on the given object using the given context.
`abstract Object`
`getValue(ELContext context, Object base, Object property)`
Obtain the value of the given property on the given object using the given context.
`Object`
`invoke(ELContext context, Object base, Object method, Class<?>[] paramTypes, Object[] params)`
Invokes a method on the the given object.
`abstract boolean`
`isReadOnly(ELContext context, Object base, Object property)`
Determine if the given property on the given object is read-only using the given context.
`abstract void`
`setValue(ELContext context, Object base, Object property, Object value)`
Set the value of the given property on the given object using the given context.

### Methods inherited from class Object

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

## Field Details

### TYPE

public static final String TYPE

See Also:
  - Constant Field Values

### RESOLVABLE_AT_DESIGN_TIME

public static final String RESOLVABLE_AT_DESIGN_TIME

See Also:
  - Constant Field Values

## Constructor Details

### ELResolver

public ELResolver()

## Method Details

### getValue

public abstract Object getValue(ELContext context, Object base, Object property)
Obtain the value of the given property on the given object using the given context.

Parameters:
  `context` - The EL context for this evaluation
  `base` - The base object on which the property is to be found
  `property` - The property whose value is to be returned
Returns:
  the value of the provided property
Throws:
  `NullPointerException` - If the supplied context is `null`
  `PropertyNotFoundException` - If the base/property combination provided to the resolver is one that the resolver can handle but no match was found or a match was found but was not readable
  `ELException` - Wraps any exception throw whilst resolving the property

### invoke

public Object invoke(ELContext context, Object base, Object method, Class<?>[] paramTypes, Object[] params)
Invokes a method on the the given object.

Parameters:
  `context` - The EL context for this evaluation
  `base` - The base object on which the method is to be found
  `method` - The method to invoke
  `paramTypes` - The types of the parameters of the method to invoke
  `params` - The parameters with which to invoke the method
Returns:
  This default implementation always returns `null`
Since:
  EL 2.2

### getType

public abstract Class<?> getType(ELContext context, Object base, Object property)
Obtain the most generally acceptable type that may be used to set the given property on the given object using the given context.

Parameters:
  `context` - The EL context for this evaluation
  `base` - The base object on which the property is to be found
  `property` - The property whose type is to be returned
Returns:
  the most general type that maybe used to set the provided property or `null` if the resolver is read-only.
Throws:
  `NullPointerException` - If the supplied context is `null`
  `PropertyNotFoundException` - If the base/property combination provided to the resolver is one that the resolver can handle but no match was found or a match was found but was not readable
  `ELException` - Wraps any exception throw whilst resolving the property

### setValue

public abstract void setValue(ELContext context, Object base, Object property, Object value)
Set the value of the given property on the given object using the given context.

Parameters:
  `context` - The EL context for this evaluation
  `base` - The base object on which the property is to be found
  `property` - The property whose value is to be set
  `value` - The value to set the property to
Throws:
  `NullPointerException` - If the supplied context is `null`
  `PropertyNotFoundException` - If the base/property combination provided to the resolver is one that the resolver can handle but no match was found
  `PropertyNotWritableException` - If the base/property combination provided to the resolver is one that the resolver can handle but the property was not writable
  `ELException` - Wraps any exception throw whilst resolving the property

### isReadOnly

public abstract boolean isReadOnly(ELContext context, Object base, Object property)
Determine if the given property on the given object is read-only using the given context.

Parameters:
  `context` - The EL context for this evaluation
  `base` - The base object on which the property is to be found
  `property` - The property to be checked for read only status
Returns:
  `true` if the identified property is read only, otherwise `false`
Throws:
  `NullPointerException` - If the supplied context is `null`
  `PropertyNotFoundException` - If the base/property combination provided to the resolver is one that the resolver can handle but no match was found
  `ELException` - Wraps any exception throw whilst resolving the property

### getFeatureDescriptors

@Deprecated(forRemoval=true, since="EL 5.0") public Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext context, Object base)
Deprecated, for removal: This API element is subject to removal in a future version.
This method will be removed, without replacement, in EL 6.0 / Tomcat 11.
Obtain the feature descriptors for the resolvable properties of the given object.

The default implementation returns `null`.

Parameters:
  `context` - The context in which the examination takes place
  `base` - The object to examine
Returns:
  An iterator, possibly empty, of feature descriptors of the given object

### getCommonPropertyType

public abstract Class<?> getCommonPropertyType(ELContext context, Object base)
Obtain the most common type that is acceptable for the given base object.

Parameters:
  `context` - The context in which the examination takes place
  `base` - The object to examine
Returns:
  {code null} if the most common type cannot be determine, otherwise the most common type

### convertToType

public <T> T convertToType(ELContext context, Object obj, Class<T> type)
Converts the given object to the given type.

Type Parameters:
  `T` - The type to which the object should be converted
Parameters:
  `context` - The EL context for this evaluation
  `obj` - The object to convert
  `type` - The type to which the object should be converted
Returns:
  This default implementation always returns `null`
Since:
  EL 3.0