Class AstNode

    • Constructor Detail

      • AstNode

        public AstNode()
    • Method Detail

      • getValue

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

        public abstract void appendStructure​(java.lang.StringBuilder builder,
                                             Bindings bindings)
      • eval

        public abstract java.lang.Object eval​(Bindings bindings,
                                              javax.el.ELContext context)
      • getStructuralId

        public final java.lang.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
      • findPublicAccessibleMethod

        private static java.lang.reflect.Method findPublicAccessibleMethod​(java.lang.reflect.Method method)
        Find accessible method. Searches the inheritance tree of the class declaring the method until it finds a method that can be invoked.
        Parameters:
        method - method
        Returns:
        accessible method or null
      • findAccessibleMethod

        protected java.lang.reflect.Method findAccessibleMethod​(java.lang.reflect.Method method)