## 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.

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

    Methods in org.springframework.expression.spel that return SpelNode
    Modifier and Type | Method and Description
    --- | ---
    `SpelNode` | SpelNode.`getChild(int index)` Helper method that returns a SpelNode rather than an Antlr Tree node.

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

    Classes in org.springframework.expression.spel.ast that implement SpelNode
    Modifier and Type | Class and Description
    --- | ---
    `class` | `Assign` Represents assignment.
    `class` | `BeanReference` Represents a bean reference to a type, for example `@foo` or `@'foo.bar'`.
    `class` | `BooleanLiteral` Represents the literal values `TRUE` and `FALSE`.
    `class` | `CompoundExpression` Represents a DOT separated expression sequence, such as `'property1.property2.methodOne()'`.
    `class` | `ConstructorReference` Represents the invocation of a constructor.
    `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 piece of it.
    `class` | `InlineList` Represent a list in an expression, e.g.
    `class` | `InlineMap` Represent a map in an expression, e.g.
    `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.somewhere.Foo)"`.
    `class` | `VariableReference` Represents a variable reference — for example, `#someVar`.

    Methods in org.springframework.expression.spel.ast that return SpelNode
    Modifier and Type | Method and 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 and Description
    --- | ---
    `SpelNode` | SpelExpression.`getAST()` Return the Abstract Syntax Tree for the expression.