Class AstNode

All Implemented Interfaces:
ExpressionNode, Node
Direct Known Subclasses:
AstEval, AstIdentifier, AstMethod, AstProperty, AstRightValue, AstText

public abstract class AstNode extends Object implements ExpressionNode
  • Constructor Details

    • AstNode

      public AstNode()
  • Method Details

    • getValue

      public final Object getValue(Bindings bindings, jakarta.el.ELContext context, Class<?> type)
      evaluate and return the (optionally coerced) result.
      Specified by:
      getValue in interface ExpressionNode
      bindings - bindings containing variables and functions
      context - evaluation context
      type - result type
      evaluated node, coerced to the expected type
    • appendStructure

      public abstract void appendStructure(StringBuilder builder, Bindings bindings)
    • eval

      public abstract Object eval(Bindings bindings, jakarta.el.ELContext context)
    • getStructuralId

      public final String getStructuralId(Bindings bindings)
      Description copied from interface: ExpressionNode
      Get the canonical expression string for this node. Variable and funtion names will be replaced in a way such that two expression nodes that have the same node structure and bindings will also answer the same value here.

      For example, "${foo:bar()+2*foobar}" may lead to "${<fn>() + 2 * <var>}" if foobar is a bound variable. Otherwise, the structural id would be "${<fn>() + 2 * foobar}".

      If the bindings is null, the full canonical subexpression is returned.

      Specified by:
      getStructuralId in interface ExpressionNode