public class MapELResolver extends ELResolver
setValue(ELContext, Object, Object, Object)
will always
throw PropertyNotWritableException. ELResolvers are combined together using
CompositeELResolver
s, to define rich semantics for evaluating an
expression. See the javadocs for ELResolver
for details.RESOLVABLE_AT_DESIGN_TIME, TYPE
Constructor and Description |
---|
MapELResolver()
Creates a new read/write MapELResolver.
|
MapELResolver(boolean readOnly)
Creates a new MapELResolver whose read-only status is determined by the
given parameter.
|
Modifier and Type | Method and Description |
---|---|
Class |
getCommonPropertyType(ELContext context,
Object base)
If the base object is a map, returns the most general type that this
resolver accepts for the property argument.
|
Class |
getType(ELContext context,
Object base,
Object property)
If the base object is a map, returns the most general acceptable type for a
value in this map.
|
Object |
getValue(ELContext context,
Object base,
Object property)
If the base object is a map, returns the value associated with the given
key, as specified by the property argument.
|
boolean |
isReadOnly(ELContext context,
Object base,
Object property)
If the base object is a map, returns whether a call to
setValue(ELContext, Object, Object, Object) will always fail. |
void |
setValue(ELContext context,
Object base,
Object property,
Object value)
If the base object is a map, attempts to set the value associated with the
given key, as specified by the property argument.
|
invoke
public MapELResolver()
public MapELResolver(boolean readOnly)
public Class getCommonPropertyType(ELContext context, Object base)
getCommonPropertyType
in class ELResolver
context
- The context of this evaluation.base
- The map to analyze. Only bases of type Map are handled by this
resolver.public Class getType(ELContext context, Object base, Object property)
getType
in class ELResolver
context
- The context of this evaluation.base
- The map to analyze. Only bases of type Map are handled by this
resolver.property
- The key to return the acceptable type for. Ignored by this
resolver.NullPointerException
- if context is nullELException
- 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.public Object getValue(ELContext context, Object base, Object property)
getValue
in class ELResolver
context
- The context of this evaluation.base
- The map to analyze. Only bases of type Map are handled by this
resolver.property
- The key to return the acceptable type for. Ignored by this
resolver.ClassCastException
- if the key is of an inappropriate type for this map (optionally
thrown by the underlying Map).NullPointerException
- if context is null, or if the key is null and this map does not
permit null keys (the latter is optionally thrown by the
underlying Map).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.public boolean isReadOnly(ELContext context, Object base, Object property)
setValue(ELContext, Object, Object, Object)
will always fail. If
the base is a Map, 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. If this resolver was constructed in read-only mode, this method will
always return true. If a Map was created using
java.util.Collections.unmodifiableMap(Map), this method must return true.
Unfortunately, there is no Collections API method to detect this. However,
an implementation can create a prototype unmodifiable Map and query its
runtime type to see if it matches the runtime type of the base object as a
workaround.isReadOnly
in class ELResolver
context
- The context of this evaluation.base
- The map to analyze. Only bases of type Map are handled by this
resolver.property
- The key to return the acceptable type for. Ignored by this
resolver.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.public void setValue(ELContext context, Object base, Object property, Object value)
setValue
in class ELResolver
context
- The context of this evaluation.base
- The map to analyze. Only bases of type Map are handled by this
resolver.property
- The key to return the acceptable type for. Ignored by this
resolver.value
- The value to be associated with the specified key.ClassCastException
- if the class of the specified key or value prevents it from being
stored in this map.NullPointerException
- if context is null, or if this map does not permit null keys or
values, and the specified key or value is null.IllegalArgumentException
- if some aspect of this key or value prevents it from being stored
in this map.PropertyNotWritableException
- if this resolver was constructed in read-only mode, or if the put
operation is not supported by the underlying map.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.