java.lang.Object
org.springframework.expression.spel.ast.SpelNodeImpl
org.springframework.expression.spel.ast.Literal
All Implemented Interfaces:
org.springframework.asm.Opcodes, SpelNode
Direct Known Subclasses:
BooleanLiteral, FloatLiteral, IntLiteral, LongLiteral, NullLiteral, RealLiteral, StringLiteral

public abstract class Literal extends SpelNodeImpl
Common superclass for nodes representing literals (boolean, string, number, etc).
Author:
Andy Clement, Juergen Hoeller
  • Field Summary

    Fields inherited from class org.springframework.expression.spel.ast.SpelNodeImpl

    children, exitTypeDescriptor

    Fields inherited from interface 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, V9
  • Constructor Summary

    Constructors
    Constructor
    Description
    Literal(String originalValue, int startPos, int endPos)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static Literal
    getIntLiteral(String numberToken, int startPos, int endPos, int radix)
    Process the string form of a number, using the specified base if supplied and return an appropriate literal to hold it.
    abstract TypedValue
     
    static Literal
    getLongLiteral(String numberToken, int startPos, int endPos, int radix)
     
    final String
     
    static Literal
    getRealLiteral(String numberToken, int startPos, int endPos, boolean isFloat)
     
     
     
    Return the string form of this AST node.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • Literal

      public Literal(@Nullable String originalValue, int startPos, int endPos)
  • Method Details

    • getOriginalValue

      @Nullable public final String getOriginalValue()
    • getValueInternal

      public final TypedValue getValueInternal(ExpressionState state) throws SpelEvaluationException
      Specified by:
      getValueInternal in class SpelNodeImpl
      Throws:
      SpelEvaluationException
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • toStringAST

      public String toStringAST()
      Description copied from interface: SpelNode
      Return the string form of this AST node.
      Returns:
      the string form
    • getLiteralValue

      public abstract TypedValue getLiteralValue()
    • getIntLiteral

      public static Literal getIntLiteral(String numberToken, int startPos, int endPos, int radix)
      Process the string form of a number, using the specified base if supplied and return an appropriate literal to hold it. Any suffix to indicate a long will be taken into account (either 'l' or 'L' is supported).
      Parameters:
      numberToken - the token holding the number as its payload (eg. 1234 or 0xCAFE)
      radix - the base of number
      Returns:
      a subtype of Literal that can represent it
    • getLongLiteral

      public static Literal getLongLiteral(String numberToken, int startPos, int endPos, int radix)
    • getRealLiteral

      public static Literal getRealLiteral(String numberToken, int startPos, int endPos, boolean isFloat)