org.jboss.aop
Class GeneratedClassAdvisor

java.lang.Object
  extended by org.jboss.aop.Advisor
      extended by org.jboss.aop.ClassAdvisor
          extended by org.jboss.aop.GeneratedClassAdvisor

public class GeneratedClassAdvisor
extends ClassAdvisor

Comment

Version:
$Revision$
Author:
Kabir Khan

Field Summary
static String ADD_CONSTRUCTION_INFO
           
static String ADD_CONSTRUCTOR_INFO
           
static String ADD_FIELD_READ_INFO
           
static String ADD_FIELD_WRITE_INFO
           
static String ADD_METHOD_INFO
           
static String GET_PARENT_ADVISOR
           
 
Fields inherited from class org.jboss.aop.ClassAdvisor
advisedFields, backrefConCalledByConstructorBindings, backrefMethodCalledByConstructorBindings, conCalledByConBindings, conCalledByConInterceptors, fieldReadInfos, fieldWriteInfos, initialized, methodCalledByConBindings, methodCalledByConInterceptors, NOT_TRANSFORMABLE_SUFFIX, unadvisedMethods
 
Fields inherited from class org.jboss.aop.Advisor
adviceBindings, adviceInterceptors, advisedMethods, annotations, aspects, classMetaData, classMetaDataBindings, clazz, constructionInfos, constructionInterceptors, constructorInfos, constructorInterceptors, constructorMetaData, constructors, defaultMetaData, doesHaveAspects, fieldMetaData, interfaceIntroductions, lazyCollectionLock, loader, manager, methodInfos, methodInterceptors, methodMetaData, name, NULL_ASPECT, perInstanceAspectDefinitions, perInstanceJoinpointAspectDefinitions
 
Constructor Summary
protected GeneratedClassAdvisor(String classname)
           
protected GeneratedClassAdvisor(String classname, GeneratedClassAdvisor parent)
           
 
Method Summary
protected  void addConstructionInfo(ConstructionInfo ci, Collection<ConstructionInfo> constructionInfos)
          Called by initialiseConstructions() in generated advisor sub classes
protected  void addConstructorInfo(ConstructorInfo ci, Collection<ConstructorInfo> constructorInfos)
          Called by initialiseConstructors() in generated advisor sub classes
protected  void addFieldReadInfo(FieldInfo fi, Collection<FieldInfo> fieldReadInfos)
          Called by initialiseFieldReads() in generated advisor sub classes
protected  void addFieldWriteInfo(FieldInfo fi, Collection<FieldInfo> fieldWriteInfos)
          Called by initialiseFieldWrites() in generated advisor sub classes
protected  void addMethodInfo(MethodInfo mi)
          Called by initialiseMethods() in generated advisor sub classes
 void addPerClassJoinpointAspect(AspectDefinition def, Joinpoint joinpoint)
           
 boolean chainOverridingForInheritedMethods()
          Whether the type of advisor supports matching on pointcut expression, where the method is defined in a superclass only, while the pointcut expression class matches the subclass.
protected  void checkVersion()
          Callback for generated instance advisors to check if the version has been updated
 void cleanup()
           
protected  ConByConInfo copyInfoFromClassAdvisor(ConByConInfo info)
          To be called by initialiseInfosForInstance() in the generated instance advisors
protected  ConByMethodInfo copyInfoFromClassAdvisor(ConByMethodInfo info)
          To be called by initialiseInfosForInstance() in the generated instance advisors
protected  FieldInfo copyInfoFromClassAdvisor(FieldInfo info)
          To be called by initialiseInfosForInstance() in the generated instance advisors
protected  MethodByConInfo copyInfoFromClassAdvisor(MethodByConInfo info)
          To be called by initialiseInfosForInstance() in the generated instance advisors
protected  MethodByMethodInfo copyInfoFromClassAdvisor(MethodByMethodInfo info)
          To be called by initialiseInfosForInstance() in the generated instance advisors
protected  MethodInfo copyInfoFromClassAdvisor(MethodInfo info)
          To be called by initialiseInfosForInstance() in the generated instance advisors
 Object createAndRebindJoinPointForInstance(JoinPointInfo info)
          Called back from generated code
