Class VariableReference
java.lang.Object
org.springframework.expression.spel.ast.SpelNodeImpl
org.springframework.expression.spel.ast.VariableReference
Represents a variable reference, eg. #someVar. Note this is different to a *local*
 variable like $someVar
- Since:
- 3.0
- Author:
- Andy Clement
- 
Field SummaryFields inherited from class org.springframework.expression.spel.ast.SpelNodeImplchildren, exitTypeDescriptorFields inherited from interface org.springframework.asm.OpcodesAALOAD, 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, V9
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidgenerateCode(MethodVisitor mv, CodeFlow cf) Generate the bytecode for this node into the supplied visitor.getValueInternal(ExpressionState state) getValueRef(ExpressionState state) booleanCheck whether a node can be compiled to bytecode.booleanisWritable(ExpressionState expressionState) Determine if this expression node will support a setValue() call.voidsetValue(ExpressionState state, Object value) Evaluate the expression to a node and then set the new value on that node.Return the string form of this AST node.Methods inherited from class org.springframework.expression.spel.ast.SpelNodeImplgenerateCodeForArgument, generateCodeForArguments, getChild, getChildCount, getEndPosition, getExitDescriptor, getObjectClass, getStartPosition, getTypedValue, getValue, getValue, nextChildIs
- 
Constructor Details- 
VariableReference
 
- 
- 
Method Details- 
getValueRef- Overrides:
- getValueRefin class- SpelNodeImpl
- Throws:
- SpelEvaluationException
 
- 
getValueInternal- Specified by:
- getValueInternalin class- SpelNodeImpl
- Throws:
- SpelEvaluationException
 
- 
setValueDescription copied from interface:SpelNodeEvaluate the expression to a node and then set the new value on that node. For example, if the expression evaluates to a property reference, then the property will be set to the new value.- Specified by:
- setValuein interface- SpelNode
- Overrides:
- setValuein class- SpelNodeImpl
- Parameters:
- state- the current expression state (includes the context)
- value- the new value
- Throws:
- SpelEvaluationException
 
- 
toStringASTDescription copied from interface:SpelNodeReturn the string form of this AST node.- Returns:
- the string form
 
- 
isWritableDescription copied from interface:SpelNodeDetermine if this expression node will support a setValue() call.- Specified by:
- isWritablein interface- SpelNode
- Overrides:
- isWritablein class- SpelNodeImpl
- Parameters:
- expressionState- the current expression state (includes the context)
- Returns:
- true if the expression node will allow setValue()
- Throws:
- SpelEvaluationException
 
- 
isCompilablepublic boolean isCompilable()Description copied from class:SpelNodeImplCheck whether a node can be compiled to bytecode. The reasoning in each node may be different but will typically involve checking whether the exit type descriptor of the node is known and any relevant child nodes are compilable.- Overrides:
- isCompilablein class- SpelNodeImpl
- Returns:
- trueif this node can be compiled to bytecode
 
- 
generateCodeDescription copied from class:SpelNodeImplGenerate the bytecode for this node into the supplied visitor. Context info about the current expression being compiled is available in the codeflow object, e.g. including information about the type of the object currently on the stack.- Overrides:
- generateCodein class- SpelNodeImpl
- Parameters:
- mv- the ASM MethodVisitor into which code should be generated
- cf- a context object with info about what is on the stack
 
 
-