Properties |
abstract public Class<T> |
getCommonPropertyType(ELContext context, Object base) Hide
在给定 base 对象的情况下,返回对于 property 参数此解析器可以接受的最一般类型。此方法可以用于自动完成的辅助工具。
此自动完成辅助工具还提供一种表示解析器接受原始值(如数组中的整数索引)的方式。例如, ArrayELResolver 将接受任何 int 作为 property ,因此返回值将为 Integer.class 。
context |
此计算的上下文。 |
base |
要返回最一般属性类型的 base 对象;或者为 null ,表示枚举此解析器可以计算的顶级变量集合。 |
return |
如果此 ELResolver 不了解如何处理给定的 base 对象,则返回 null ;否则,如果接受任何 property 类型,则返回 Object.class ;其他情况下,返回给定 base 可接受的最一般的 property 类型。 |
|
abstract public java.util.Iterator<E> |
getFeatureDescriptors(ELContext context, Object base) Hide
返回可以针对给定 base 对象进行解析的变量或属性集的有关信息。此方法可以用于自动完成的辅助工具。
如果 base 参数为 null ,则解析器必须枚举它可以解析的顶级变量列表。
每个 FeatureDescriptor 将包含有关单个变量或属性的信息。除了标准属性之外,FeatureDescriptor 必须拥有两个指定属性(通过 setValue 方法设置):
#TYPE - 此指定属性的值必须是 java.lang.Class 的实例,并且必须指定变量或属性的运行时类型。#RESOLVABLE_AT_DESIGN_TIME - 此指定属性的值必须是 java.lang.Boolean 的实例,并且必须指出在设计时尝试解析此属性是否安全。例如,如果 ELResolver 需要访问仅在运行时可用的资源并且没有提供可接受的模拟值,则尝试在设计时解析是不安全的。
调用者应该注意到返回的 Iterator 可能迭代非常大甚至无限大的属性集。调用者应该注意不要陷入无限循环。
这是一个最佳列表。并非所有 ELResolver 都将返回完全精确的结果,但它们都必须可以在设计时和运行时调用(即无论 Beans.isDesignTime() 是否返回 true )且不会引起错误。
ELContext 的 propertyResolved 属性与此方法无关。如果是复合解析器,则所有 ELResolver 的结果将串联在一起。
context |
此计算的上下文。 |
base |
要枚举有效属性集合的 base 对象;或者为 null ,表示枚举此解析器可以计算的顶级变量集合。 |
return |
包含 0 个或多个(可能无限多个)FeatureDescriptor 对象的 Iterator ;如果此解析器不处理给定的 base 对象,或者结果太复杂而无法用此方法表示,则返回 null |
See also | java.beans.FeatureDescriptor |
|
abstract public boolean |
isReadOnly(ELContext context, Object base, Object property) Hide
对于给定的 base 和 property ,尝试确定调用 #setValue 是否将总是失败。
如果此解析器处理给定的 (base, property) 对,则在返回前,ELContext 对象的 propertyResolved 属性必须设置为 true 。如果调用此方法后此属性不为 true ,则调用者应该忽略返回值。
context |
此计算的上下文。 |
base |
将分析属性值的 base 对象;或者为 null ,表示分析顶级变量。 |
property |
要返回只读状态的属性或变量。 |
return |
如果 ELContext 的 propertyResolved 属性被设置为 true ,则在属性为只读的情况下返回 true ,在非只读的情况下返回 false ;其他情况未定义。 |
Throws | NullPointerException:
如果 context 为 null |
Throws | PropertyNotFoundException:
如果此 ELResolver 处理了给定的 (base, property) 对,但指定变量或属性不存在。 |
Throws | ELException:
如果执行属性或变量解析时抛出异常。抛出的异常必须作为此异常的 cause 属性包含(如果可用)。 |
|
abstract public Class<T> |
getType(ELContext context, Object base, Object property) Hide
对于给定的 base 和 property ,尝试标识最一般的对象类型,该类型对于将来调用 #setValue 方法时作为 value 参数传递的对象而言是可接受的。
如果此解析器处理给定的 (base, property) 对,则在返回前,ELContext 对象的 propertyResolved 属性必须设置为 true 。如果调用此方法后此属性不为 true ,则调用者应该忽略返回值。
这并非总是与 getValue().getClass() 相同。例如,如果是 ArrayELResolver ,则 getType 方法将返回数组的元素类型,它可能是当前指定数组元素中的实际元素类型的超类。
context |
此计算的上下文。 |
base |
将分析属性值的 base 对象;或者为 null ,表示分析顶级变量。 |
property |
要返回可接受类型的属性或变量。 |
return |
如果 ELContext 的 propertyResolved 属性设置为 true ,则返回最一般的可接受类型;其他情况未定义。 |
Throws | NullPointerException:
如果 context 为 null |
Throws | PropertyNotFoundException:
如果此 ELResolver 处理了给定的 (base, property) 对,但指定变量或属性不存在或不可读。 |
Throws | ELException:
如果执行属性或变量解析时抛出异常。抛出的异常必须作为此异常的 cause 属性包含(如果可用)。 |
|
abstract public void |
setValue(ELContext context, Object base, Object property, Object value) Hide
尝试在给定的 base 对象上设置给定的 property 对象的值。
如果此解析器处理给定的 (base, property) 对,则在返回前,ELContext 对象的 propertyResolved 属性必须设置为 true 。如果调用此方法后此属性不为 true ,则调用者可以放心地假定没有设置任何值。
context |
此计算的上下文。 |
base |
将设置属性值的 base 对象;或者为 null ,表示设置顶级变量。 |
property |
要设置的属性或变量。 |
value |
用于设置属性或变量的值。 |
Throws | NullPointerException:
如果 context 为 null |
Throws | PropertyNotFoundException:
如果此 ELResolver 处理了给定的 (base, property) 对,但指定变量或属性不存在。 |
Throws | PropertyNotWritableException:
如果此 ELResolver 处理了给定的 (base, property) 对,但指定的变量或属性不可写。 |
Throws | ELException:
如果尝试设置属性或变量时抛出异常。抛出的异常必须作为此异常的 cause 属性包含(如果可用)。 |
|
abstract public Object |
getValue(ELContext context, Object base, Object property) Hide
尝试在给定的 base 对象上解析给定的 property 对象。
如果此解析器处理给定的 (base, property) 对,则在返回前,ELContext 对象的 propertyResolved 属性必须设置为 true 。如果调用此方法后此属性不为 true ,则调用者应该忽略返回值。
context |
此计算的上下文。 |
base |
将返回属性值的 base 对象;或者为 null ,表示解析顶级变量。 |
property |
要解析的属性或变量。 |
return |
如果 ELContext 的 propertyResolved 属性设置为 true ,则返回变量或属性解析的结果;其他情况未定义。 |
Throws | NullPointerException:
如果 context 为 null |
Throws | PropertyNotFoundException:
如果此 ELResolver 处理了给定的 (base, property) 对,但指定变量或属性不存在或不可读。 |
Throws | ELException:
如果执行属性或变量解析时抛出异常。抛出的异常必须作为此异常的 cause 属性包含(如果可用)。 | |