protected  void createConstructorTables()
          Optimization so that when we create instance advisors we don't have to create the constructor tables again, they were already created for the class advisor
protected  void createFieldTable()
          Optimization so that when we create instance advisors we don't have to create the field tables again, they were already created for the class advisor
protected  void createInterceptorChains()
           
protected  void createMethodTables()
          Optimization so that when we create instance advisors we don't have to create the method tables again, they were already created for the class advisor
protected  void doRebuildForInstance()
          Will be overridden by generated instanceadvisor classes and perform a rebuild
protected  void finalizeChains()
           
protected  void finalizeConCalledByConInterceptorChain(ConByConInfo info)
           
protected  void finalizeConCalledByMethodInterceptorChain(ConByMethodInfo info)
           
protected  void finalizeFieldWriteChain()
           
protected  void finalizeMethodCalledByConInterceptorChain(MethodByConInfo info)
           
protected  void finalizeMethodCalledByMethodInterceptorChain(MethodByMethodInfo info)
           
protected  void finalizeMethodChain()
           
protected  void generateJoinPointClass(ConByConInfo info)
           
protected  void generateJoinPointClass(ConByMethodInfo info)
           
protected  void generateJoinPointClass(ConstructionInfo info)
           
protected  void generateJoinPointClass(ConstructorInfo info)
           
protected  void generateJoinPointClass(FieldInfo info)
           
protected  void generateJoinPointClass(MethodByConInfo info)
           
protected  void generateJoinPointClass(MethodByMethodInfo info)
           
protected  void generateJoinPointClass(MethodInfo info)
           
 Object getFieldAspect(FieldJoinpoint joinpoint, AspectDefinition def)
          This method is to support PER_JOINPOINT scoping of Aspects for static fields Fields are special in that a get and set do not create separate aspect instances.
protected  ConByConJoinPointGenerator getJoinPointGenerator(ConByConInfo info)
           
protected  ConByMethodJoinPointGenerator getJoinPointGenerator(ConByMethodInfo info)
           
protected  ConstructionJoinPointGenerator getJoinPointGenerator(ConstructionInfo info)
           
protected  ConstructorJoinPointGenerator getJoinPointGenerator(ConstructorInfo info)
           
protected  FieldJoinPointGenerator getJoinPointGenerator(FieldInfo info)
           
protected  MethodByConJoinPointGenerator getJoinPointGenerator(MethodByConInfo info)
           
protected  MethodByMethodJoinPointGenerator getJoinPointGenerator(MethodByMethodInfo info)
           
protected  MethodJoinPointGenerator getJoinPointGenerator(MethodInfo info)
           
 Object getPerClassAspect(AspectDefinition def)
          If this is an instance advisor, will check with parent class advisor if the aspect is already registered.
 Object getPerClassJoinpointAspect(AspectDefinition def, Joinpoint joinpoint)
           
 Set<AspectDefinition> getPerInstanceAspectDefinitions()
           
 Map<AspectDefinition,Set<Joinpoint>> getPerInstanceJoinpointAspectDefinitions()
           
protected  void handleOverriddenMethods(AdviceBinding binding)
           
protected  void initConstructionJoinPointGeneratorsMap()
           
protected  void initFieldReadJoinPointGeneratorsMap()
           
protected  void initialise(Class<?> clazz, AspectManager manager)
           
protected  void initialiseCallers()
          Generated class advisor sub class will override
protected  void initialiseConstructions(Collection<ConstructionInfo> constructorInfos)
          Generated class advisor sub class will override
protected  void initialiseConstructors(Collection<ConstructorInfo> constructorInfos)
          Generated class advisor sub class will override
protected  void initialiseFieldReads(Collection<FieldInfo> fieldReadInfos)
          Generated class advisor sub class will override
protected  void initialiseFieldWrites(Collection<FieldInfo> fieldWriteInfos)
          Generated class advisor sub class will override
protected  void initialiseInfosForInstance()
          Generated instance advisor sub class will override
protected  void initialiseMethods()
          Generated class advisor sub class will override
