# Uses of Interface
org.springframework.expression.spel.SpelNode

Packages that use SpelNode
Package
Description
org.springframework.expression.spel
SpEL's central implementation package.
org.springframework.expression.spel.ast
SpEL's abstract syntax tree.
org.springframework.expression.spel.standard
SpEL's standard parser implementation.
org.springframework.expression.spel.support
SpEL's default implementations for various core abstractions.

## Uses of SpelNode in org.springframework.expression.spel

Methods in org.springframework.expression.spel that return SpelNode
Modifier and Type
Method
Description
`SpelNode`
SpelNode.`getChild(int index)`
Return the nth child under this node.
Methods in org.springframework.expression.spel with parameters of type SpelNode
Modifier and Type
Method
Description
`void`
CompilableIndexAccessor.`generateCode(SpelNode indexNode, org.springframework.asm.MethodVisitor methodVisitor, CodeFlow codeFlow)`
Generate bytecode that performs the operation for reading the index.
`void`
CodeFlow.`generateCodeForArgument(org.springframework.asm.MethodVisitor methodVisitor, SpelNode argument, Class<?> requiredType)`
Generate bytecode that loads the supplied argument onto the stack.
`void`
CodeFlow.`generateCodeForArgument(org.springframework.asm.MethodVisitor methodVisitor, SpelNode argument, String requiredTypeDesc)`
Generate bytecode that loads the supplied argument onto the stack.

## Uses of SpelNode in org.springframework.expression.spel.ast

Classes in org.springframework.expression.spel.ast that implement SpelNode
Modifier and Type
Class
Description
`class`
`Assign`
Represents assignment.
`class`
`BeanReference`
Represents a reference to a bean, for example `@orderService` or `@'order.service'`.
`class`
`BooleanLiteral`
Represents the literal values `TRUE` and `FALSE`.
`class`
`CompoundExpression`
Represents a DOT separated expression sequence, such as `property1.property2.methodOne()` or `property1?.property2?.methodOne()` when the null-safe navigation operator is used.
`class`
`ConstructorReference`
Represents the invocation of a constructor: either a constructor on a regular type or construction of an array.
`class`
`Elvis`
Represents the Elvis operator `?:`.
`class`
`FloatLiteral`
Expression language AST node that represents a float literal.
`class`
`FunctionReference`
A function reference is of the form "#someFunction(a,b,c)".
`class`
`Identifier`
An 'identifier' `SpelNode`.
`class`
`Indexer`
An `Indexer` can index into some proceeding structure to access a particular element of the structure.
`class`
`InlineList`
Represent a list in an expression, for example, '{1,2,3}'.
`class`
`InlineMap`
Represent a map in an expression, for example, '{name:'foo',age:12}'.
`class`
`IntLiteral`
Expression language AST node that represents an integer literal.
`class`
`Literal`
Common superclass for nodes representing literals (boolean, string, number, etc).
`class`
`LongLiteral`
Expression language AST node that represents a long integer literal.
`class`
`MethodReference`
Expression language AST node that represents a method reference.
`class`
`NullLiteral`
Expression language AST node that represents null.
`class`
`OpAnd`
Represents the boolean AND operation.
`class`
`OpDec`
Decrement operator.
`class`
`OpDivide`
Implements division operator.
`class`
`OpEQ`
Implements the equality operator.
`class`
`Operator`
Common supertype for operators that operate on either one or two operands.
`class`
`OperatorBetween`
Represents the `between` operator.
`class`
`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.
`class`
`OperatorMatches`
Implements the matches operator.
`class`
`OperatorNot`
Represents a NOT operation.
`class`
`OperatorPower`
The power operator.
`class`
`OpGE`
Implements greater-than-or-equal operator.
`class`
`OpGT`
Implements the greater-than operator.
`class`
`OpInc`
Increment operator.
`class`
`OpLE`
Implements the less-than-or-equal operator.
`class`
`OpLT`
Implements the less-than operator.
`class`
`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'`
`class`
`OpModulus`
Implements the modulus operator.
`class`
`OpMultiply`
Implements the `multiply` operator.
`class`
`OpNE`
Implements the not-equal operator.
`class`
`OpOr`
Represents the boolean OR operation.
`class`
`OpPlus`
The plus operator will: add numbers concatenate strings
`class`
`Projection`
Represents projection, where a given operation is performed on all elements in some input sequence, returning a new sequence of the same size.
`class`
`PropertyOrFieldReference`
Represents a simple property or field reference.
`class`
`QualifiedIdentifier`
Represents a dot separated sequence of strings that indicate a package qualified type reference.
`class`
`RealLiteral`
Expression language AST node that represents a real literal.
`class`
`Selection`
Represents selection over a map or collection.
`class`
`SpelNodeImpl`
The common supertype of all AST nodes in a parsed Spring Expression Language format expression.
`class`
`StringLiteral`
Expression language AST node that represents a string literal.
`class`
`Ternary`
Represents a ternary expression, for example: "someCheck()?true:false".
`class`
`TypeReference`
Represents a reference to a type, for example `"T(String)"` or `"T(com.example.Foo)"`.
`class`
`VariableReference`
Represents a variable reference — for example, `#root`, `#this`, `#someVar`, etc.
Methods in org.springframework.expression.spel.ast that return SpelNode
Modifier and Type
Method
Description
`SpelNode`
SpelNodeImpl.`getChild(int index)`

## Uses of SpelNode in org.springframework.expression.spel.standard

Methods in org.springframework.expression.spel.standard that return SpelNode
Modifier and Type
Method
Description
`SpelNode`
SpelExpression.`getAST()`
Return the Abstract Syntax Tree for the expression.

## Uses of SpelNode in org.springframework.expression.spel.support

Methods in org.springframework.expression.spel.support with parameters of type SpelNode
Modifier and Type
Method
Description
`void`
ReflectiveIndexAccessor.`generateCode(SpelNode index, org.springframework.asm.MethodVisitor mv, CodeFlow cf)`