AbstractInvoker (Apache CXF JavaDoc 4.2.1 API)
Description: declaration: package: org.apache.cxf.service.invoker, class: AbstractInvoker

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

  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 Details

  - ### AbstractInvoker

    public AbstractInvoker()

- ## Method Details

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