org.jboss.aop
Class Domain

java.lang.Object
  extended by org.jboss.aop.AspectManager
      extended by org.jboss.aop.Domain
All Implemented Interfaces:
org.jboss.util.loading.Translator
Direct Known Subclasses:
GeneratedAdvisorDomain, InstanceDomain

public class Domain
extends AspectManager

Comment

Version:
$Revision: 79029 $
Author:
Bill Burke, adrian@jboss.org

Field Summary
protected  boolean hasOwnAnnotationIntroductions
           
protected  boolean hasOwnAnnotationOverrides
           
protected  boolean hasOwnBindings
           
protected  boolean hasOwnClassMetaData
           
protected  boolean hasOwnInterfaceIntroductions
           
protected  boolean hasOwnPointcuts
           
protected  boolean hasOwnPrecedenceDefs
           
protected  boolean hasOwnTypedefs
           
protected  boolean inheritsBindings
           
protected  boolean inheritsDeclarations
           
protected  AspectManager parent
           
protected  boolean parentFirst
           
 
Fields inherited from class org.jboss.aop.AspectManager
advisors, annotationIntroductions, annotationOverrides, arrayBindings, arrayReplacements, aspectDefinitions, bindingCollection, bindings, cflowStacks, classicOrder, classLoaderValidator, classMetaData, classMetaDataLoaders, containers, debugClasses, declares, dynamicCFlows, dynamicStrategy, exclude, ignore, ignoreExpressions, include, includeInvisibleAnnotations, interceptionMarkers, interceptorFactories, interceptorStacks, interfaceIntroductions, lifecycleManager, lock, maintainAdvisorMethodInterceptors, manager, notificationHandler, optimize, perVMAspects, precedenceDefs, sortedPrecedenceDefEntries, subDomainsByName, subDomainsPerClass, subscribedDomainQueueRef, subscribedSubDomains, subscribedSubDomainsQueue, suppressReferenceErrors, suppressTransformationErrors, typedefs, verbose, weavingStrategy
 
Constructor Summary
Domain(AspectManager manager, String name, boolean parentFirst)
           
 
Method Summary
 void addAnnotationIntroduction(AnnotationIntroduction pointcut)
          Register an annotation introduction
 void addAnnotationOverride(AnnotationIntroduction pointcut)
          Register an annotation introduction
 void addBinding(AdviceBinding binding)
          Add an interceptor pointcut with a given name
 void addClassMetaData(ClassMetaDataBinding meta)
           
 void addInterfaceIntroduction(InterfaceIntroduction pointcut)
          Register an introduction pointcut
 void addPointcut(Pointcut pointcut)
          Add an interceptor pointcut with a given name
 void addPrecedence(PrecedenceDef precedenceDef)
           
 void addTypedef(Typedef def)
           
 void attachMetaData(Advisor advisor, Class<?> clazz)
           
protected  ClassifiedBindingAndPointcutCollection createBindingCollection()
          Creates the binding collection to be used as the collection by this domain
 ClassMetaDataLoader findClassMetaDataLoader(String group)
          Every <class-metadata> tag corresponds to a ClassMetaDataLoader.
 AdviceStack getAdviceStack(String name)
          Find an interceptor stack referenced by name ( <stack> )
 List<AnnotationIntroduction> getAnnotationIntroductions()
           
 List<AnnotationIntroduction> getAnnotationOverrides()
           
 Map<String,ArrayReplacement> getArrayReplacements()
           
 AspectDefinition getAspectDefinition(String name)
           
 LinkedHashMap<String,AdviceBinding> getBindings()
          Returns the binding map.
 CFlowStack getCFlowStack(String name)
           
 Map<String,CFlowStack> getCflowStacks()
           
 Map<String,ClassMetaDataBinding> getClassMetaData()
           
 Map<String,ClassMetaDataLoader> getClassMetaDataLoaders()
           
 DomainDefinition getContainer(String name)
           
 String getDomainName()
           
