public abstract class ValueExpression extends Expression
Expression
。 この API の以前の化身では、式は読み取ることしかできませんでした。ValueExpression
オブジェクトは、値の取得と設定の両方に使用できるようになりました。値を設定できる式は、l 値式と呼ばれます。できない値は、r 値式と呼ばれます。すべての r 値式を l 値式として使用できるわけではありません(例: "${1+1}"
または "${firstName} ${lastName}"
)。詳細については、EL 仕様を参照してください。l 値として使用できない式は、常に isReadOnly()
から true
を返す必要があります。
メソッドを使用して式文字列を解析し、解析された式をカプセル化する ExpressionFactory.createValueExpression(javax.el.ELContext, java.lang.String, java.lang.Class<?>)
ValueExpression
の具象インスタンスを返すことができます。FunctionMapper
は評価時ではなく解析時に使用されるため、このクラスを使用して式を評価する必要はありません。ただし、評価時には ELContext
が必要です。
getValue(javax.el.ELContext)
、setValue(javax.el.ELContext, java.lang.Object)
、isReadOnly(javax.el.ELContext)
、getType(javax.el.ELContext)
および getValueReference(javax.el.ELContext)
メソッドは、呼び出されるたびに式を評価します。ELContext
の ELResolver
は、トップレベルの変数を解決し、.
および []
演算子の動作を決定するために使用されます。5 つのメソッドのいずれでも、ELResolver.getValue(javax.el.ELContext, java.lang.Object, java.lang.Object)
メソッドを使用して、最後のプロパティを除くすべてのプロパティを解決します。これにより、base
オブジェクトが提供されます。getValueReference(javax.el.ELContext)
メソッド以外のすべてのメソッドの場合、最後の解決で、ValueExpression
は、対応する ELResolver.getValue(javax.el.ELContext, java.lang.Object, java.lang.Object)
、ELResolver.setValue(javax.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)
、ELResolver.isReadOnly(javax.el.ELContext, java.lang.Object, java.lang.Object)
、ELResolver.getType(javax.el.ELContext, java.lang.Object, java.lang.Object)
メソッドを呼び出します。どちらが ValueExpression
で呼び出されたかによって異なります。getValueReference(javax.el.ELContext)
メソッドの場合、(base、property)は ELResolver によって解決されませんが、これをカプセル化するために ValueReference
のインスタンスが作成され、返されます。
Expression
javadoc の比較、直列化、不変性に関するメモを参照してください。
ELResolver
, Expression
, ExpressionFactory
, 直列化された形式 コンストラクターと説明 |
---|
ValueExpression() |
修飾子と型 | メソッドと説明 |
---|---|
abstract ClassSE<?> | getExpectedType() 式の結果が評価後に強制される型を返します。 |
abstract ClassSE<?> | getType(ELContext context) 指定されたコンテキストを基準にして式を評価し、 setValue(javax.el.ELContext, java.lang.Object) メソッドの今後の呼び出しで value パラメーターとしてオブジェクトを渡すのに受け入れられる最も一般的な型を返します。 |
abstract ObjectSE | getValue(ELContext context) 指定されたコンテキストに関連して式を評価し、結果の値を返します。 |
ValueReference | getValueReference(ELContext context) この式インスタンスの ValueReference を返します。 |
abstract boolean | isReadOnly(ELContext context) 指定されたコンテキストに関連して式を評価し、 setValue(javax.el.ELContext, java.lang.Object) の呼び出しが常に失敗する場合は true を返します。 |
abstract void | setValue(ELContext context, ObjectSE value) 指定されたコンテキストに関連して式を評価し、結果を指定された値に設定します。 |
equals, getExpressionString, hashCode, isLiteralText
cloneSE, finalizeSE, getClassSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public abstract ObjectSE getValue(ELContext context)
結果の値は、この式が作成されたときに ExpressionFactory
に提供された getExpectedType()
によって返された型に自動的に強制変換されます。
context
- この評価のコンテキスト。NullPointerExceptionSE
- コンテキストが null
の場合。PropertyNotFoundException
- 指定された変数またはプロパティが存在しないか、読み込めないために、プロパティの解決の 1 つが失敗した場合。ELException
- プロパティまたは変数の解決を実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。public abstract void setValue(ELContext context, ObjectSE value)
context
- この評価のコンテキスト。value
- 設定する新しい値。NullPointerExceptionSE
- コンテキストが null
の場合。PropertyNotFoundException
- 指定された変数またはプロパティが存在しないか、読み込めないために、プロパティの解決の 1 つが失敗した場合。PropertyNotWritableException
- 指定された変数またはプロパティが書き込み可能ではないために、最終的な変数またはプロパティの解決が失敗した場合。ELException
- プロパティまたは変数を設定しようとしたときに例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。public abstract boolean isReadOnly(ELContext context)
setValue(javax.el.ELContext, java.lang.Object)
の呼び出しが常に失敗する場合は true
を返します。context
- この評価のコンテキスト。true
、そうでない場合は false
。NullPointerExceptionSE
- コンテキストが null
の場合。PropertyNotFoundException
- 指定された変数またはプロパティが存在しないか、読み込めないために、プロパティの解決の 1 つが失敗した場合。ELException
- プロパティまたは変数の解決を実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。* コンテキストが null
の場合は @throws NullPointerException public abstract ClassSE<?> getType(ELContext context)
setValue(javax.el.ELContext, java.lang.Object)
メソッドの今後の呼び出しで value
パラメーターとしてオブジェクトを渡すのに受け入れられる最も一般的な型を返します。 これは、常に getValue().getClass()
と同じではありません。例: 配列要素を参照する式の場合、getType
メソッドは配列の要素型を返します。これは、指定された配列要素に現在ある実際の要素の型のスーパークラスである可能性があります。
context
- この評価のコンテキスト。NullPointerExceptionSE
- コンテキストが null
の場合。PropertyNotFoundException
- 指定された変数またはプロパティが存在しないか、読み込めないために、プロパティの解決の 1 つが失敗した場合。ELException
- プロパティまたは変数の解決を実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。public abstract ClassSE<?> getExpectedType()
ValueExpression
を作成した ExpressionFactory.createValueExpression
メソッドに渡された expectedType
public ValueReference getValueReference(ELContext context)
ValueReference
を返します。context
- この評価のコンテキスト ValueExpression
の ValueReference
、またはこの ValueExpression
がベース(null または非 null)およびプロパティへの参照でない場合は null
。ベースが null で、プロパティが Jakarta Expression Language 変数の場合、この Jakarta Expression Language 変数に関連付けられている ValueExpression
の ValueReference
を返します。Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.