Class ReflectNode

    • Field Detail

      • STATIC_METHOD

        public static final int STATIC_METHOD
        The static method type.
        See Also:
        Constant Field Values
      • STATIC_FIELD

        public static final int STATIC_FIELD
        The static field type.
        See Also:
        Constant Field Values
      • type

        protected int type
        The reflect node type.
      • clazz

        protected java.lang.Class clazz
        The clazz.
      • argtypes

        protected transient java.lang.Class[] argtypes
        The argument types (for constructors and methods).
      • args

        protected transient java.lang.Object[] args
        The argument values (for constructors and methods).
      • constructors

        protected transient java.lang.reflect.Constructor[] constructors
        The possible constructors (for constructor nodes).
      • reloadedclass

        protected transient java.lang.Class reloadedclass
        The dynamically reloaded class (currently only for constructor nodes).
      • methods

        protected transient java.lang.reflect.Method[] methods
        The possible methods (for static and nonstatic methods).
      • accessor

        protected transient java.lang.reflect.Method accessor
        The field accessor method (for static and nonstatic fields).
      • field

        protected transient java.lang.reflect.Field field
        The field (for static and nonstatic fields).
      • reloadable

        protected boolean reloadable
        Flag indicating that this node is a candidate dynamic class reloading (currently only supported for plan constructors).
    • Constructor Detail

      • ReflectNode

        public ReflectNode​(jadex.javaparser.javaccimpl.ParserImpl p,
                           int id)
        Create an expression node.
        Parameters:
        p - The parser.
        id - The id.
    • Method Detail

      • setType

        public void setType​(int type)
        Set the constructor type.
        Parameters:
        type - The constrcutor type.
      • getType

        public int getType()
        Get the constructor type.
        Returns:
        The constructor type.
      • precompile

        public void precompile()
        Precompute the set of matching constructors if possible.
        Overrides:
        precompile in class ExpressionNode
      • getValue

        public java.lang.Object getValue​(IValueFetcher fetcher)
        Evaluate the expression in the given state with respect to given parameters.
        Specified by:
        getValue in interface IParsedExpression
        Specified by:
        getValue in class ExpressionNode
        Parameters:
        params - The parameters (string, value pairs), if any.
        Returns:
        The value of the term.
      • toPlainString

        public java.lang.String toPlainString()
        Create a string representation of this node and its subnodes.
        Specified by:
        toPlainString in interface Node
        Overrides:
        toPlainString in class ExpressionNode
        Returns:
        A string representation of this node.
      • findConstructors

        protected java.lang.reflect.Constructor[] findConstructors​(java.lang.Class clazz,
                                                                   java.lang.Class[] argtypes)
        Find all matching constructors of a given class.
        Parameters:
        clazz - The class.
        argtypes - The argument types.
        Returns:
        The matched constructors.
      • findMethods

        protected java.lang.reflect.Method[] findMethods​(java.lang.Class clazz,
                                                         java.lang.Class[] argtypes)
        Find all matching methods of a given class.
        Parameters:
        clazz - The class.
        argtypes - The argument types.
        Returns:
        The matched methods.
      • invokeConstructor

        protected java.lang.Object invokeConstructor​(java.lang.Class clazz,
                                                     java.lang.Class[] argtypes,
                                                     java.lang.Object[] args)
                                              throws java.lang.Exception
        Find and invoke a constructor.
        Parameters:
        clazz - The class to instantiate.
        argtypes - The actual argument types.
        args - The actual argument values.
        Returns:
        The instantiated object.
        Throws:
        java.lang.Exception
      • invokeMethod

        protected java.lang.Object invokeMethod​(java.lang.Object ref,
                                                java.lang.Class clazz,
                                                java.lang.Class[] argtypes,
                                                java.lang.Object[] args)
                                         throws java.lang.Exception
        Find and invoke a method.
        Parameters:
        ref - The object on which to invoke (may be null for static methods).
        clazz - The class to instantiate.
        argtypes - The actual argument types.
        args - The actual argument values.
        Returns:
        The return value.
        Throws:
        java.lang.Exception
      • accessField

        protected java.lang.Object accessField​(java.lang.Object ref,
                                               java.lang.Class clazz,
                                               IValueFetcher fetcher)
                                        throws java.lang.IllegalArgumentException,
                                               java.lang.IllegalAccessException,
                                               java.lang.NoSuchFieldException
        Access a field.
        Throws:
        java.lang.IllegalAccessException
        java.lang.IllegalArgumentException
        java.lang.NoSuchFieldException
      • getMethodForMethod

        protected java.lang.reflect.Method getMethodForMethod​(java.lang.reflect.Method method)
        Find method declared in public class for a given method.
      • equals

        public boolean equals​(java.lang.Object o)
        Test if two nodes are equal.
        Overrides:
        equals in class ExpressionNode
      • hashCode

        public int hashCode()
        Get the hash code for the node.
        Overrides:
        hashCode in class ExpressionNode