static String getDomainName(Class<?> clazz, boolean forInstance)
           
 DynamicAOPStrategy getDynamicAOPStrategy()
          Returns the dynamic aop strategy to be used.
 DynamicCFlow getDynamicCFlow(String name, ClassLoader cl)
           
 Map<String,DynamicCFlowDefinition> getDynamicCFlows()
           
 ArrayList<String> getExclude()
          Only set on a per vm basis
 ArrayList<String> getIgnore()
          Only set on a per vm basis
 ClassExpression[] getIgnoreExpressions()
          Only set on a per vm basis
 ArrayList<String> getInclude()
          Only set on a per vm basis
 List<String> getIncludedInvisibleAnnotations()
          Only set on a per vm basis
 InterceptionMarkers getInterceptionMarkers(ClassLoader loader)
           
 InterceptorFactory getInterceptorFactory(String name)
          Find the interceptor factory that can be referenced by name.
 Map<String,AdviceStack> getInterceptorStacks()
           
 Map<String,InterfaceIntroduction> getInterfaceIntroductions()
           
 Map<String,LifecycleCallbackBinding> getLifecycleBindings()
           
 String getManagerFQN()
           
 Object getPerVMAspect(AspectDefinition def)
           
 Object getPerVMAspect(String def)
           
 Map<String,Object> getPerVMAspects()
           
 Pointcut getPointcut(String name)
          Find a pointcut of with a given name
 LinkedHashMap<String,PointcutInfo> getPointcutInfos()
           
 LinkedHashMap<String,Pointcut> getPointcuts()
           
 LinkedHashMap<String,PrecedenceDef> getPrecedenceDefs()
           
protected  Map<Class<?>,WeakReference<Domain>> getSubDomainsPerClass()
          Managed by the top-level aspect manager
 Typedef getTypedef(String name)
           
 Map<String,Typedef> getTypedefs()
           
 boolean hasOwnAnnotationIntroductions()
           
 boolean hasOwnAnnotationOverrides()
           
 boolean hasOwnBindings()
           
 boolean hasOwnClassMetaData()
           
 boolean hasOwnDataWithEffectOnAdvices()
           
 boolean hasOwnInterfaceIntroductions()
           
 boolean hasOwnPointcuts()
           
 boolean hasOwnPrecedenceDefs()
           
 boolean hasOwnTypedefs()
           
 boolean isValid()
           
 void removeAnnotationIntroduction(AnnotationIntroduction pointcut)
          remove an annotation pointcut
 void removeAnnotationOverride(AnnotationIntroduction pointcut)
          remove an annotation pointcut
 void removeBinding(String name)
          Remove an interceptor pointcut with a given name
 void removeBindings(ArrayList<String> binds)
           
 void removeClassMetaData(String name)
           
 void removeInterfaceIntroduction(String name)
          remove an introduction pointcut of a certain name
 void removePointcut(String name)
          Remove an interceptor pointcut with a given name
 void removePrecedence(String name)
           
 void removeTypedef(String name)
           
 void setDynamicAOPStrategy(DynamicAOPStrategy strategy)
          Sets the dynamic aop strategy to be used.
 void setInheritsBindings(boolean inheritBindings)
           
 void setInheritsDeclarations(boolean inheritsDeclarations)
          Inherits interceptor, aspect, advice stack definitions
 
Methods inherited from class org.jboss.aop.AspectManager
addAdviceStack, addAdvisorToClassMetaDataBinding, addArrayBinding, addArrayReplacement, addAspectDefinition, addCFlowStack, addClassMetaDataLoader, addContainer, addDeclare, addDynamicCFlow, addInterceptorFactory, addLifecycleBinding, addLifecycleDefinition, addSubDomainByName, addSubDomainPerClass, applyInterfaceIntroductions, applyInterfaceIntroductions, attachMetaData, clearUnregisteredClassLoaders, createPerVmAspect, excludeClass, findAdvisor, findClassPool, findManagerByName, forceResortPrecedenceDefs, getAdvisor, getAdvisor, getAdvisorIfAdvised, getAdvisors, getAnyAdvisorIfAdvised, getArrayBinding, getArrayReplacement, getAspectDefinitions, getBindingCollection, getClassLoaderScopingPolicy, getClassPoolFactory, getDeclares, getDynamicCFlow, getInterceptorFactories, getInterfaceIntroduction, getPrune, getRegisteredClassPool, getRegisteredCLs, getSortedPrecedenceDefEntries, getSubscribedSubDomains, getTempClassAdvisor, getTempClassAdvisorIfNotExist, getTopLevelAspectManager, hasTransformationStarted, ignoreClass, includeClass, initAnnotationIntroductionsMap, initAnnotationOverridesMap, initArrayBindingMap, initArrayReplacementMap, initAspectDefintitionsMap, initCflowStacksMap, initClassMetaDataLoadersMap, initClassMetaDataMap, initContainersMap, initDeclaresMap, initDynamicCflowsMap, initialiseClassAdvisor, initInerceptorStacksMap, initInterceptorFactoriesMap, initInterfaceIntroductionsMap, initPerVMAspectsMap, initPrecedenceDefsMap, initSubDomainsByNameMap, initSubscribedSubDomainsMap, initSubscribedSubDomainsQueueMap, initTypedefsMap, instance, instance, internalRemoveAspectDefintion, internalRemoveClassMetaData, isAdvisorRegistered, isCall, isConstruction, isExecution, isGet, isNonAdvisableClassName, isSet, isWithin, isWithincode, registerClass, registerClassLoader, removeArrayBinding, removeArrayReplacement, removeAspectDefinition, removeCFlowStack, removeClassMetaDataLoader, removeContainer, removeDeclare, removeDynamicCFlow, removeInterceptorFactory, removeInterceptorStack, removeLifecycleBinding, removeLifecycleDefinition, setClassLoaderScopingPolicy, setClassPoolFactory, setExclude, setIgnore, setInclude, setIncludedInvisibleAnnotations, setPrune, subscribeSubDomain, transform, translate, translate, unregisterClassLoader, unsubscribeSubDomain, updateAdvisorsForAddedAnnotationOverride, updateAdvisorsForAddedBinding, updateAdvisorsForAddedClassMetaData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