protected  void initializeConstructionChain()
           
protected  void initializeConstructorChain()
           
protected  void initializeFieldReadChain()
           
protected  void initializeFieldWriteChain()
           
protected  void initializeMethodChain()
           
protected  void initJoinPointGeneratorsMap()
           
protected  void initMethodCalledByConJoinPointGeneratorsMap()
           
protected  ConcurrentHashMap<Joinpoint,Interceptor[]> initOldConstructionInfosMap()
           
protected  ConcurrentHashMap<Joinpoint,Interceptor[]> initOldFieldReadInfosMap()
           
protected  ConcurrentHashMap<Joinpoint,Interceptor[]> initOldInfosMap()
           
protected  void internalRebuildInterceptors()
          Callback for instance advisors to rebuild their interceptors when their version number is out of sync
protected  void pointcutResolved(JoinPointInfo info, AdviceBinding binding, Joinpoint joinpoint)
          Override default behaviour of when a pointcut is matched, populate the factories since this is what is needed for generating the optimized invocation method
protected  Object rebindJoinPointWithInstanceInformation(JoinPointInfo info)
           
protected  void rebuildInterceptors()
           
protected  void rebuildInterceptorsForAddedBinding(AdviceBinding binding)
           
protected  void rebuildInterceptorsForRemovedBinding(AdviceBinding binding)
           
 void removePerClassJoinpointAspect(AspectDefinition def)
           
protected  void resolveConstructionPointcut(AdviceBinding binding)
           
protected  void resolveConstructorPointcut(AdviceBinding binding)
           
protected  void resolveFieldPointcut(FieldInfo[] newFieldInfos, Interceptor[][] fieldInterceptors, AdviceBinding binding, boolean write)
           
protected  void resolveMethodPointcut(AdviceBinding binding)
           
 String toString()
           
 
Methods inherited from class org.jboss.aop.ClassAdvisor
addClassMetaData, addConstructorCallerPointcut, addDeclaredMethods, attachClass, bindClassMetaData, doRebuildInterceptors, doRebuildInterceptorsForAddedBinding, doRebuildInterceptorsForRemovedBinding, getAdvisedFields, getAdvisedMethods, getConByMethodData, getConCalledByConInterceptors, getConCalledByMethodInterceptors, getConstructorIndex, getConstructors, getFieldIndex, getFieldReadInfos, getFieldReadInterceptors, getFieldWriteInfos, getFieldWriteInterceptors, getInterceptorChainObserver, getMethodByMethodData, getMethodCalledByConInterceptors, getMethodCalledByMethodBindings, getMethodCalledByMethodInterceptors, getMethodInterceptors, getUnadvisedMethods, invoke, invokeCaller, invokeCaller, invokeConCalledByCon, invokeConCalledByCon, invokeConCalledByCon, invokeConCalledByCon, invokeConCalledByMethod, invokeConCalledByMethod, invokeConstructorCaller, invokeConstructorCaller, invokeConstructorCaller, invokeConstructorCaller, invokeMethod, invokeMethod, invokeMethod, invokeMethod, invokeNew, invokeNewWithoutAdvisement, invokeRead, invokeWithoutAdvisement, invokeWrite, isAdvisable, isWithoutAdvisement, notAdvisedMethodName, populateInterceptorsFromInfos, populateMixinMethods, rebindClassMetaData, rebuildCallerInterceptors, removeAdviceBinding, removeAdviceBindings, removeClassMetaData, resolveCallerConstructorInfo, resolveCallerConstructorInfoAsWeakReference, resolveCallerMethodInfo, resolveCallerMethodInfoAsWeakReference, resolveConstructorCallerConstructorInfo, resolveConstructorCallerConstructorInfo, resolveConstructorCallerConstructorInfoAsWeakReference, resolveConstructorCallerConstructorInfoAsWeakReference, resolveConstructorCallerMethodInfo, resolveConstructorCallerMethodInfo, resolveConstructorCallerMethodInfoAsWeakReference, resolveConstructorCallerMethodInfoAsWeakReference, resolvePointcuts, setInterceptorChainObserver, updateFieldPointcutAfterRemove, updateInterceptorChains
 
