org.springframework.expression.spel.ast
Class Literal

java.lang.Object
  extended by org.springframework.expression.spel.ast.SpelNodeImpl
      extended by org.springframework.expression.spel.ast.Literal
All Implemented Interfaces:
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

Field Summary
protected  String literalValue
           
 
Fields inherited from class org.springframework.expression.spel.ast.SpelNodeImpl
children, pos
 
Constructor Summary
Literal(String payload, int pos)
           
 
Method Summary
static Literal getIntLiteral(String numberToken, int pos, 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 getLiteralValue()
           
static Literal getLongLiteral(String numberToken, int pos, int radix)
           
static Literal getRealLiteral(String numberToken, int pos, boolean isFloat)
           
 TypedValue getValueInternal(ExpressionState state)
           
 String toString()
           
 String toStringAST()
           
 
Methods inherited from class org.springframework.expression.spel.ast.SpelNodeImpl
getChild, getChildCount, getEndPosition, getObjectClass, getPreviousChild, getStartPosition, getTypedValue, getValue, getValue, isWritable, nextChildIs, setValue
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

literalValue

protected String literalValue
Constructor Detail

Literal

public Literal(String payload,
               int pos)
Method Detail

getLiteralValue

public abstract TypedValue getLiteralValue()

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()
Specified by:
toStringAST in interface SpelNode
Specified by:
toStringAST in class SpelNodeImpl
Returns:
the string form of this AST node

getIntLiteral

public static Literal getIntLiteral(String numberToken,
                                    int pos,
                                    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 pos,
                                     int radix)

getRealLiteral

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