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 and Description
    `AbstractInvoker()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected Method` | `adjustMethodAndParams(Method m, Exchange ex, List<Object> params)`
    `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)

    - #### 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

Apache CXF