Methods inherited from class org.jboss.aop.Advisor
addAdviceInterceptor, addInterfaceIntroduction, addPerClassAspect, addPerInstanceAspect, addPerInstanceJoinpointAspect, adjustInfoForAddedBinding, createInterceptorChain, deployAnnotationOverride, deployAnnotationOverrides, deployMethodAnnotationOverrides, doDeployAnnotationOverride, dynamicInvoke, finalizeChain, getAdviceInterceptor, getAllMethods, getAnnotations, getClassLoader, getClassMetaData, getClassMetadataBindings, getClazz, getConstructionInfos, getConstructionInterceptors, getConstructorInfos, getConstructorInterceptors, getConstructorMetaData, getDefaultMetaData, getFieldMetaData, getInterfaceIntroductions, getManager, getMetadata, getMethodInfo, getMethodMetaData, getName, getPerClassAspect, getPerVMAspect, getSimpleName, hasAnnotation, hasAnnotation, hasAnnotation, hasAnnotation, hasAnnotation, hasAnnotation, hasAnnotation, hasAnnotation, hasAnnotation, hasAnnotation, hasAnnotation, hasAnnotation, hasAspects, hasSameConstructorAspectLength, hasSameMethodAspectLength, initAdvisedMethodsMap, initClassMetaDataBindingsList, initializeInterfaceIntroductions, initInterfaceIntroductionsList, initPerInstanceAspectDefinitionsSet, initPerInstanceJoinpointAspectDefinitionsMap, lockWriteChain, lockWriteChain, newBindingAdded, newBindingAdded, removeInterfaceIntroduction, removePerClassAspect, removePerInstanceAspect, removePerInstanceJoinpointAspect, resetChain, resetChain, resetChainKeepInterceptors, resetChainKeepInterceptors, resolveAnnotation, resolveAnnotation, resolveAnnotation, resolveAnnotation, resolveAnnotation, resolveAnnotation, resolveTypedAnnotation, resolveTypedAnnotation, resolveTypedAnnotation, resolveTypedAnnotation, resolveTypedAnnotation, resolveTypedAnnotation, setChainOverridingForInheritedMethods, setManager, setMetadata, unlockWriteChain, unlockWriteChain, updateConstructionPointcutAfterRemove, updateConstructorPointcutAfterRemove, updateFieldPointcutAfterRemove, updateMethodPointcutAfterRemove
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

ADD_METHOD_INFO

public static final String ADD_METHOD_INFO
See Also:
Constant Field Values

ADD_CONSTRUCTOR_INFO

public static final String ADD_CONSTRUCTOR_INFO
See Also:
Constant Field Values

ADD_CONSTRUCTION_INFO

public static final String ADD_CONSTRUCTION_INFO
See Also:
Constant Field Values

ADD_FIELD_READ_INFO

public static final String ADD_FIELD_READ_INFO
See Also:
Constant Field Values

ADD_FIELD_WRITE_INFO

public static final String ADD_FIELD_WRITE_INFO
See Also:
Constant Field Values

GET_PARENT_ADVISOR

public static final String GET_PARENT_ADVISOR
See Also:
Constant Field Values
Constructor Detail

GeneratedClassAdvisor

protected GeneratedClassAdvisor(String classname)

GeneratedClassAdvisor

protected GeneratedClassAdvisor(String classname,
                                GeneratedClassAdvisor parent)
Method Detail

cleanup

public void cleanup()
Overrides:
cleanup in class ClassAdvisor

initialise

protected void initialise(Class<?> clazz,
                          AspectManager manager)

initialiseCallers

protected void initialiseCallers()
Generated class advisor sub class will override


initialiseInfosForInstance

protected void initialiseInfosForInstance()
Generated instance advisor sub class will override


copyInfoFromClassAdvisor

protected MethodInfo copyInfoFromClassAdvisor(MethodInfo info)
To be called by initialiseInfosForInstance() in the generated instance advisors


copyInfoFromClassAdvisor

protected FieldInfo copyInfoFromClassAdvisor(FieldInfo info)
To be called by initialiseInfosForInstance() in the generated instance advisors