parent

protected AspectManager parent

parentFirst

protected boolean parentFirst

inheritsDeclarations

protected boolean inheritsDeclarations

inheritsBindings

protected boolean inheritsBindings

hasOwnPointcuts

protected boolean hasOwnPointcuts

hasOwnBindings

protected boolean hasOwnBindings

hasOwnAnnotationIntroductions

protected boolean hasOwnAnnotationIntroductions

hasOwnAnnotationOverrides

protected boolean hasOwnAnnotationOverrides

hasOwnInterfaceIntroductions

protected boolean hasOwnInterfaceIntroductions

hasOwnTypedefs

protected boolean hasOwnTypedefs

hasOwnPrecedenceDefs

protected boolean hasOwnPrecedenceDefs

hasOwnClassMetaData

protected boolean hasOwnClassMetaData
Constructor Detail

Domain

public Domain(AspectManager manager,
              String name,
              boolean parentFirst)
Method Detail

createBindingCollection

protected ClassifiedBindingAndPointcutCollection createBindingCollection()
Creates the binding collection to be used as the collection by this domain

Overrides:
createBindingCollection in class AspectManager
Returns:
a DomainClassifiedBindingAndPointcutCollection
See Also:
Domain#ini

isValid

public boolean isValid()

getDomainName

public String getDomainName()

getManagerFQN

public String getManagerFQN()
Overrides:
getManagerFQN in class AspectManager

getDomainName

public static String getDomainName(Class<?> clazz,
                                   boolean forInstance)

setInheritsDeclarations

public void setInheritsDeclarations(boolean inheritsDeclarations)
Inherits interceptor, aspect, advice stack definitions

Parameters:
inheritsDeclarations -

setInheritsBindings

public void setInheritsBindings(boolean inheritBindings)

getBindings

public LinkedHashMap<String,AdviceBinding> getBindings()
Description copied from class: AspectManager
Returns the binding map.

The returned map must be used for read purposes only. To edit the binding collection, call AspectManager.addBinding(AdviceBinding) and AspectManager.removeBinding(String) instead.

Overrides:
getBindings in class AspectManager
Returns:
the map containing all advice bindings indexed by their names

hasOwnBindings

public boolean hasOwnBindings()

addBinding

public void addBinding(AdviceBinding binding)
Description copied from class: AspectManager
Add an interceptor pointcut with a given name

Overrides:
addBinding in class AspectManager

removeBinding

public void removeBinding(String name)
Description copied from class: AspectManager
Remove an interceptor pointcut with a given name

Overrides:
removeBinding in class AspectManager

removeBindings

public void removeBindings(ArrayList<String> binds)
Overrides:
removeBindings in class AspectManager

getPointcuts

public LinkedHashMap<String,Pointcut> getPointcuts()
Overrides:
getPointcuts in class AspectManager

hasOwnPointcuts

public boolean hasOwnPointcuts()

addPointcut

