org.jboss.aop
Class Advisor

java.lang.Object
  extended by org.jboss.aop.Advisor
Direct Known Subclasses:
ClassAdvisor, ClassContainer

public abstract class Advisor
extends Object

Version:
$Revision: 1.55.2.4 $
Author:
Bill Burke

Field Summary
protected  HashSet adviceBindings
           
protected  HashMap adviceInterceptors
           
protected  gnu.trove.TLongObjectHashMap advisedMethods
           
protected  AnnotationRepository annotations
           
protected  EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap aspects
           
protected  HashMap classAnnotations
           
protected  SimpleMetaData classMetaData
           
protected  ArrayList classMetaDataBindings
           
protected  Class clazz
           
protected  Interceptor[][] constructionInterceptors
           
protected  Interceptor[][] constructorInterceptors
           
protected  ConstructorMetaData constructorMetaData
           
protected  Constructor[] constructors
           
protected  SimpleMetaData defaultMetaData
           
 boolean doesHaveAspects
           
protected  FieldMetaData fieldMetaData
           
protected  ArrayList interfaceIntroductions
           
protected  AspectManager manager
           
protected  gnu.trove.TLongObjectHashMap methodInterceptors
           
protected  MethodMetaData methodMetaData
           
protected  String name
           
protected  EDU.oswego.cs.dl.util.concurrent.CopyOnWriteArraySet perInstanceAspectDefinitions
           
protected  EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap perInstanceJoinpointAspectDefinitions
           
 
Constructor Summary
Advisor(String name, AspectManager manager)
           
 
Method Summary
 void addAdviceInterceptor(AspectDefinition def, String adviceName, Interceptor interceptor, Joinpoint joinpoint)
           
abstract  void addClassMetaData(ClassMetaDataBinding data)
           
 void addInterfaceIntroduction(InterfaceIntroduction pointcut)
           
 void addPerClassAspect(AspectDefinition def)
           
 void addPerInstanceAspect(AspectDefinition def)
           
 void addPerInstanceJoinpointAspect(Joinpoint joinpoint, AspectDefinition def)
           
 Interceptor[] applyPrecedence(Interceptor[] interceptors)
           
protected  void createInterceptorChain(InterceptorFactory[] factories, ArrayList newinterceptors, Joinpoint joinpoint)
           
 void deployAnnotationOverrides()
           
protected  void deployMethodAnnotationOverrides(Class theClass, AnnotationIntroduction introduction)
           
 InvocationResponse dynamicInvoke(Object target, Invocation invocation)
           
protected  void finalizeConstructionChain(ArrayList newFieldInterceptors)
           
protected  void finalizeConstructorChain(ArrayList newFieldInterceptors)
           
protected  void finalizeMethodChain(gnu.trove.TLongObjectHashMap newMethodInterceptors)
           
 Interceptor getAdviceInterceptor(AspectDefinition def, String adviceName, Joinpoint joinpoint)
           
 AnnotationRepository getAnnotations()
           
 SimpleMetaData getClassMetaData()
           
 List getClassMetadataBindings()
           
 Class getClazz()
           
 Interceptor[][] getConstructionInterceptors()
           
 Interceptor[][] getConstructorInterceptors()
           
 ConstructorMetaData getConstructorMetaData()
           
 Constructor[] getConstructors()
           
 SimpleMetaData getDefaultMetaData()
           
 FieldMetaData getFieldMetaData()
           
 ArrayList getInterfaceIntroductions()
           
 AspectManager getManager()
           
 MethodInfo getMethodInfo(long hash)
           
 MethodMetaData getMethodMetaData()
           
 String getName()
           
 Object getPerClassAspect(AspectDefinition def)
           
 Object getPerClassAspect(String def)
           
 Set getPerInstanceAspectDefinitions()
           
 Map getPerInstanceJoinpointAspectDefinitions()
           
 boolean hasAnnotation(Class tgt, String annotation)
           
 boolean hasAnnotation(Constructor m, String annotation)
           
 boolean hasAnnotation(javassist.CtClass clazz, String annotation)
           
 boolean hasAnnotation(javassist.CtConstructor member, String annotation)
           
 boolean hasAnnotation(javassist.CtField member, String annotation)
           
 boolean hasAnnotation(javassist.CtMethod member, String annotation)
           
 boolean hasAnnotation(Field m, String annotation)
           
 boolean hasAnnotation(Method m, String annotation)
           
 boolean hasAnnotation(String annotation)
           
 boolean hasAspects()
           