copyInfoFromClassAdvisor

protected ConByConInfo copyInfoFromClassAdvisor(ConByConInfo info)
To be called by initialiseInfosForInstance() in the generated instance advisors


copyInfoFromClassAdvisor

protected MethodByConInfo copyInfoFromClassAdvisor(MethodByConInfo info)
To be called by initialiseInfosForInstance() in the generated instance advisors


copyInfoFromClassAdvisor

protected ConByMethodInfo copyInfoFromClassAdvisor(ConByMethodInfo info)
To be called by initialiseInfosForInstance() in the generated instance advisors


copyInfoFromClassAdvisor

protected MethodByMethodInfo copyInfoFromClassAdvisor(MethodByMethodInfo info)
To be called by initialiseInfosForInstance() in the generated instance advisors


rebuildInterceptors

protected void rebuildInterceptors()
Overrides:
rebuildInterceptors in class ClassAdvisor

rebuildInterceptorsForAddedBinding

protected void rebuildInterceptorsForAddedBinding(AdviceBinding binding)
Overrides:
rebuildInterceptorsForAddedBinding in class ClassAdvisor

rebuildInterceptorsForRemovedBinding

protected void rebuildInterceptorsForRemovedBinding(AdviceBinding binding)
Overrides:
rebuildInterceptorsForRemovedBinding in class ClassAdvisor

internalRebuildInterceptors

protected void internalRebuildInterceptors()
Callback for instance advisors to rebuild their interceptors when their version number is out of sync


checkVersion

protected void checkVersion()
Callback for generated instance advisors to check if the version has been updated


doRebuildForInstance

protected void doRebuildForInstance()
Will be overridden by generated instanceadvisor classes and perform a rebuild


handleOverriddenMethods

protected void handleOverriddenMethods(AdviceBinding binding)

resolveMethodPointcut

protected void resolveMethodPointcut(AdviceBinding binding)
Overrides:
resolveMethodPointcut in class Advisor

resolveFieldPointcut

protected void resolveFieldPointcut(FieldInfo[] newFieldInfos,
                                    Interceptor[][] fieldInterceptors,
                                    AdviceBinding binding,
                                    boolean write)
Overrides:
resolveFieldPointcut in class ClassAdvisor

resolveConstructorPointcut

protected void resolveConstructorPointcut(AdviceBinding binding)
Overrides:
resolveConstructorPointcut in class Advisor

resolveConstructionPointcut

protected void resolveConstructionPointcut(AdviceBinding binding)
Overrides:
resolveConstructionPointcut in class Advisor

initialiseMethods

protected void initialiseMethods()
Generated class advisor sub class will override


addMethodInfo

protected void addMethodInfo(MethodInfo mi)
Called by initialiseMethods() in generated advisor sub classes


initializeMethodChain

protected void initializeMethodChain()
Overrides:
initializeMethodChain in class ClassAdvisor

initialiseConstructors

protected void initialiseConstructors(Collection<ConstructorInfo> constructorInfos)
Generated class advisor sub class will override


addConstructorInfo

protected void addConstructorInfo(ConstructorInfo ci,
                                  Collection<ConstructorInfo> constructorInfos)
Called by initialiseConstructors() in generated advisor sub classes


createInterceptorChains

protected void createInterceptorChains()
                                throws Exception
Overrides:
createInterceptorChains in class ClassAdvisor
Throws:
Exception

initialiseConstructions

protected void initialiseConstructions(Collection<ConstructionInfo> constructorInfos)
Generated class advisor sub class will override


addConstructionInfo

protected void addConstructionInfo(ConstructionInfo ci,
                                   Collection<ConstructionInfo> constructionInfos)
Called by initialiseConstructions() in generated advisor sub classes


initialiseFieldReads

protected void initialiseFieldReads(Collection<FieldInfo> fieldReadInfos)
Generated class advisor sub class will override


addFieldReadInfo

protected void addFieldReadInfo(FieldInfo fi,
                                Collection<FieldInfo> fieldReadInfos)
Called by initialiseFieldReads() in generated advisor sub classes


initializeConstructorChain

