Package org.apache.cxf.service.invoker

## Class AbstractInvoker

- java.lang.Object
- - org.apache.cxf.service.invoker.AbstractInvoker

- All Implemented Interfaces:
    `Invoker`
  Direct Known Subclasses:
    `BeanInvoker`, `FactoryInvoker`

      public abstract class AbstractInvoker
      extends Object
      implements Invoker

  Abstract implementation of Invoker.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AbstractInvoker()` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected Method` | `adjustMethodAndParams​(Method m, Exchange ex, List<Object> params, Class<?> serviceObjectClass)` |
    `protected void` | `checkSuspendedInvocation​(Exchange exchange, Object serviceObject, Method m, List<Object> params, Throwable t)` |
    `protected Fault` | `createFault​(Throwable ex, Method m, List<Object> params, boolean checked)` |
    `static Method` | `getMostSpecificMethod​(Method method, Class<?> targetClass)` | Given a method, which may come from an interface, and a targetClass used in the current AOP invocation, find the most specific method if there is one.
    `abstract Object` | `getServiceObject​(Exchange context)` | Creates and returns a service object depending on the scope.
    `Object[]` | `insertExchange​(Method method, Object[] params, Exchange context)` |
    `Object` | `invoke​(Exchange exchange, Object o)` |
    `protected Object` | `invoke​(Exchange exchange, Object serviceObject, Method m, List<Object> params)` |
    `static boolean` | `isJdkDynamicProxy​(Object object)` | Return whether the given object is a J2SE dynamic proxy.
    `protected Object` | `performInvocation​(Exchange exchange, Object serviceObject, Method m, Object[] paramArray)` |
    `void` | `releaseServiceObject​(Exchange context, Object obj)` | Called when the invoker is done with the object.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### AbstractInvoker

          public AbstractInvoker()

  - ### Method Detail

    - #### invoke

          public Object invoke​(Exchange exchange,
                               Object o)

      Specified by:
        `invoke` in interface `Invoker`

    - #### adjustMethodAndParams

          protected Method adjustMethodAndParams​(Method m,
                                                 Exchange ex,
                                                 List<Object> params,
                                                 Class<?> serviceObjectClass)

    - #### invoke

          protected Object invoke​(Exchange exchange,
                                  Object serviceObject,
                                  Method m,
                                  List<Object> params)

    - #### checkSuspendedInvocation

          protected void checkSuspendedInvocation​(Exchange exchange,
                                                  Object serviceObject,
                                                  Method m,
                                                  List<Object> params,
                                                  Throwable t)

    - #### createFault

          protected Fault createFault​(Throwable ex,
                                      Method m,
                                      List<Object> params,
                                      boolean checked)

    - #### performInvocation

          protected Object performInvocation​(Exchange exchange,
                                             Object serviceObject,
                                             Method m,
                                             Object[] paramArray)
                                      throws Exception

      Throws:
        `Exception`

    - #### insertExchange

          public Object[] insertExchange​(Method method,
                                         Object[] params,
                                         Exchange context)

    - #### getServiceObject

          public abstract Object getServiceObject​(Exchange context)

      Creates and returns a service object depending on the scope.

    - #### releaseServiceObject

          public void releaseServiceObject​(Exchange context,
                                           Object obj)

      Called when the invoker is done with the object. Default implementation does nothing.
      Parameters:
        `context` -
        `obj` -

    - #### isJdkDynamicProxy

          public static boolean isJdkDynamicProxy​(Object object)

      Return whether the given object is a J2SE dynamic proxy.
      Parameters:
        `object` - the object to check
      See Also:
        `Proxy.isProxyClass(java.lang.Class<?>)`

    - #### getMostSpecificMethod

          public static Method getMostSpecificMethod​(Method method,
                                                     Class<?> targetClass)

      Given a method, which may come from an interface, and a targetClass used in the current AOP invocation, find the most specific method if there is one. E.g. the method may be IFoo.bar() and the target class may be DefaultFoo. In this case, the method may be DefaultFoo.bar(). This enables attributes on that method to be found.
      Parameters:
        `method` - method to be invoked, which may come from an interface
        `targetClass` - target class for the current invocation. May be `null` or may not even implement the method.
      Returns:
        the more specific method, or the original method if the targetClass doesn't specialize it or implement it or is null