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 屬性包含(如果可用)。 | |