protected void initializeConstructorChain()
Overrides:
initializeConstructorChain in class Advisor

initializeConstructionChain

protected void initializeConstructionChain()
Overrides:
initializeConstructionChain in class Advisor

initializeFieldReadChain

protected void initializeFieldReadChain()
Overrides:
initializeFieldReadChain in class ClassAdvisor

initialiseFieldWrites

protected void initialiseFieldWrites(Collection<FieldInfo> fieldWriteInfos)
Generated class advisor sub class will override


addFieldWriteInfo

protected void addFieldWriteInfo(FieldInfo fi,
                                 Collection<FieldInfo> fieldWriteInfos)
Called by initialiseFieldWrites() in generated advisor sub classes


initializeFieldWriteChain

protected void initializeFieldWriteChain()
Overrides:
initializeFieldWriteChain in class ClassAdvisor

finalizeChains

protected void finalizeChains()
Overrides:
finalizeChains in class ClassAdvisor

finalizeMethodChain

protected void finalizeMethodChain()
Overrides:
finalizeMethodChain in class Advisor

finalizeFieldWriteChain

protected void finalizeFieldWriteChain()

finalizeMethodCalledByMethodInterceptorChain

protected void finalizeMethodCalledByMethodInterceptorChain(MethodByMethodInfo info)
Overrides:
finalizeMethodCalledByMethodInterceptorChain in class ClassAdvisor

finalizeConCalledByMethodInterceptorChain

protected void finalizeConCalledByMethodInterceptorChain(ConByMethodInfo info)
Overrides:
finalizeConCalledByMethodInterceptorChain in class ClassAdvisor

finalizeConCalledByConInterceptorChain

protected void finalizeConCalledByConInterceptorChain(ConByConInfo info)
Overrides:
finalizeConCalledByConInterceptorChain in class ClassAdvisor

finalizeMethodCalledByConInterceptorChain

protected void finalizeMethodCalledByConInterceptorChain(MethodByConInfo info)
Overrides:
finalizeMethodCalledByConInterceptorChain in class ClassAdvisor

getJoinPointGenerator

protected MethodJoinPointGenerator getJoinPointGenerator(MethodInfo info)

getJoinPointGenerator

protected FieldJoinPointGenerator getJoinPointGenerator(FieldInfo info)

getJoinPointGenerator

protected ConstructorJoinPointGenerator getJoinPointGenerator(ConstructorInfo info)

getJoinPointGenerator

protected ConstructionJoinPointGenerator getJoinPointGenerator(ConstructionInfo info)

getJoinPointGenerator

protected MethodByMethodJoinPointGenerator getJoinPointGenerator(MethodByMethodInfo info)

getJoinPointGenerator

protected ConByMethodJoinPointGenerator getJoinPointGenerator(ConByMethodInfo info)

getJoinPointGenerator

protected ConByConJoinPointGenerator getJoinPointGenerator(ConByConInfo info)

getJoinPointGenerator

protected MethodByConJoinPointGenerator getJoinPointGenerator(MethodByConInfo info)

pointcutResolved

protected void pointcutResolved(JoinPointInfo info,
                                AdviceBinding binding,
                                Joinpoint joinpoint)
Override default behaviour of when a pointcut is matched, populate the factories since this is what is needed for generating the optimized invocation method

Overrides:
pointcutResolved in class Advisor

toString

public String toString()
Overrides:
toString in class Object

getPerClassAspect

public Object getPerClassAspect(AspectDefinition def)
If this is an instance advisor, will check with parent class advisor if the aspect is already registered. If so, we should use the one from the parent advisor

Overrides:
getPerClassAspect in class Advisor

getPerClassJoinpointAspect

public Object getPerClassJoinpointAspect(AspectDefinition def,
                                         Joinpoint joinpoint)

addPerClassJoinpointAspect

public void addPerClassJoinpointAspect(AspectDefinition def,
                                       Joinpoint joinpoint)

removePerClassJoinpointAspect

public void removePerClassJoinpointAspect(AspectDefinition def)

chainOverridingForInheritedMethods

