Class AbstractExecutor.Method

    • Field Detail

      • key

        protected final MethodKey key
        The method key discovered from the arguments.
    • Constructor Detail

      • Method

        protected Method​(java.lang.Class<?> c,
                         AbstractExecutor.Method.Parameter km)
        Creates a new instance.
        Parameters:
        c - the class this executor applies to
        km - the method and MethodKey to encapsulate.
    • Method Detail

      • invoke

        public final java.lang.Object invoke​(java.lang.Object obj,
                                             java.lang.Object[] params)
                                      throws java.lang.Exception
        Invocation method, called when the method invocation should be performed and a value returned.
        Specified by:
        invoke in interface JexlMethod
        Parameters:
        obj - the object
        params - method parameters.
        Returns:
        the result
        Throws:
        java.lang.Exception - on any error.
      • tryInvoke

        public final java.lang.Object tryInvoke​(java.lang.String name,
                                                java.lang.Object obj,
                                                java.lang.Object[] params)
        Attempts to reuse this JexlMethod, checking that it is compatible with the actual set of arguments. Related to isCacheable since this method is often used with cached JexlMethod instances.
        Specified by:
        tryInvoke in interface JexlMethod
        Parameters:
        name - the method name
        obj - the object to invoke the method upon
        params - the method arguments
        Returns:
        the result of the method invocation that should be checked by tryFailed to determine if it succeeded or failed.
      • getTargetProperty

        public java.lang.Object getTargetProperty()
        Gets the property targeted by this executor.
        Overrides:
        getTargetProperty in class AbstractExecutor
        Returns:
        the target property
      • getReturnType

        public final java.lang.Class<?> getReturnType()
        Returns the return type of the method invoked.
        Specified by:
        getReturnType in interface JexlMethod
        Returns:
        return type
      • execute

        public abstract java.lang.Object execute​(java.lang.Object obj,
                                                 java.lang.Object[] args)
                                          throws java.lang.IllegalAccessException,
                                                 java.lang.reflect.InvocationTargetException
        Invokes the method to be executed.
        Parameters:
        obj - the object to invoke the method upon
        args - the method arguments
        Returns:
        the result of the method invocation
        Throws:
        java.lang.IllegalAccessException - Method is inaccessible.
        java.lang.reflect.InvocationTargetException - Method body throws an exception.
      • tryExecute

        public java.lang.Object tryExecute​(java.lang.String name,
                                           java.lang.Object obj,
                                           java.lang.Object[] args)
        Tries to reuse this executor, checking that it is compatible with the actual set of arguments.
        Parameters:
        obj - the object to invoke the method upon
        name - the method name
        args - the method arguments
        Returns:
        the result of the method invocation or TRY_FAILED if checking failed.