类 Operator
java.lang.Object
cn.taketoday.expression.spel.ast.SpelNodeImpl
cn.taketoday.expression.spel.ast.Operator
- 直接已知子类:
OpAnd,OpDec,OpDivide,OpEQ,OperatorBetween,OperatorInstanceof,OperatorMatches,OperatorPower,OpGE,OpGT,OpInc,OpLE,OpLT,OpMinus,OpModulus,OpMultiply,OpNE,OpOr,OpPlus
Common supertype for operators that operate on either one or two operands.
In the case of multiply or divide there would be two operands, but for
unary plus or minus, there is only one.
- 从以下版本开始:
- 4.0
- 作者:
- Andy Clement, Juergen Hoeller, Giovanni Dall'Oglio Risso, Sam Brannen
-
嵌套类概要
嵌套类修饰符和类型类说明protected static final classA descriptor comparison encapsulates the result of comparing descriptor for two operands and describes at what level they are compatible. -
字段概要
字段从类继承的字段 cn.taketoday.expression.spel.ast.SpelNodeImpl
children, exitTypeDescriptor从接口继承的字段 cn.taketoday.bytecode.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, 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, JAVA_VERSION, 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, PRIVATE_FINAL_STATIC, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SOURCE_DEPRECATED, SOURCE_MASK, SWAP, SWITCH_STYLE_HASH, SWITCH_STYLE_HASHONLY, SWITCH_STYLE_TRIE, 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, V9 -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明static booleanequalityCheck(EvaluationContext context, Object left, Object right) Perform an equality check for the given operand values.protected voidgenerateComparisonCode(MethodVisitor mv, CodeFlow cf, int compInstruction1, int compInstruction2) Numeric comparison operators share very similar generated code, only differing in two comparison instructions.final Stringprotected booleanString format for all operators is the same'(' [operand] [operator] [operand] ')'.从类继承的方法 cn.taketoday.expression.spel.ast.SpelNodeImpl
generateCode, generateCodeForArgument, generateCodeForArguments, getChild, getChildCount, getEndPosition, getExitDescriptor, getObjectClass, getStartPosition, getTypedValue, getValue, getValue, getValueInternal, getValueRef, isCompilable, isWritable, nextChildIs, setValue, setValueInternal
-
字段详细资料
-
operatorName
-
leftActualDescriptor
-
rightActualDescriptor
-
-
构造器详细资料
-
Operator
-
-
方法详细资料
-
getLeftOperand
-
getRightOperand
-
getOperatorName
-
toStringAST
String format for all operators is the same'(' [operand] [operator] [operand] ')'.- 返回:
- the string form
-
isCompilableOperatorUsingNumerics
protected boolean isCompilableOperatorUsingNumerics() -
generateComparisonCode
protected void generateComparisonCode(MethodVisitor mv, CodeFlow cf, int compInstruction1, int compInstruction2) Numeric comparison operators share very similar generated code, only differing in two comparison instructions. -
equalityCheck
public static boolean equalityCheck(EvaluationContext context, @Nullable Object left, @Nullable Object right) Perform an equality check for the given operand values.This method is not just used for reflective comparisons in subclasses but also from compiled expression code, which is why it needs to be declared as
public statichere.- 参数:
context- the current evaluation contextleft- the left-hand operand valueright- the right-hand operand value
-