public boolean chainOverridingForInheritedMethods()
Description copied from class: Advisor
Whether the type of advisor supports matching on pointcut expression, where the method is defined in a superclass only, while the pointcut expression class matches the subclass. This is currently only supported for generated advisors, due to the new weaving model. So (with generated advisors) if we have

public class Super {
  void method(){}
}

public class Sub etxends Super {
}
and
<bind pointcut="execution(* Super->method())">
  <interceptor class="A"/>
</bind>
<bind pointcut="execution(* sub->method())">
  <interceptor class="B"/>
</bind>

Super.method() will be intercepted by A only
Sub.method() will be intercepted by A and B

Overrides:
chainOverridingForInheritedMethods in class Advisor
See Also:
Advisor.chainOverridingForInheritedMethods()

getFieldAspect

public Object getFieldAspect(FieldJoinpoint joinpoint,
                             AspectDefinition def)
Description copied from class: ClassAdvisor
This method is to support PER_JOINPOINT scoping of Aspects for static fields Fields are special in that a get and set do not create separate aspect instances. Also used to support PER_CLASS_JOINPOINT, since that behaves similarly to static fields

Overrides:
getFieldAspect in class ClassAdvisor
Returns:

createMethodTables

protected void createMethodTables()
                           throws Exception
Optimization so that when we create instance advisors we don't have to create the method tables again, they were already created for the class advisor

Overrides:
createMethodTables in class ClassAdvisor
Throws:
Exception

createFieldTable

protected void createFieldTable()
                         throws Exception
Optimization so that when we create instance advisors we don't have to create the field tables again, they were already created for the class advisor

Overrides:
createFieldTable in class ClassAdvisor
Throws:
Exception

createConstructorTables

protected void createConstructorTables()
                                throws Exception
Optimization so that when we create instance advisors we don't have to create the constructor tables again, they were already created for the class advisor

Overrides:
createConstructorTables in class ClassAdvisor
Throws:
Exception

getPerInstanceAspectDefinitions

public Set<AspectDefinition> getPerInstanceAspectDefinitions()
Overrides:
getPerInstanceAspectDefinitions in class Advisor

getPerInstanceJoinpointAspectDefinitions

public Map<AspectDefinition,Set<Joinpoint>> getPerInstanceJoinpointAspectDefinitions()
Overrides:
getPerInstanceJoinpointAspectDefinitions in class Advisor

generateJoinPointClass

protected void generateJoinPointClass(MethodInfo info)

generateJoinPointClass

protected void generateJoinPointClass(FieldInfo info)

generateJoinPointClass

protected void generateJoinPointClass(ConstructorInfo info)

generateJoinPointClass

protected void generateJoinPointClass(ConstructionInfo info)

generateJoinPointClass

protected void generateJoinPointClass(MethodByMethodInfo info)

generateJoinPointClass

protected void generateJoinPointClass(ConByMethodInfo info)

generateJoinPointClass

protected void generateJoinPointClass(ConByConInfo info)

generateJoinPointClass

protected void generateJoinPointClass(MethodByConInfo info)

rebindJoinPointWithInstanceInformation

protected Object rebindJoinPointWithInstanceInformation(JoinPointInfo info)

createAndRebindJoinPointForInstance

public Object createAndRebindJoinPointForInstance(JoinPointInfo info)
Called back from generated code


initJoinPointGeneratorsMap

protected void initJoinPointGeneratorsMap()

initFieldReadJoinPointGeneratorsMap

protected void initFieldReadJoinPointGeneratorsMap()

initConstructionJoinPointGeneratorsMap

protected void initConstructionJoinPointGeneratorsMap()

initMethodCalledByConJoinPointGeneratorsMap

protected void initMethodCalledByConJoinPointGeneratorsMap()

initOldInfosMap

protected ConcurrentHashMap<Joinpoint,Interceptor[]> initOldInfosMap()

initOldFieldReadInfosMap

protected ConcurrentHashMap<Joinpoint,Interceptor[]> initOldFieldReadInfosMap()

initOldConstructionInfosMap

protected ConcurrentHashMap<Joinpoint,Interceptor[]> initOldConstructionInfosMap()


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