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.
|
Iterator<FeatureDescriptor> |
getFeatureDescriptors(ELContext context,
Object base)
If the base object is a map, returns an Iterator containing the set of keys available in the
Map.
|
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 Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext context, Object base)
ELResolver.TYPE
- The return value of calling the getClass() method on this key,
or null if the key is null.ELResolver.RESOLVABLE_AT_DESIGN_TIME
- truegetFeatureDescriptors
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.Copyright © 2021. All rights reserved.