org.jboss.aop.joinpoint
Class MethodCalledByMethodInvocationWrapper

java.lang.Object
  extended by org.jboss.aop.joinpoint.InvocationBase
      extended by org.jboss.aop.joinpoint.CallerInvocation
          extended by org.jboss.aop.joinpoint.MethodCalledByMethodInvocation
              extended by org.jboss.aop.joinpoint.MethodCalledByMethodInvocationWrapper
All Implemented Interfaces:
Serializable, Invocation

public class MethodCalledByMethodInvocationWrapper
extends MethodCalledByMethodInvocation

Comment

Version:
$Revision: 70849 $
Author:
Bill Burke
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.jboss.aop.joinpoint.CallerInvocation
arguments, callingObject
 
Fields inherited from class org.jboss.aop.joinpoint.InvocationBase
advisor, currentInterceptor, instanceResolver, interceptors, metadata, responseContextInfo, targetObject
 
Constructor Summary
MethodCalledByMethodInvocationWrapper(MethodCalledByMethodInvocation wrapped, Interceptor[] interceptors)
           
 
Method Summary
 void addResponseAttachment(Object key, Object val)
           
 Invocation copy()
          Copies complete state of Invocation object.
 Advisor getAdvisor()
           
 Object[] getArguments()
          Returns a non-null array containing all call arguments.
 Method getCalledMethod()
           
 Class<?> getCallingClass()
           
 Method getCallingMethod()
           
 MetaDataResolver getInstanceResolver()
           
 Object getMetaData(Object group, Object attr)
          This method resolves metadata based on the context of the invocation.
 Object getResponseAttachment(Object key)
           
 Map<Object,Object> getResponseContextInfo()
           
 Object getTargetObject()
           
 Object invokeNext()
          Invoke on the next interceptor in the chain.
 void setArguments(Object[] arguments)
          Replaces call argument values by the ones contained in arguments.
 void setMetaData(SimpleMetaData data)
          Set all the contextual data attached to this invocation
 void setResponseContextInfo(Map<Object,Object> responseContextInfo)
           
 void setTargetObject(Object targetObject)
           
 
Methods inherited from class org.jboss.aop.joinpoint.MethodCalledByMethodInvocation
getWrapper, invokeTarget
 
Methods inherited from class org.jboss.aop.joinpoint.CallerInvocation
getCallingObject
 
Methods inherited from class org.jboss.aop.joinpoint.InvocationBase
getCurrentInterceptor, getInterceptors, getMetaData, invokeNext, resolveAnnotation, resolveAnnotation, resolveClassAnnotation, resolveClassMetaData, resolveTypedAnnotation, resolveTypedAnnotation, resolveTypedClassAnnotation, setAdvisor, setInstanceResolver
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MethodCalledByMethodInvocationWrapper

public MethodCalledByMethodInvocationWrapper(MethodCalledByMethodInvocation wrapped,
                                             Interceptor[] interceptors)
Method Detail

getMetaData

public Object getMetaData(Object group,
                          Object attr)
Description copied from class: MethodCalledByMethodInvocation
This method resolves metadata based on the context of the invocation. It iterates through its list of MetaDataResolvers to find out the value of the metadata desired.

This list usually is ThreadMetaData, InstanceAdvisor.getMetaData ClassAdvisor.getMethodMetaData (or field, or constructor) ClassAdvisor.getDefaultMetaData

Specified by:
getMetaData in interface Invocation
Overrides:
getMetaData in class MethodCalledByMethodInvocation

invokeNext

public Object invokeNext()
                  throws Throwable
Description copied from class: MethodCalledByMethodInvocation
Invoke on the next interceptor in the chain. If this is already the end of the chain, reflection will call the constructor, field, or method you are invoking on.

Specified by:
invokeNext in interface Invocation
Overrides:
invokeNext in class MethodCalledByMethodInvocation
Throws:
Throwable

getInstanceResolver

public MetaDataResolver getInstanceResolver()
Overrides:
getInstanceResolver in class InvocationBase

copy

public Invocation copy()
Description copied from class: MethodCalledByMethodInvocation
Copies complete state of Invocation object.

Specified by:
copy in interface Invocation
Overrides:
copy in class MethodCalledByMethodInvocation
Returns:
a copy of this instance

getArguments

public Object[] getArguments()
Description copied from class: CallerInvocation
Returns a non-null array containing all call arguments.

The returned array can be changed by the advice or interceptor accordingly. All changes are reflected on joinpoint execution, and are noticed as well by other advices and interceptors that are executed after the current one.
However, changes to this array are limited to the scope of current advice execution, and must be performed before execution of InvocationBase.invokeNext(), InvocationBase.invokeNext(Interceptor[]), or InvocationBase.invokeTarget() method. Otherwise, inconsistency on joinpoint argument values may be noticed.

Overrides:
getArguments in class CallerInvocation
Returns:
the call arguments

setArguments

public void setArguments(Object[] arguments)
Description copied from class: CallerInvocation
Replaces call argument values by the ones contained in arguments.

Advices and interceptors must be aware that, for performance reasons, this array does not get copied across; its reference is directly used instead. Hence, changes to arguments array after this method being called are forbidden. Otherwise, inconsistency on joinpoint argument values may be noticed.

Overrides:
setArguments in class CallerInvocation
Parameters:
arguments - a non-null array containing the new values of call arguments. The size of this array must be the same as the one of CallerInvocation.getArguments(), as well as the element types.

getCallingClass

public Class<?> getCallingClass()
Overrides:
getCallingClass in class MethodCalledByMethodInvocation
Returns:
The class that is making the call on the method

getCallingMethod

public Method getCallingMethod()
Overrides:
getCallingMethod in class MethodCalledByMethodInvocation
Returns:
The method that is making the call on the method

getResponseContextInfo

public Map<Object,Object> getResponseContextInfo()
Specified by:
getResponseContextInfo in interface Invocation
Overrides:
getResponseContextInfo in class InvocationBase

setResponseContextInfo

public void setResponseContextInfo(Map<Object,Object> responseContextInfo)
Specified by:
setResponseContextInfo in interface Invocation
Overrides:
setResponseContextInfo in class InvocationBase

addResponseAttachment

public void addResponseAttachment(Object key,
                                  Object val)
Specified by:
addResponseAttachment in interface Invocation
Overrides:
addResponseAttachment in class InvocationBase

getResponseAttachment

public Object getResponseAttachment(Object key)
Specified by:
getResponseAttachment in interface Invocation
Overrides:
getResponseAttachment in class InvocationBase

setMetaData

public void setMetaData(SimpleMetaData data)
Description copied from class: InvocationBase
Set all the contextual data attached to this invocation

Specified by:
setMetaData in interface Invocation
Overrides:
setMetaData in class InvocationBase

getAdvisor

public Advisor getAdvisor()
Specified by:
getAdvisor in interface Invocation
Overrides:
getAdvisor in class InvocationBase

getTargetObject

public Object getTargetObject()
Specified by:
getTargetObject in interface Invocation
Overrides:
getTargetObject in class InvocationBase

setTargetObject

public void setTargetObject(Object targetObject)
Specified by:
setTargetObject in interface Invocation
Overrides:
setTargetObject in class InvocationBase

getCalledMethod

public Method getCalledMethod()
Overrides:
getCalledMethod in class MethodCalledByMethodInvocation
Returns:
the method that is being called


Copyright © 2008 JBoss, a division of Red Hat, Inc.. All Rights Reserved.