public void addPointcut(Pointcut pointcut)
Description copied from class: AspectManager
Add an interceptor pointcut with a given name

Overrides:
addPointcut in class AspectManager

removePointcut

public void removePointcut(String name)
Description copied from class: AspectManager
Remove an interceptor pointcut with a given name

Overrides:
removePointcut in class AspectManager

getPointcutInfos

public LinkedHashMap<String,PointcutInfo> getPointcutInfos()
Overrides:
getPointcutInfos in class AspectManager

getAnnotationIntroductions

public List<AnnotationIntroduction> getAnnotationIntroductions()
Overrides:
getAnnotationIntroductions in class AspectManager

getArrayReplacements

public Map<String,ArrayReplacement> getArrayReplacements()
Overrides:
getArrayReplacements in class AspectManager

hasOwnAnnotationIntroductions

public boolean hasOwnAnnotationIntroductions()

addAnnotationIntroduction

public void addAnnotationIntroduction(AnnotationIntroduction pointcut)
Description copied from class: AspectManager
Register an annotation introduction

Overrides:
addAnnotationIntroduction in class AspectManager

removeAnnotationIntroduction

public void removeAnnotationIntroduction(AnnotationIntroduction pointcut)
Description copied from class: AspectManager
remove an annotation pointcut

Overrides:
removeAnnotationIntroduction in class AspectManager

getAnnotationOverrides

public List<AnnotationIntroduction> getAnnotationOverrides()
Overrides:
getAnnotationOverrides in class AspectManager

hasOwnAnnotationOverrides

public boolean hasOwnAnnotationOverrides()

addAnnotationOverride

public void addAnnotationOverride(AnnotationIntroduction pointcut)
Description copied from class: AspectManager
Register an annotation introduction

Overrides:
addAnnotationOverride in class AspectManager

removeAnnotationOverride

public void removeAnnotationOverride(AnnotationIntroduction pointcut)
Description copied from class: AspectManager
remove an annotation pointcut

Overrides:
removeAnnotationOverride in class AspectManager

getInterfaceIntroductions

public Map<String,InterfaceIntroduction> getInterfaceIntroductions()
Overrides:
getInterfaceIntroductions in class AspectManager

hasOwnInterfaceIntroductions

public boolean hasOwnInterfaceIntroductions()

addInterfaceIntroduction

public void addInterfaceIntroduction(InterfaceIntroduction pointcut)
Description copied from class: AspectManager
Register an introduction pointcut

Overrides:
addInterfaceIntroduction in class AspectManager

removeInterfaceIntroduction

public void removeInterfaceIntroduction(String name)
Description copied from class: AspectManager
remove an introduction pointcut of a certain name

Overrides:
removeInterfaceIntroduction in class AspectManager

getTypedefs

public Map<String,Typedef> getTypedefs()
Overrides:
getTypedefs in class AspectManager

hasOwnTypedefs

public boolean hasOwnTypedefs()

addTypedef

public void addTypedef(Typedef def)
                throws Exception
Overrides:
addTypedef in class AspectManager
Throws:
Exception

removeTypedef

public void removeTypedef(String name)
Overrides:
removeTypedef in class AspectManager

getInterceptorStacks

public Map<String,AdviceStack> getInterceptorStacks()
Overrides:
getInterceptorStacks in class AspectManager

getClassMetaDataLoaders

public Map<String,ClassMetaDataLoader> getClassMetaDataLoaders()
Overrides:
getClassMetaDataLoaders in class AspectManager

getCflowStacks

public Map<String,CFlowStack> getCflowStacks()
Overrides:
getCflowStacks in class AspectManager

getDynamicCFlows

public Map<String,DynamicCFlowDefinition> getDynamicCFlows()
Overrides:
getDynamicCFlows in class AspectManager

getPerVMAspects

public Map<String,Object> getPerVMAspects()
Overrides:
getPerVMAspects in class AspectManager

getPrecedenceDefs

public LinkedHashMap<String,PrecedenceDef> getPrecedenceDefs()
Overrides:
getPrecedenceDefs in class AspectManager

hasOwnPrecedenceDefs

public boolean hasOwnPrecedenceDefs()

addPrecedence

public void addPrecedence(PrecedenceDef precedenceDef)
Overrides:
addPrecedence in class AspectManager

removePrecedence

public void removePrecedence(String name)
Overrides:
removePrecedence in class AspectManager

getClassMetaData

