public abstract class AbstractInvoker extends java.lang.Object implements Invoker
Constructor and Description |
---|
AbstractInvoker() |
Modifier and Type | Method and Description |
---|---|
protected java.lang.reflect.Method |
adjustMethodAndParams(java.lang.reflect.Method m,
Exchange ex,
java.util.List<java.lang.Object> params,
java.lang.Class<?> serviceObjectClass) |
protected void |
checkSuspendedInvocation(Exchange exchange,
java.lang.Object serviceObject,
java.lang.reflect.Method m,
java.util.List<java.lang.Object> params,
java.lang.Throwable t) |
protected Fault |
createFault(java.lang.Throwable ex,
java.lang.reflect.Method m,
java.util.List<java.lang.Object> params,
boolean checked) |
static java.lang.reflect.Method |
getMostSpecificMethod(java.lang.reflect.Method method,
java.lang.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 java.lang.Object |
getServiceObject(Exchange context)
Creates and returns a service object depending on the scope.
|
java.lang.Object[] |
insertExchange(java.lang.reflect.Method method,
java.lang.Object[] params,
Exchange context) |
java.lang.Object |
invoke(Exchange exchange,
java.lang.Object o) |
protected java.lang.Object |
invoke(Exchange exchange,
java.lang.Object serviceObject,
java.lang.reflect.Method m,
java.util.List<java.lang.Object> params) |
static boolean |
isJdkDynamicProxy(java.lang.Object object)
Return whether the given object is a J2SE dynamic proxy.
|
protected java.lang.Object |
performInvocation(Exchange exchange,
java.lang.Object serviceObject,
java.lang.reflect.Method m,
java.lang.Object[] paramArray) |
void |
releaseServiceObject(Exchange context,
java.lang.Object obj)
Called when the invoker is done with the object.
|
public java.lang.Object invoke(Exchange exchange, java.lang.Object o)
protected java.lang.reflect.Method adjustMethodAndParams(java.lang.reflect.Method m, Exchange ex, java.util.List<java.lang.Object> params, java.lang.Class<?> serviceObjectClass)
protected java.lang.Object invoke(Exchange exchange, java.lang.Object serviceObject, java.lang.reflect.Method m, java.util.List<java.lang.Object> params)
protected void checkSuspendedInvocation(Exchange exchange, java.lang.Object serviceObject, java.lang.reflect.Method m, java.util.List<java.lang.Object> params, java.lang.Throwable t)
protected Fault createFault(java.lang.Throwable ex, java.lang.reflect.Method m, java.util.List<java.lang.Object> params, boolean checked)
protected java.lang.Object performInvocation(Exchange exchange, java.lang.Object serviceObject, java.lang.reflect.Method m, java.lang.Object[] paramArray) throws java.lang.Exception
java.lang.Exception
public java.lang.Object[] insertExchange(java.lang.reflect.Method method, java.lang.Object[] params, Exchange context)
public abstract java.lang.Object getServiceObject(Exchange context)
public void releaseServiceObject(Exchange context, java.lang.Object obj)
context
- obj
- public static boolean isJdkDynamicProxy(java.lang.Object object)
object
- the object to checkProxy.isProxyClass(java.lang.Class<?>)
public static java.lang.reflect.Method getMostSpecificMethod(java.lang.reflect.Method method, java.lang.Class<?> targetClass)
method
- method to be invoked, which may come from an interfacetargetClass
- target class for the current invocation. May be
null
or may not even implement the method.