## javax.el
Class ResourceBundleELResolver

    java.lang.Object
      javax.el.ELResolver
          javax.el.ResourceBundleELResolver

    public class ResourceBundleELResolver

extends ELResolver

Defines property resolution behavior on instances of `ResourceBundle`.

This resolver handles base objects of type `java.util.ResourceBundle`. It accepts any object as a property and coerces it to a `java.lang.String` for invoking `ResourceBundle.getObject(java.lang.String)`.

This resolver is read only and will throw a `PropertyNotWritableException` if `setValue` is called.

`ELResolver`s are combined together using `CompositeELResolver`s, to define rich semantics for evaluating an expression. See the javadocs for `ELResolver` for details.

Since:
  JSP 2.1
See Also:
  `CompositeELResolver`, `ELResolver`, `ResourceBundle`

Field Summary

Fields inherited from class javax.el.ELResolver
`RESOLVABLE_AT_DESIGN_TIME, TYPE`

Constructor Summary
`ResourceBundleELResolver()`

Method Summary
`Class<?>` `getCommonPropertyType(ELContext context, Object base)` If the base object is a ResourceBundle, returns the most general type that this resolver accepts for the `property` argument.
`Iterator` `getFeatureDescriptors(ELContext context, Object base)` If the base object is a ResourceBundle, returns an `Iterator` containing the set of keys available in the `ResourceBundle`.
`Class<?>` `getType(ELContext context, Object base, Object property)` If the base object is an instance of `ResourceBundle`, return `null`, since the resolver is read only.
`Object` `getValue(ELContext context, Object base, Object property)` If the base object is an instance of `ResourceBundle`, the provided property will first be coerced to a `String`.
`boolean` `isReadOnly(ELContext context, Object base, Object property)` If the base object is not null and an instanceof `ResourceBundle`, return `true`.
`void` `setValue(ELContext context, Object base, Object property, Object value)` If the base object is a ResourceBundle, throw a `PropertyNotWritableException`.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ResourceBundleELResolver

    public ResourceBundleELResolver()

Method Detail

### getValue

    public Object getValue(ELContext context,
                           Object base,
                           Object property)

  If the base object is an instance of `ResourceBundle`, the provided property will first be coerced to a `String`. The `Object` returned by `getObject` on the base `ResourceBundle` will be returned. If the base is `ResourceBundle`, the `propertyResolved` property of the `ELContext` object must be set to `true` by this resolver, before returning. If this property is not `true` after this method is called, the caller should ignore the return value.

  Specified by:
    `getValue` in class `ELResolver`
  Parameters:
    `context` - The context of this evaluation.
    `base` - The ResourceBundle to analyze.
    `property` - The name of the property to analyze. Will be coerced to a `String`.
  Returns:
    If the `propertyResolved` property of `ELContext` was set to `true`, then `null` if property is `null`; otherwise the `Object` for the given key (property coerced to `String`) from the `ResourceBundle`. If no object for the given key can be found, then the `String` "???" + key + "???".
  Throws:
    `NullPointerException` - if context is `null`
    `ELException` - if an exception was thrown while performing the property or variable resolution. The thrown exception must be included as the cause property of this exception, if available.

### getType

    public Class<?> getType(ELContext context,
                            Object base,
                            Object property)

  If the base object is an instance of `ResourceBundle`, return `null`, since the resolver is read only.

  If the base is `ResourceBundle`, the `propertyResolved` property of the `ELContext` object must be set to `true` by this resolver, before returning. If this property is not `true` after this method is called, the caller should ignore the return value.

  Specified by:
    `getType` in class `ELResolver`
  Parameters:
    `context` - The context of this evaluation.
    `base` - The ResourceBundle to analyze.
    `property` - The name of the property to analyze.
  Returns:
    If the `propertyResolved` property of `ELContext` was set to `true`, then `null`; otherwise undefined.
  Throws:
    `NullPointerException` - if context is `null`

### setValue

    public void setValue(ELContext context,
                         Object base,
                         Object property,
                         Object value)

  If the base object is a ResourceBundle, throw a `PropertyNotWritableException`.

  Specified by:
    `setValue` in class `ELResolver`
  Parameters:
    `context` - The context of this evaluation.
    `base` - The ResourceBundle to be modified. Only bases that are of type ResourceBundle are handled.
    `property` - The String property to use.
    `value` - The value to be set.
  Throws:
    `NullPointerException` - if context is `null`.
    `PropertyNotWritableException` - Always thrown if base is an instance of ReasourceBundle.

### isReadOnly

    public boolean isReadOnly(ELContext context,
                              Object base,
                              Object property)

  If the base object is not null and an instanceof `ResourceBundle`, return `true`.

  Specified by:
    `isReadOnly` in class `ELResolver`
  Parameters:
    `context` - The context of this evaluation.
    `base` - The ResourceBundle to be modified. Only bases that are of type ResourceBundle are handled.
    `property` - The String property to use.
  Returns:
    If the `propertyResolved` property of `ELContext` was set to `true`, then `true`; otherwise undefined.
  Throws:
    `NullPointerException` - if context is `null`

### getFeatureDescriptors

    public Iterator getFeatureDescriptors(ELContext context,
                                          Object base)

  If the base object is a ResourceBundle, returns an `Iterator` containing the set of keys available in the `ResourceBundle`. Otherwise, returns `null`.

  The `Iterator` returned must contain zero or more instances of `FeatureDescriptor`. Each info object contains information about a key in the ResourceBundle, and is initialized as follows:

  - displayName - The `String` key
  - name - Same as displayName property.
  - shortDescription - Empty string
  - expert - `false`
  - hidden - `false`
  - preferred - `true`
  In addition, the following named attributes must be set in the returned `FeatureDescriptor`s:
  - `ELResolver.TYPE` - `String.class`
  - `ELResolver.RESOLVABLE_AT_DESIGN_TIME` - `true`

  Specified by:
    `getFeatureDescriptors` in class `ELResolver`
  Parameters:
    `context` - The context of this evaluation.
    `base` - The bundle whose keys are to be iterated over. Only bases of type `ResourceBundle` are handled by this resolver.
  Returns:
    An `Iterator` containing zero or more (possibly infinitely more) `FeatureDescriptor` objects, each representing a key in this bundle, or `null` if the base object is not a ResourceBundle.
  See Also:
    `FeatureDescriptor`

### getCommonPropertyType

    public Class<?> getCommonPropertyType(ELContext context,
                                          Object base)

  If the base object is a ResourceBundle, returns the most general type that this resolver accepts for the `property` argument. Otherwise, returns `null`.

  Assuming the base is a `ResourceBundle`, this method will always return `String.class`.

  Specified by:
    `getCommonPropertyType` in class `ELResolver`
  Parameters:
    `context` - The context of this evaluation.
    `base` - The bundle to analyze. Only bases of type `ResourceBundle` are handled by this resolver.
  Returns:
    `null` if base is not a `ResourceBundle`; otherwise `String.class`.

Copyright © 2008 Mort Bay Consulting. All Rights Reserved.