protected  ArrayList initializeConstructionChain()
           
protected  ArrayList initializeConstructorChain()
           
 void newBindingAdded()
          a new binding has been added to the AspectManager, recalculate interceptors
protected abstract  void rebuildInterceptors()
           
 void removeAdviceBinding(AdviceBinding binding)
           
 void removeAdviceBindings(ArrayList bindings)
           
abstract  void removeClassMetaData(ClassMetaDataBinding data)
           
 void removeInterfaceIntroduction(InterfaceIntroduction pointcut)
           
 void removePerClassAspect(AspectDefinition def)
           
 void removePerInstanceAspect(AspectDefinition def)
           
 void removePerInstanceJoinpointAspect(AspectDefinition def)
           
 Object resolveAnnotation(Class annotation)
           
 Object resolveAnnotation(Constructor c, Class annotation)
           
 Object resolveAnnotation(Field f, Class annotation)
           
 Object resolveAnnotation(Method m, Class annotation)
           
 Object resolveAnnotation(Method m, Class[] annotationChoices)
           
protected  void resolveConstructionPointcut(ArrayList newConstructorInterceptors, AdviceBinding binding)
           
protected  void resolveConstructorPointcut(ArrayList newConstructorInterceptors, AdviceBinding binding)
           
protected  void resolveMethodPointcut(gnu.trove.TLongObjectHashMap newMethodInterceptors, AdviceBinding binding)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

adviceBindings

protected HashSet adviceBindings

interfaceIntroductions

protected ArrayList interfaceIntroductions

classMetaDataBindings

protected ArrayList classMetaDataBindings

defaultMetaData

protected SimpleMetaData defaultMetaData

methodMetaData

protected MethodMetaData methodMetaData

fieldMetaData

protected FieldMetaData fieldMetaData

classMetaData

protected SimpleMetaData classMetaData

constructorMetaData

protected ConstructorMetaData constructorMetaData

classAnnotations

protected HashMap classAnnotations

annotations

protected AnnotationRepository annotations

doesHaveAspects

public boolean doesHaveAspects

name

protected String name

aspects

protected EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap aspects

adviceInterceptors

protected HashMap adviceInterceptors

perInstanceAspectDefinitions

protected EDU.oswego.cs.dl.util.concurrent.CopyOnWriteArraySet perInstanceAspectDefinitions

perInstanceJoinpointAspectDefinitions

protected EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap perInstanceJoinpointAspectDefinitions

advisedMethods

protected gnu.trove.TLongObjectHashMap advisedMethods

methodInterceptors

protected gnu.trove.TLongObjectHashMap methodInterceptors

manager

protected AspectManager manager

clazz

protected Class clazz

constructors

protected Constructor[] constructors

constructorInterceptors

protected Interceptor[][] constructorInterceptors

constructionInterceptors

protected Interceptor[][] constructionInterceptors
Constructor Detail

Advisor

public Advisor(String name,
               AspectManager manager)
Method Detail

getMethodInfo

public MethodInfo getMethodInfo(long hash)

getConstructors

public Constructor[] getConstructors()

getConstructorInterceptors

public Interceptor[][] getConstructorInterceptors()

getConstructionInterceptors

public Interceptor[][] getConstructionInterceptors()

getManager

public AspectManager getManager()

getClassMetadataBindings

public List getClassMetadataBindings()

getClassMetaData

public SimpleMetaData getClassMetaData()

getDefaultMetaData

public SimpleMetaData getDefaultMetaData()

getMethodMetaData

public MethodMetaData getMethodMetaData()

getFieldMetaData

public FieldMetaData getFieldMetaData()

getConstructorMetaData

public ConstructorMetaData getConstructorMetaData()

deployAnnotationOverrides

public void deployAnnotationOverrides()

deployMethodAnnotationOverrides

protected void deployMethodAnnotationOverrides(Class theClass,
                                               AnnotationIntroduction introduction)

getAnnotations

public AnnotationRepository getAnnotations()

resolveAnnotation

public Object resolveAnnotation(Class annotation)

hasAnnotation

public boolean hasAnnotation(String annotation)

hasAnnotation

public boolean hasAnnotation(Class tgt,
                             String annotation)

resolveAnnotation

public Object resolveAnnotation(Method m,
                                Class annotation)

resolveAnnotation

public Object resolveAnnotation(Method m,
                                Class[] annotationChoices)

resolveAnnotation

