public class StaticFieldELResolver extends ELResolver
An ELResolver for resolving static fields, enum constants and
static methods. Also handles constructor calls as a special case.
The resolver handles base objects of the type ELClass, which
is usually generated by an EL implementation.
ELClassRESOLVABLE_AT_DESIGN_TIME, TYPE| Constructor and Description |
|---|
StaticFieldELResolver() |
| Modifier and Type | Method and Description |
|---|---|
Class<?> |
getCommonPropertyType(ELContext context,
Object base)
Returns the type of the property.
|
Iterator<FeatureDescriptor> |
getFeatureDescriptors(ELContext context,
Object base)
Returns the properties that can be resolved.
|
Class<?> |
getType(ELContext context,
Object base,
Object property)
Returns the type of a static field.
|
Object |
getValue(ELContext context,
Object base,
Object property)
Returns the value of a static field.
|
Object |
invoke(ELContext context,
Object base,
Object method,
Class<?>[] paramTypes,
Object[] params)
Invokes a public static method or the constructor for a class.
|
boolean |
isReadOnly(ELContext context,
Object base,
Object property)
Inquires whether the static field is writable.
|
void |
setValue(ELContext context,
Object base,
Object property,
Object value)
Attempts to write to a static field.
|
convertToTypepublic Object getValue(ELContext context, Object base, Object property)
Returns the value of a static field.
If the base object is an instance of ELClass and the
property is String, 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.
ELClass, return the value of the static field.
An Enum constant is a
public static field of an Enum object, and is a special case of this.getValue in class ELResolvercontext - The context of this evaluation.base - An ELClass.property - A static field name.propertyResolved property of
ELContext was set to true, then
the static field value.NullPointerException - if context is null.PropertyNotFoundException - if the specified class does not exist,
or if the field is not a public static filed of the class,
or if the field is inaccessible.public void setValue(ELContext context, Object base, Object property, Object value)
Attempts to write to a static field.
If the base object is an instance of ELClassand the
property is String, a PropertyNotWritableException
will always be thrown, because writing to a static field is not
allowed.
setValue in class ELResolvercontext - The context of this evaluation.base - An ELClassproperty - The name of the fieldvalue - The value to set the field of the class to.NullPointerException - if context is nullPropertyNotWritableExceptionpublic Object invoke(ELContext context, Object base, Object method, Class<?>[] paramTypes, Object[] params)
Invokes a public static method or the constructor for a class.
If the base object is an instance ofELClass and the
method is a String,
the propertyResolved property of the
ELContext object must be set to true
by the resolver, before returning. If this property is not
true after this method is called, the caller
should ignore the return value.
Invoke the public static method specified by method.
The process involved in the method selection is
the same as that used in BeanELResolver.
As a special case, if the name of the method is "<init>", the constructor for the class will be invoked.
invoke in class ELResolverbase - An ELClassmethod - When coerced to a String,
the simple name of the method.paramTypes - An array of Class objects identifying the
method's formal parameter types, in declared order.
Use an empty array if the method has no parameters.
Can be null, in which case the method's formal
parameter types are assumed to be unknown.params - The parameters to pass to the method, or
null if no parameters.context - The context of this evaluation.null if
the method has a void return type).MethodNotFoundException - if no suitable method can be found.ELException - if an exception was thrown while performing
(base, method) resolution. The thrown exception must be
included as the cause property of this exception, if
available. If the exception thrown is an
InvocationTargetException, extract its
cause and pass it to the
ELException constructor.public Class<?> getType(ELContext context, Object base, Object property)
Returns the type of a static field.
If the base object is an instance of ELClassand the
property is a String,
the propertyResolved property of the
ELContext object must be set to true
by the resolver, before returning. If this property is not
true after this method is called, the caller can
safely assume no value has been set.
getType in class ELResolvercontext - The context of this evaluation.base - An ELClass.property - The name of the field.propertyResolved property of
ELContext was set to true, then
the type of the type of the field.NullPointerException - if context is null.PropertyNotFoundException - if field is not a public static
filed of the class, or if the field is inaccessible.public boolean isReadOnly(ELContext context, Object base, Object property)
Inquires whether the static field is writable.
If the base object is an instance of ELClassand the
property is a String,
the propertyResolved property of the
ELContext object must be set to true
by the resolver, before returning. If this property is not
true after this method is called, the caller can
safely assume no value has been set.
Always returns a true because writing to a static field
is not allowed.
isReadOnly in class ELResolvercontext - The context of this evaluation.base - An ELClass.property - The name of the bean.trueNullPointerException - if context is null.public Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext context, Object base)
null, since there is no reason to
iterate through a list of one element: field name.getFeatureDescriptors in class ELResolvercontext - The context of this evaluation.base - An ELClass.null.FeatureDescriptorpublic Class<?> getCommonPropertyType(ELContext context, Object base)
String.class, since a field name is a String.getCommonPropertyType in class ELResolvercontext - The context of this evaluation.base - An ELClass.String.class.Copyright © 1996-2017, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.