@Override
	@SuppressWarnings("unchecked")
	public void setValue(ELContext context, Object base, Object property, Object value) {
		if (context == null) {
			throw new NullPointerException("context is null");
		}
		if (isResolvable(base)) {
			if (readOnly) {
				throw new PropertyNotWritableException("resolver is read-only");
			}
			((Map) base).put(property, value);
			context.setPropertyResolved(true);
		}
	}
@ Override @ SuppressWarnings ( "unchecked" ) public void setValue ( ELContext context , Object base , Object property , Object value ) { if ( context == null ) { throw new NullPointerException ( "context is null" ) ; } if ( isResolvable ( base ) ) { if ( readOnly ) { throw new PropertyNotWritableException ( "resolver is read-only" ) ; } ( ( Map ) base ) . put ( property , value ) ; context . setPropertyResolved ( true ) ; } }
If the base object is a map, attempts to set the value associated with the given key, as
specified by the property argument. 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 can safely assume no value was set. If
this resolver was constructed in read-only mode, this method will always throw
PropertyNotWritableException. If a Map was created using
java.util.Collections.unmodifiableMap(Map), this method must throw
PropertyNotWritableException. 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.

@param context
The context of this evaluation.
@param base
The map to analyze. Only bases of type Map are handled by this resolver.
@param property
The key to return the acceptable type for. Ignored by this resolver.
@param value
The value to be associated with the specified key.
@throws ClassCastException
if the class of the specified key or value prevents it from being stored in this
map.
@throws NullPointerException
if context is null, or if this map does not permit null keys or values, and the
specified key or value is null.
@throws IllegalArgumentException
if some aspect of this key or value prevents it from being stored in this map.
@throws PropertyNotWritableException
if this resolver was constructed in read-only mode, or if the put operation is
not supported by the underlying map.
@throws 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.