Package javax.el

## Class ELResolver

- java.lang.Object
- - javax.el.ELResolver

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

      public abstract class ELResolver
      extends java.lang.Object

  Author:
    Jacob Hookom [jacob/hookom.net]

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.String` | `RESOLVABLE_AT_DESIGN_TIME` |
    `static java.lang.String` | `TYPE` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ELResolver()` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.lang.Object` | `convertToType​(ELContext context, java.lang.Object obj, java.lang.Class<?> type)` | Converts the given object to the given type.
    `abstract java.lang.Class<?>` | `getCommonPropertyType​(ELContext context, java.lang.Object base)` | Obtain the most common type that is acceptable for the given base object.
    `abstract java.util.Iterator<java.beans.FeatureDescriptor>` | `getFeatureDescriptors​(ELContext context, java.lang.Object base)` | Obtain the feature descriptors for the resolvable properties of the given object.
    `abstract java.lang.Class<?>` | `getType​(ELContext context, java.lang.Object base, java.lang.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 java.lang.Object` | `getValue​(ELContext context, java.lang.Object base, java.lang.Object property)` | Obtain the value of the given property on the given object using the given context.
    `java.lang.Object` | `invoke​(ELContext context, java.lang.Object base, java.lang.Object method, java.lang.Class<?>[] paramTypes, java.lang.Object[] params)` | Invokes a method on the the given object.
    `abstract boolean` | `isReadOnly​(ELContext context, java.lang.Object base, java.lang.Object property)` | Determine if the given property on the given object is read-only using the given context.
    `abstract void` | `setValue​(ELContext context, java.lang.Object base, java.lang.Object property, java.lang.Object value)` | Set the value of the given property on the given object using the given context.

    - ### Methods inherited from class java.lang.Object

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

- - ### Field Detail

    - #### TYPE

          public static final java.lang.String TYPE

      See Also:
        Constant Field Values

    - #### RESOLVABLE_AT_DESIGN_TIME

          public static final java.lang.String RESOLVABLE_AT_DESIGN_TIME

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### ELResolver

          public ELResolver()

  - ### Method Detail

    - #### getValue

          public abstract java.lang.Object getValue​(ELContext context,
                                                    java.lang.Object base,
                                                    java.lang.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:
        `java.lang.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 java.lang.Object invoke​(ELContext context,
                                         java.lang.Object base,
                                         java.lang.Object method,
                                         java.lang.Class<?>[] paramTypes,
                                         java.lang.Object[] params)

      Invokes a method on the the given object. This default implementation always returns `null`.
      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:
        Always `null`
      Since:
        EL 2.2

    - #### getType

          public abstract java.lang.Class<?> getType​(ELContext context,
                                                     java.lang.Object base,
                                                     java.lang.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:
        `java.lang.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,
                                        java.lang.Object base,
                                        java.lang.Object property,
                                        java.lang.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:
        `java.lang.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,
                                             java.lang.Object base,
                                             java.lang.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:
        `java.lang.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

          public abstract java.util.Iterator<java.beans.FeatureDescriptor> getFeatureDescriptors​(ELContext context,
                                                                                                 java.lang.Object base)

      Obtain the feature descriptors for the resolvable properties of the given object.
      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 java.lang.Class<?> getCommonPropertyType​(ELContext context,
                                                                   java.lang.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 java.lang.Object convertToType​(ELContext context,
                                                java.lang.Object obj,
                                                java.lang.Class<?> type)

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