public Object resolveAnnotation(Field f,
                                Class annotation)

resolveAnnotation

public Object resolveAnnotation(Constructor c,
                                Class annotation)

hasAnnotation

public boolean hasAnnotation(Method m,
                             String annotation)

hasAnnotation

public boolean hasAnnotation(Field m,
                             String annotation)

hasAnnotation

public boolean hasAnnotation(Constructor m,
                             String annotation)

hasAnnotation

public boolean hasAnnotation(javassist.CtClass clazz,
                             String annotation)

hasAnnotation

public boolean hasAnnotation(javassist.CtMethod member,
                             String annotation)

hasAnnotation

public boolean hasAnnotation(javassist.CtField member,
                             String annotation)

hasAnnotation

public boolean hasAnnotation(javassist.CtConstructor member,
                             String annotation)

getName

public String getName()

hasAspects

public final boolean hasAspects()

removeAdviceBinding

public void removeAdviceBinding(AdviceBinding binding)

removeAdviceBindings

public void removeAdviceBindings(ArrayList bindings)

newBindingAdded

public void newBindingAdded()
a new binding has been added to the AspectManager, recalculate interceptors


getInterfaceIntroductions

public ArrayList getInterfaceIntroductions()

addInterfaceIntroduction

public void addInterfaceIntroduction(InterfaceIntroduction pointcut)

removeInterfaceIntroduction

public void removeInterfaceIntroduction(InterfaceIntroduction pointcut)

rebuildInterceptors

protected abstract void rebuildInterceptors()

addClassMetaData

public abstract void addClassMetaData(ClassMetaDataBinding data)

removeClassMetaData

public abstract void removeClassMetaData(ClassMetaDataBinding data)

addPerInstanceAspect

public void addPerInstanceAspect(AspectDefinition def)

removePerInstanceAspect

public void removePerInstanceAspect(AspectDefinition def)

getPerInstanceAspectDefinitions

public Set getPerInstanceAspectDefinitions()

addPerInstanceJoinpointAspect

public void addPerInstanceJoinpointAspect(Joinpoint joinpoint,
                                          AspectDefinition def)

removePerInstanceJoinpointAspect

public void removePerInstanceJoinpointAspect(AspectDefinition def)

getPerInstanceJoinpointAspectDefinitions

public Map getPerInstanceJoinpointAspectDefinitions()

getPerClassAspect

public Object getPerClassAspect(AspectDefinition def)

getPerClassAspect

public Object getPerClassAspect(String def)

addPerClassAspect

public void addPerClassAspect(AspectDefinition def)

removePerClassAspect

public void removePerClassAspect(AspectDefinition def)

getAdviceInterceptor

public Interceptor getAdviceInterceptor(AspectDefinition def,
                                        String adviceName,
                                        Joinpoint joinpoint)

addAdviceInterceptor

public void addAdviceInterceptor(AspectDefinition def,
                                 String adviceName,
                                 Interceptor interceptor,
                                 Joinpoint joinpoint)

createInterceptorChain

protected void createInterceptorChain(InterceptorFactory[] factories,
                                      ArrayList newinterceptors,
                                      Joinpoint joinpoint)

resolveMethodPointcut

protected void resolveMethodPointcut(gnu.trove.TLongObjectHashMap newMethodInterceptors,
                                     AdviceBinding binding)

finalizeMethodChain

protected void finalizeMethodChain(gnu.trove.TLongObjectHashMap newMethodInterceptors)

dynamicInvoke

public InvocationResponse dynamicInvoke(Object target,
                                        Invocation invocation)
                                 throws Throwable
Throws:
Throwable

getClazz

public Class getClazz()

initializeConstructorChain

protected ArrayList initializeConstructorChain()

initializeConstructionChain

protected ArrayList initializeConstructionChain()

finalizeConstructorChain

protected void finalizeConstructorChain(ArrayList newFieldInterceptors)

finalizeConstructionChain

protected void finalizeConstructionChain(ArrayList newFieldInterceptors)

resolveConstructorPointcut

protected void resolveConstructorPointcut(ArrayList newConstructorInterceptors,
                                          AdviceBinding binding)

resolveConstructionPointcut

protected void resolveConstructionPointcut(ArrayList newConstructorInterceptors,
                                           AdviceBinding binding)

applyPrecedence

public Interceptor[] applyPrecedence(Interceptor[] interceptors)


Copyright © 2002 JBoss Group, LLC. All Rights Reserved.