|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.jboss.aop.Advisor
org.jboss.aop.ClassAdvisor
org.jboss.aop.GeneratedClassAdvisor
public class GeneratedClassAdvisor
Comment
| 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
|
| 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 java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final String ADD_METHOD_INFO
public static final String ADD_CONSTRUCTOR_INFO
public static final String ADD_CONSTRUCTION_INFO
public static final String ADD_FIELD_READ_INFO
public static final String ADD_FIELD_WRITE_INFO
public static final String GET_PARENT_ADVISOR
| Constructor Detail |
|---|
protected GeneratedClassAdvisor(String classname)
protected GeneratedClassAdvisor(String classname,
GeneratedClassAdvisor parent)
| Method Detail |
|---|
public void cleanup()
cleanup in class ClassAdvisor
protected void initialise(Class<?> clazz,
AspectManager manager)
protected void initialiseCallers()
protected void initialiseInfosForInstance()
protected MethodInfo copyInfoFromClassAdvisor(MethodInfo info)
protected FieldInfo copyInfoFromClassAdvisor(FieldInfo info)
protected ConByConInfo copyInfoFromClassAdvisor(ConByConInfo info)
protected MethodByConInfo copyInfoFromClassAdvisor(MethodByConInfo info)
protected ConByMethodInfo copyInfoFromClassAdvisor(ConByMethodInfo info)
protected MethodByMethodInfo copyInfoFromClassAdvisor(MethodByMethodInfo info)
protected void rebuildInterceptors()
rebuildInterceptors in class ClassAdvisorprotected void rebuildInterceptorsForAddedBinding(AdviceBinding binding)
rebuildInterceptorsForAddedBinding in class ClassAdvisorprotected void rebuildInterceptorsForRemovedBinding(AdviceBinding binding)
rebuildInterceptorsForRemovedBinding in class ClassAdvisorprotected void internalRebuildInterceptors()
protected void checkVersion()
protected void doRebuildForInstance()
protected void handleOverriddenMethods(AdviceBinding binding)
protected void resolveMethodPointcut(AdviceBinding binding)
resolveMethodPointcut in class Advisor
protected void resolveFieldPointcut(FieldInfo[] newFieldInfos,
Interceptor[][] fieldInterceptors,
AdviceBinding binding,
boolean write)
resolveFieldPointcut in class ClassAdvisorprotected void resolveConstructorPointcut(AdviceBinding binding)
resolveConstructorPointcut in class Advisorprotected void resolveConstructionPointcut(AdviceBinding binding)
resolveConstructionPointcut in class Advisorprotected void initialiseMethods()
protected void addMethodInfo(MethodInfo mi)
protected void initializeMethodChain()
initializeMethodChain in class ClassAdvisorprotected void initialiseConstructors(Collection<ConstructorInfo> constructorInfos)
protected void addConstructorInfo(ConstructorInfo ci,
Collection<ConstructorInfo> constructorInfos)
protected void createInterceptorChains()
throws Exception
createInterceptorChains in class ClassAdvisorExceptionprotected void initialiseConstructions(Collection<ConstructionInfo> constructorInfos)
protected void addConstructionInfo(ConstructionInfo ci,
Collection<ConstructionInfo> constructionInfos)
protected void initialiseFieldReads(Collection<FieldInfo> fieldReadInfos)
protected void addFieldReadInfo(FieldInfo fi,
Collection<FieldInfo> fieldReadInfos)
protected void initializeConstructorChain()
initializeConstructorChain in class Advisorprotected void initializeConstructionChain()
initializeConstructionChain in class Advisorprotected void initializeFieldReadChain()
initializeFieldReadChain in class ClassAdvisorprotected void initialiseFieldWrites(Collection<FieldInfo> fieldWriteInfos)
protected void addFieldWriteInfo(FieldInfo fi,
Collection<FieldInfo> fieldWriteInfos)
protected void initializeFieldWriteChain()
initializeFieldWriteChain in class ClassAdvisorprotected void finalizeChains()
finalizeChains in class ClassAdvisorprotected void finalizeMethodChain()
finalizeMethodChain in class Advisorprotected void finalizeFieldWriteChain()
protected void finalizeMethodCalledByMethodInterceptorChain(MethodByMethodInfo info)
finalizeMethodCalledByMethodInterceptorChain in class ClassAdvisorprotected void finalizeConCalledByMethodInterceptorChain(ConByMethodInfo info)
finalizeConCalledByMethodInterceptorChain in class ClassAdvisorprotected void finalizeConCalledByConInterceptorChain(ConByConInfo info)
finalizeConCalledByConInterceptorChain in class ClassAdvisorprotected void finalizeMethodCalledByConInterceptorChain(MethodByConInfo info)
finalizeMethodCalledByConInterceptorChain in class ClassAdvisorprotected MethodJoinPointGenerator getJoinPointGenerator(MethodInfo info)
protected FieldJoinPointGenerator getJoinPointGenerator(FieldInfo info)
protected ConstructorJoinPointGenerator getJoinPointGenerator(ConstructorInfo info)
protected ConstructionJoinPointGenerator getJoinPointGenerator(ConstructionInfo info)
protected MethodByMethodJoinPointGenerator getJoinPointGenerator(MethodByMethodInfo info)
protected ConByMethodJoinPointGenerator getJoinPointGenerator(ConByMethodInfo info)
protected ConByConJoinPointGenerator getJoinPointGenerator(ConByConInfo info)
protected MethodByConJoinPointGenerator getJoinPointGenerator(MethodByConInfo info)
protected void pointcutResolved(JoinPointInfo info,
AdviceBinding binding,
Joinpoint joinpoint)
pointcutResolved in class Advisorpublic String toString()
toString in class Objectpublic Object getPerClassAspect(AspectDefinition def)
getPerClassAspect in class Advisor
public Object getPerClassJoinpointAspect(AspectDefinition def,
Joinpoint joinpoint)
public void addPerClassJoinpointAspect(AspectDefinition def,
Joinpoint joinpoint)
public void removePerClassJoinpointAspect(AspectDefinition def)
public boolean chainOverridingForInheritedMethods()
Advisor
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>
chainOverridingForInheritedMethods in class AdvisorAdvisor.chainOverridingForInheritedMethods()
public Object getFieldAspect(FieldJoinpoint joinpoint,
AspectDefinition def)
ClassAdvisor
getFieldAspect in class ClassAdvisor
protected void createMethodTables()
throws Exception
createMethodTables in class ClassAdvisorException
protected void createFieldTable()
throws Exception
createFieldTable in class ClassAdvisorException
protected void createConstructorTables()
throws Exception
createConstructorTables in class ClassAdvisorExceptionpublic Set<AspectDefinition> getPerInstanceAspectDefinitions()
getPerInstanceAspectDefinitions in class Advisorpublic Map<AspectDefinition,Set<Joinpoint>> getPerInstanceJoinpointAspectDefinitions()
getPerInstanceJoinpointAspectDefinitions in class Advisorprotected void generateJoinPointClass(MethodInfo info)
protected void generateJoinPointClass(FieldInfo info)
protected void generateJoinPointClass(ConstructorInfo info)
protected void generateJoinPointClass(ConstructionInfo info)
protected void generateJoinPointClass(MethodByMethodInfo info)
protected void generateJoinPointClass(ConByMethodInfo info)
protected void generateJoinPointClass(ConByConInfo info)
protected void generateJoinPointClass(MethodByConInfo info)
protected Object rebindJoinPointWithInstanceInformation(JoinPointInfo info)
public Object createAndRebindJoinPointForInstance(JoinPointInfo info)
protected void initJoinPointGeneratorsMap()
protected void initFieldReadJoinPointGeneratorsMap()
protected void initConstructionJoinPointGeneratorsMap()
protected void initMethodCalledByConJoinPointGeneratorsMap()
protected ConcurrentHashMap<Joinpoint,Interceptor[]> initOldInfosMap()
protected ConcurrentHashMap<Joinpoint,Interceptor[]> initOldFieldReadInfosMap()
protected ConcurrentHashMap<Joinpoint,Interceptor[]> initOldConstructionInfosMap()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||