# Package org.springframework.expression.spel.ast

@NonNullApi @NonNullFields package org.springframework.expression.spel.ast
SpEL's abstract syntax tree.

Related Packages
Package
Description
org.springframework.expression.spel
SpEL's central implementation package.
org.springframework.expression.spel.standard
SpEL's standard parser implementation.
org.springframework.expression.spel.support
SpEL's default implementations for various core abstractions.
Class
Description
Assign
Represents assignment.
BeanReference
Represents a reference to a bean, for example `@orderService` or `@'order.service'`.
BooleanLiteral
Represents the literal values `TRUE` and `FALSE`.
CompoundExpression
Represents a DOT separated expression sequence, such as `property1.property2.methodOne()` or `property1?.property2?.methodOne()` when the null-safe navigation operator is used.
ConstructorReference
Represents the invocation of a constructor: either a constructor on a regular type or construction of an array.
Elvis
Represents the Elvis operator `?:`.
FloatLiteral
Expression language AST node that represents a float literal.
FunctionReference
A function reference is of the form "#someFunction(a,b,c)".
Identifier
An 'identifier' `SpelNode`.
Indexer
An `Indexer` can index into some proceeding structure to access a particular element of the structure.
InlineList
Represent a list in an expression, for example, '{1,2,3}'.
InlineMap
Represent a map in an expression, for example, '{name:'foo',age:12}'.
IntLiteral
Expression language AST node that represents an integer literal.
Literal
Common superclass for nodes representing literals (boolean, string, number, etc).
LongLiteral
Expression language AST node that represents a long integer literal.
MethodReference
Expression language AST node that represents a method reference.
NullLiteral
Expression language AST node that represents null.
OpAnd
Represents the boolean AND operation.
OpDec
Decrement operator.
OpDivide
Implements division operator.
OpEQ
Implements the equality operator.
Operator
Common supertype for operators that operate on either one or two operands.
Operator.DescriptorComparison
A descriptor comparison encapsulates the result of comparing descriptor for two operands and describes at what level they are compatible.
OperatorBetween
Represents the `between` operator.
OperatorInstanceof
The operator 'instanceof' checks if an object is of the class specified in the right-hand operand, in the same way that `instanceof` does in Java.
OperatorMatches
Implements the matches operator.
OperatorNot
Represents a NOT operation.
OperatorPower
The power operator.
OpGE
Implements greater-than-or-equal operator.
OpGT
Implements the greater-than operator.
OpInc
Increment operator.
OpLE
Implements the less-than-or-equal operator.
OpLT
Implements the less-than operator.
OpMinus
The minus operator supports: subtraction of numbers subtraction of an int from a string of one character (effectively decreasing that character), so `'d' - 3 = 'a'`
OpModulus
Implements the modulus operator.
OpMultiply
Implements the `multiply` operator.
OpNE
Implements the not-equal operator.
OpOr
Represents the boolean OR operation.
OpPlus
The plus operator will: add numbers concatenate strings
Projection
Represents projection, where a given operation is performed on all elements in some input sequence, returning a new sequence of the same size.
PropertyOrFieldReference
Represents a simple property or field reference.
QualifiedIdentifier
Represents a dot separated sequence of strings that indicate a package qualified type reference.
RealLiteral
Expression language AST node that represents a real literal.
Selection
Represents selection over a map or collection.
SpelNodeImpl
The common supertype of all AST nodes in a parsed Spring Expression Language format expression.
StringLiteral
Expression language AST node that represents a string literal.
Ternary
Represents a ternary expression, for example: "someCheck()?true:false".
TypeCode
Captures primitive types and their corresponding class objects, plus one special `TypeCode.OBJECT` entry that represents all reference (non-primitive) types.
TypeReference
Represents a reference to a type, for example `"T(String)"` or `"T(com.example.Foo)"`.
ValueRef
Represents a reference to a value.
ValueRef.NullValueRef
A ValueRef for the null value.
ValueRef.TypedValueHolderValueRef
A ValueRef holder for a single value, which cannot be set.
VariableReference
Represents a variable reference — for example, `#root`, `#this`, `#someVar`, etc.