Class EagerAstNodeDecorator

  • All Implemented Interfaces:
    EvalResultHolder, de.odysseus.el.tree.ExpressionNode, de.odysseus.el.tree.Node

    public class EagerAstNodeDecorator
    extends de.odysseus.el.tree.impl.ast.AstNode
    implements EvalResultHolder
    This decorator exists to ensure that every EvalResultHolder is an instanceof AstNode. When using eager parsing, every AstNode should either be an EvalResultHolder or wrapped with this decorator.
    • Field Detail

      • evalResult

        protected Object evalResult
      • hasEvalResult

        protected boolean hasEvalResult
    • Method Detail

      • getAsEvalResultHolder

        public static EvalResultHolder getAsEvalResultHolder​(de.odysseus.el.tree.impl.ast.AstNode astNode)
      • appendStructure

        public void appendStructure​(StringBuilder stringBuilder,
                                    de.odysseus.el.tree.Bindings bindings)
        Specified by:
        appendStructure in class de.odysseus.el.tree.impl.ast.AstNode
      • eval

        public Object eval​(de.odysseus.el.tree.Bindings bindings,
                           javax.el.ELContext elContext)
        Specified by:
        eval in class de.odysseus.el.tree.impl.ast.AstNode
      • isLiteralText

        public boolean isLiteralText()
        Specified by:
        isLiteralText in interface de.odysseus.el.tree.ExpressionNode
      • isLeftValue

        public boolean isLeftValue()
        Specified by:
        isLeftValue in interface de.odysseus.el.tree.ExpressionNode
      • isMethodInvocation

        public boolean isMethodInvocation()
        Specified by:
        isMethodInvocation in interface de.odysseus.el.tree.ExpressionNode
      • getValueReference

        public javax.el.ValueReference getValueReference​(de.odysseus.el.tree.Bindings bindings,
                                                         javax.el.ELContext elContext)
        Specified by:
        getValueReference in interface de.odysseus.el.tree.ExpressionNode
      • getType

        public Class<?> getType​(de.odysseus.el.tree.Bindings bindings,
                                javax.el.ELContext elContext)
        Specified by:
        getType in interface de.odysseus.el.tree.ExpressionNode
      • isReadOnly

        public boolean isReadOnly​(de.odysseus.el.tree.Bindings bindings,
                                  javax.el.ELContext elContext)
        Specified by:
        isReadOnly in interface de.odysseus.el.tree.ExpressionNode
      • setValue

        public void setValue​(de.odysseus.el.tree.Bindings bindings,
                             javax.el.ELContext elContext,
                             Object o)
        Specified by:
        setValue in interface de.odysseus.el.tree.ExpressionNode
      • getMethodInfo

        public javax.el.MethodInfo getMethodInfo​(de.odysseus.el.tree.Bindings bindings,
                                                 javax.el.ELContext elContext,
                                                 Class<?> aClass,
                                                 Class<?>[] classes)
        Specified by:
        getMethodInfo in interface de.odysseus.el.tree.ExpressionNode
      • invoke

        public Object invoke​(de.odysseus.el.tree.Bindings bindings,
                             javax.el.ELContext elContext,
                             Class<?> aClass,
                             Class<?>[] classes,
                             Object[] objects)
        Specified by:
        invoke in interface de.odysseus.el.tree.ExpressionNode
      • getCardinality

        public int getCardinality()
        Specified by:
        getCardinality in interface de.odysseus.el.tree.Node
      • getChild

        public de.odysseus.el.tree.Node getChild​(int i)
        Specified by:
        getChild in interface de.odysseus.el.tree.Node