public class OpPlus extends Operator
BigDecimal
BigDecimal
/double/long/int).
The standard promotions are performed when the operand types vary (double+int=double).
For other options it defers to the registered overloader.children, exitTypeDescriptor, pos
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM4, ASM5, 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, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8
Constructor and Description |
---|
OpPlus(int pos,
SpelNodeImpl... operands) |
Modifier and Type | Method and Description |
---|---|
private static java.lang.String |
convertTypedValueToString(TypedValue value,
ExpressionState state)
Convert operand value to string using registered converter or using
toString method. |
void |
generateCode(MethodVisitor mv,
CodeFlow codeflow)
Generate the bytecode for this node into the supplied visitor.
|
SpelNodeImpl |
getRightOperand() |
TypedValue |
getValueInternal(ExpressionState state) |
boolean |
isCompilable()
Check whether a node can be compiled to bytecode.
|
java.lang.String |
toStringAST()
String format for all operators is the same '(' [operand] [operator] [operand] ')'
|
equalityCheck, generateComparisonCode, getLeftOperand, getOperatorName, isCompilableOperatorUsingNumerics
getChild, getChildCount, getEndPosition, getExitDescriptor, getObjectClass, getPreviousChild, getStartPosition, getTypedValue, getValue, getValue, getValueRef, isWritable, nextChildIs, setValue
public OpPlus(int pos, SpelNodeImpl... operands)
public TypedValue getValueInternal(ExpressionState state) throws EvaluationException
getValueInternal
in class SpelNodeImpl
EvaluationException
public java.lang.String toStringAST()
Operator
toStringAST
in interface SpelNode
toStringAST
in class Operator
public SpelNodeImpl getRightOperand()
getRightOperand
in class Operator
private static java.lang.String convertTypedValueToString(TypedValue value, ExpressionState state)
toString
method.value
- typed value to be convertedstate
- expression stateTypedValue
instance converted to String
public boolean isCompilable()
SpelNodeImpl
isCompilable
in class SpelNodeImpl
public void generateCode(MethodVisitor mv, CodeFlow codeflow)
SpelNodeImpl
generateCode
in class SpelNodeImpl
mv
- the ASM MethodVisitor into which code should be generatedcodeflow
- a context object with info about what is on the stack