## Uses of Interface
org.springframework.asm.Opcodes

- Packages that use Opcodes
  Package | Description
  --- | ---
  org.springframework.context.expression | Expression parsing support within a Spring application context.
  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 Opcodes in org.springframework.context.expression

    Classes in org.springframework.context.expression that implement Opcodes
    Modifier and Type | Class and Description
    --- | ---
    `class` | `MapAccessor` EL property accessor that knows how to traverse the keys of a standard `Map`.

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

    Subinterfaces of Opcodes in org.springframework.expression.spel
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `CompilablePropertyAccessor` A compilable property accessor is able to generate bytecode that represents the access operation, facilitating compilation to bytecode of expressions that use the accessor.

    Classes in org.springframework.expression.spel that implement Opcodes
    Modifier and Type | Class and Description
    --- | ---
    `class` | `CodeFlow` Manages the class being generated by the compilation process.

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

    Classes in org.springframework.expression.spel.ast that implement Opcodes
    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`.

  - ### Uses of Opcodes in org.springframework.expression.spel.standard

    Classes in org.springframework.expression.spel.standard that implement Opcodes
    Modifier and Type | Class and Description
    --- | ---
    `class` | `SpelCompiler` A SpelCompiler will take a regular parsed expression and create (and load) a class containing byte code that does the same thing as that expression.

  - ### Uses of Opcodes in org.springframework.expression.spel.support

    Classes in org.springframework.expression.spel.support that implement Opcodes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `ReflectivePropertyAccessor.OptimalPropertyAccessor` An optimized form of a PropertyAccessor that will use reflection but only knows how to access a particular property on a particular class.