public Map<String,ClassMetaDataBinding> getClassMetaData()
Overrides:
getClassMetaData in class AspectManager

hasOwnClassMetaData

public boolean hasOwnClassMetaData()

removeClassMetaData

public void removeClassMetaData(String name)
Overrides:
removeClassMetaData in class AspectManager

addClassMetaData

public void addClassMetaData(ClassMetaDataBinding meta)
Overrides:
addClassMetaData in class AspectManager

hasOwnDataWithEffectOnAdvices

public boolean hasOwnDataWithEffectOnAdvices()

getInterceptorFactory

public InterceptorFactory getInterceptorFactory(String name)
Description copied from class: AspectManager
Find the interceptor factory that can be referenced by name.

Overrides:
getInterceptorFactory in class AspectManager

getAdviceStack

public AdviceStack getAdviceStack(String name)
Description copied from class: AspectManager
Find an interceptor stack referenced by name ( <stack> )

Overrides:
getAdviceStack in class AspectManager

getPerVMAspect

public Object getPerVMAspect(AspectDefinition def)
Overrides:
getPerVMAspect in class AspectManager

getPerVMAspect

public Object getPerVMAspect(String def)
Overrides:
getPerVMAspect in class AspectManager

getAspectDefinition

public AspectDefinition getAspectDefinition(String name)
Overrides:
getAspectDefinition in class AspectManager

getTypedef

public Typedef getTypedef(String name)
Overrides:
getTypedef in class AspectManager

getContainer

public DomainDefinition getContainer(String name)
Overrides:
getContainer in class AspectManager

getPointcut

public Pointcut getPointcut(String name)
Find a pointcut of with a given name

Overrides:
getPointcut in class AspectManager

attachMetaData

public void attachMetaData(Advisor advisor,
                           Class<?> clazz)
Overrides:
attachMetaData in class AspectManager

getCFlowStack

public CFlowStack getCFlowStack(String name)
Overrides:
getCFlowStack in class AspectManager

getDynamicCFlow

public DynamicCFlow getDynamicCFlow(String name,
                                    ClassLoader cl)
Overrides:
getDynamicCFlow in class AspectManager

findClassMetaDataLoader

public ClassMetaDataLoader findClassMetaDataLoader(String group)
Description copied from class: AspectManager
Every <class-metadata> tag corresponds to a ClassMetaDataLoader. The ClassMetaDataLoader knows how to take arbitrary XML and apply it to SimpleMetaData.

Given a group, return the loader for that group

Overrides:
findClassMetaDataLoader in class AspectManager

getLifecycleBindings

public Map<String,LifecycleCallbackBinding> getLifecycleBindings()
Overrides:
getLifecycleBindings in class AspectManager

getInterceptionMarkers

public InterceptionMarkers getInterceptionMarkers(ClassLoader loader)
Overrides:
getInterceptionMarkers in class AspectManager

getSubDomainsPerClass

protected Map<Class<?>,WeakReference<Domain>> getSubDomainsPerClass()
Managed by the top-level aspect manager

Overrides:
getSubDomainsPerClass in class AspectManager

getExclude

public ArrayList<String> getExclude()
Only set on a per vm basis

Overrides:
getExclude in class AspectManager

getInclude

public ArrayList<String> getInclude()
Only set on a per vm basis

Overrides:
getInclude in class AspectManager

getIgnore

public ArrayList<String> getIgnore()
Only set on a per vm basis

Overrides:
getIgnore in class AspectManager

getIgnoreExpressions

public ClassExpression[] getIgnoreExpressions()
Only set on a per vm basis

Overrides:
getIgnoreExpressions in class AspectManager

getIncludedInvisibleAnnotations

public List<String> getIncludedInvisibleAnnotations()
Only set on a per vm basis

Overrides:
getIncludedInvisibleAnnotations in class AspectManager

getDynamicAOPStrategy

public DynamicAOPStrategy getDynamicAOPStrategy()
Description copied from class: AspectManager
Returns the dynamic aop strategy to be used.

Overrides:
getDynamicAOPStrategy in class AspectManager

setDynamicAOPStrategy

public void setDynamicAOPStrategy(DynamicAOPStrategy strategy)
Description copied from class: AspectManager
Sets the dynamic aop strategy to be used. Should be called only before any class is transformed.

Overrides:
setDynamicAOPStrategy in class AspectManager
Parameters:
strategy - the new dynamic aop strategy.


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