クラス PropertyOrFieldReference
java.lang.ObjectSE
org.springframework.expression.spel.ast.SpelNodeImpl
org.springframework.expression.spel.ast.PropertyOrFieldReference
単純なプロパティまたはフィールド参照を表します。
- 導入:
- 3.0
- 作成者:
- Andy Clement, Juergen Hoeller, Clark Duplichien, Sam Brannen
フィールド概要
クラス org.springframework.expression.spel.ast.SpelNodeImpl から継承されたフィールド
children, exitTypeDescriptorインターフェース org.springframework.asm.Opcodes から継承されたフィールド
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_RECORD, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM10_EXPERIMENTAL, ASM4, ASM5, ASM6, ASM7, ASM8, ASM9, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SOURCE_DEPRECATED, SOURCE_MASK, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V_PREVIEW, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, V24, V25, V26, V27, V9コンストラクター概要
コンストラクターコンストラクター説明PropertyOrFieldReference(boolean nullSafe, StringSE propertyOrFieldName, int startPos, int endPos) 方法の概要
修飾子と型メソッド説明voidgenerateCode(MethodVisitor mv, CodeFlow cf) このノードのバイトコードを指定されたMethodVisitorに生成します。getName()参照されるプロパティまたはフィールドの名前を取得します。getValueInternal(ExpressionState state) getValueRef(ExpressionState state) booleanこのノードをバイトコードにコンパイルできるかどうかを判断します。booleanこのノードは null セーフなプロパティまたはフィールド参照を表しますか ?booleanisWritable(ExpressionState state) この式ノードが setValue() 呼び出しをサポートするかどうかを決定します。booleanisWritableProperty(StringSE name, TypedValue contextObject, EvaluationContext evalContext) setValueInternal(ExpressionState state, SupplierSE<TypedValue> valueSupplier) 式をノードに評価し、指定されたSupplierSE によって作成された新しい値をそのノードに設定します。この AST ノードの文字列形式を返します。クラス org.springframework.expression.spel.ast.SpelNodeImpl から継承されたメソッド
generateCodeForArgument, generateCodeForArguments, generateCodeForArguments, getChild, getChildCount, getEndPosition, getExitDescriptor, getObjectClass, getStartPosition, getTypedValue, getValue, getValue, nextChildIs, setValue
コンストラクターの詳細
PropertyOrFieldReference
public PropertyOrFieldReference(boolean nullSafe, StringSE propertyOrFieldName, int startPos, int endPos)
方法の詳細
isNullSafe
public boolean isNullSafe()このノードは null セーフなプロパティまたはフィールド参照を表しますか ?- オーバーライド:
- クラス
SpelNodeImplのisNullSafe - 戻り値:
trueこのノードが null セーフ操作のターゲットである場合
getName
参照されるプロパティまたはフィールドの名前を取得します。getValueRef
- オーバーライド:
- クラス
SpelNodeImplのgetValueRef - 例外:
EvaluationException
getValueInternal
- 次で指定:
- クラス
SpelNodeImplのgetValueInternal - 例外:
EvaluationException
setValueInternal
public TypedValue setValueInternal(ExpressionState state, SupplierSE<TypedValue> valueSupplier) throws EvaluationException クラスからコピーされた説明:SpelNodeImpl式をノードに評価し、指定されたSupplierSE によって作成された新しい値をそのノードに設定します。例: 式がプロパティ参照に評価される場合、プロパティは新しい値に設定されます。
値を遅延計算する必要がある場合は、
SpelNodeImpl.setValue(ExpressionState, Object)よりもこの方法を優先します。デフォルトでは、このメソッドは
SpelEvaluationExceptionをスローし、この機能を効果的に無効にします。サブクラスはこのメソッドをオーバーライドして、実際の実装を提供できます。- オーバーライド:
- クラス
SpelNodeImplのsetValueInternal - パラメーター:
state- 現在の式の状態 (コンテキストを含みます)valueSupplier- 新しい価値の提供者- 例外:
EvaluationException- 式の評価または新しい値の設定で問題が発生した場合
isWritable
インターフェースからコピーされた説明:SpelNodeこの式ノードが setValue() 呼び出しをサポートするかどうかを決定します。- 次で指定:
- インターフェース
SpelNode内のisWritable - オーバーライド:
- クラス
SpelNodeImplのisWritable - パラメーター:
state- 現在の式の状態 (コンテキストを含みます)- 戻り値:
- 式ノードが setValue() を許可する場合は true
- 例外:
EvaluationException- ノードが書き込みをサポートしているかどうかを判断しようとして問題が発生した場合
toStringAST
インターフェースからコピーされた説明:SpelNodeこの AST ノードの文字列形式を返します。- 戻り値:
- 文字列形式
isWritableProperty
public boolean isWritableProperty(StringSE name, TypedValue contextObject, EvaluationContext evalContext) throws EvaluationException isCompilable
public boolean isCompilable()インターフェースからコピーされた説明:SpelNodeこのノードをバイトコードにコンパイルできるかどうかを判断します。各ノードでの推論は異なる場合がありますが、通常は、ノードの終了型記述子が既知であるかどうか、および関連する子ノードがコンパイル可能であるかどうかをチェックします。
デフォルトの実装は
falseを返します。このメソッドをオーバーライドする場合は、
SpelNode.generateCode(MethodVisitor, CodeFlow)もオーバーライドする必要があります。- 戻り値:
- このノードをバイトコードにコンパイルできる場合は
true - 関連事項:
generateCode
インターフェースからコピーされた説明:SpelNodeこのノードのバイトコードを指定されたMethodVisitorに生成します。コンパイル中の現在の式に関するコンテキスト情報は、提供された
CodeFlowオブジェクトで入手できます。たとえば、現在スタック上にあるオブジェクトの型に関する情報などです。SpelNode.isCompilable()がtrueを返さない限り、このメソッドは呼び出されません。デフォルトでは、
SpelNode.isCompilable()はfalseを返すため、デフォルトの実装ではIllegalStateExceptionSE がスローされます。このメソッドをオーバーライドする場合は、
SpelNode.isCompilable()もオーバーライドする必要があります。- パラメーター:
mv- コードが生成される ASMMethodVisitorcf- スタック上にあるものに関する情報を持つコンテキストオブジェクト- 関連事項: