org.codehaus.aspectwerkz.definition
Class SystemDefinition

java.lang.Object
  extended by org.codehaus.aspectwerkz.definition.SystemDefinition

public class SystemDefinition
extends Object

TODO clean up - remove methods not used, refactor etc.

Abstraction of the system definition, defines the aspect system.

Author:
Jonas BonŽr , Alexandre Vasseur

Field Summary
static Map EMPTY_HASH_MAP
          Empty hash map.
 
Constructor Summary
SystemDefinition(String uuid)
          Creates a new instance, creates and sets the system cflow aspect.
 
Method Summary
 void addAspect(AspectDefinition aspectDef)
          Adds a new aspect definition For each of its bounded pointcut, register cflow aspects as necessary.
 void addAspectOverwriteIfExists(AspectDefinition aspectDef)
          Adds a new aspect definition, overwrites the previous one with the same name (if there is one).
 void addDeploymentScope(DeploymentScope deploymentScope)
          Adds a deployment scope to the system.
 void addExcludePackage(String excludePackage)
          Adds a new exclude package.
 void addIncludePackage(String includePackage)
          Adds a new include package.
 void addMixinDefinition(MixinDefinition mixinDef)
          Adds a new mixin definition.
 void addPreparePackage(String preparePackage)
          Adds a new prepare package.
static SystemDefinition createVirtualDefinitionAt(ClassLoader loader)
          Create a new virtual system definition for the given loader and add the virtual aspect in it.
 boolean equals(Object o)
           
 Collection getAdviceDefinitions()
          Returns a collection with the advice definitions registered.
 AspectDefinition getAspectDefinition(String name)
          Returns a specific aspect definition.
 Collection getAspectDefinitions()
          Returns a collection with the aspect definitions registered.
 DeploymentScope getDeploymentScope(String name)
          Returns the deployment scope with the name specified.
 Collection getDeploymentScopes()
          Returns a collection with all deployment scopes in the system.
 Set getExcludePackages()
          Returns the exclude packages.
 Set getIncludePackages()
          Returns the include packages.
 List getInterfaceIntroductionDefinitions(ExpressionContext ctx)
          Returns the interface introductions for a certain class merged with the implementation based introductions as well.
 Collection getMixinDefinitions()
          Returns a collection with the mixin definitions registered.
 List getMixinDefinitions(ExpressionContext ctx)
          Returns the mixin definitions matching a specfic expression.
 Set getPreparePackages()
          Returns the prepare packages.
 String getUuid()
          Returns the UUID for the definition.
 int hashCode()
           
 boolean hasIntroducedInterface(ExpressionContext ctx)
          Checks if a class is advised with an interface introduction.
 boolean hasIntroducedInterface(ExpressionContext[] ctxs)
          Checks if a class is advised with an interface introduction.
 boolean hasMixin(ExpressionContext ctx)
          Checks if a class has an mixin.
 boolean hasMixin(ExpressionContext[] ctxs)
          Checks if a class has an mixin.
 boolean hasPointcut(ExpressionContext ctx)
          Checks if a context has a pointcut.
 boolean inExcludePackage(String className)
          Checks if a class should be excluded.
 boolean inIncludePackage(String className)
          Checks if a class should be included.
 boolean inPreparePackage(String className)
          Checks if a class is in prepare declaration
 boolean isAdvised(ExpressionContext ctx)
          Checks if a class is advised.
 boolean isAdvised(ExpressionContext[] ctxs)
          Checks if a class is advised.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EMPTY_HASH_MAP

public static final Map EMPTY_HASH_MAP
Empty hash map.

Constructor Detail

SystemDefinition

public SystemDefinition(String uuid)
Creates a new instance, creates and sets the system cflow aspect.

Method Detail

getUuid

public String getUuid()
Returns the UUID for the definition.

Returns:
the UUID

getIncludePackages

public Set getIncludePackages()
Returns the include packages.

Returns:
the include packages

getExcludePackages

public Set getExcludePackages()
Returns the exclude packages.

Returns:
the exclude packages

getAspectDefinitions

public Collection getAspectDefinitions()
Returns a collection with the aspect definitions registered.

Returns:
the aspect definitions

getMixinDefinitions

public Collection getMixinDefinitions()
Returns a collection with the mixin definitions registered.

Returns:
the mixin definitions

getAdviceDefinitions

public Collection getAdviceDefinitions()
Returns a collection with the advice definitions registered.

Returns:
the advice definitions

getAspectDefinition

public AspectDefinition getAspectDefinition(String name)
Returns a specific aspect definition.

Parameters:
name - the name of the aspect definition
Returns:
the aspect definition

getMixinDefinitions

public List getMixinDefinitions(ExpressionContext ctx)
Returns the mixin definitions matching a specfic expression.

Parameters:
ctx - the expression context
Returns:
a list with the mixin definitions

getInterfaceIntroductionDefinitions

public List getInterfaceIntroductionDefinitions(ExpressionContext ctx)
Returns the interface introductions for a certain class merged with the implementation based introductions as well.

Parameters:
ctx - the expression context
Returns:
the names

addAspect

public void addAspect(AspectDefinition aspectDef)
Adds a new aspect definition For each of its bounded pointcut, register cflow aspects as necessary.

Parameters:
aspectDef - the aspect definition

addAspectOverwriteIfExists

public void addAspectOverwriteIfExists(AspectDefinition aspectDef)
Adds a new aspect definition, overwrites the previous one with the same name (if there is one).

Parameters:
aspectDef - the aspect definition

addMixinDefinition

public void addMixinDefinition(MixinDefinition mixinDef)
Adds a new mixin definition.

Parameters:
mixinDef - the mixin definition

addIncludePackage

public void addIncludePackage(String includePackage)
Adds a new include package.

Parameters:
includePackage - the new include package

addExcludePackage

public void addExcludePackage(String excludePackage)
Adds a new exclude package.

Parameters:
excludePackage - the new exclude package

addPreparePackage

public void addPreparePackage(String preparePackage)
Adds a new prepare package.

Parameters:
preparePackage - the new prepare package

getPreparePackages

public Set getPreparePackages()
Returns the prepare packages.

Returns:

inIncludePackage

public boolean inIncludePackage(String className)
Checks if a class should be included.

Parameters:
className - the name or the class
Returns:
boolean

inExcludePackage

public boolean inExcludePackage(String className)
Checks if a class should be excluded.

Parameters:
className - the name or the class
Returns:
boolean

inPreparePackage

public boolean inPreparePackage(String className)
Checks if a class is in prepare declaration

Parameters:
className - the name or the class
Returns:
boolean

hasPointcut

public boolean hasPointcut(ExpressionContext ctx)
Checks if a context has a pointcut.

Parameters:
ctx - the expression context
Returns:
boolean

isAdvised

public boolean isAdvised(ExpressionContext[] ctxs)
Checks if a class is advised.

Parameters:
ctxs - an array with the expression contexts
Returns:
boolean

isAdvised

public boolean isAdvised(ExpressionContext ctx)
Checks if a class is advised.

Parameters:
ctx - the expression context
Returns:
boolean

hasMixin

public boolean hasMixin(ExpressionContext[] ctxs)
Checks if a class has an mixin.

Parameters:
ctxs - an array with the expression contexts
Returns:
boolean

hasMixin

public boolean hasMixin(ExpressionContext ctx)
Checks if a class has an mixin.

Parameters:
ctx - the expression context
Returns:
boolean

hasIntroducedInterface

public boolean hasIntroducedInterface(ExpressionContext[] ctxs)
Checks if a class is advised with an interface introduction.

Parameters:
ctxs - the expression contexts
Returns:
boolean

hasIntroducedInterface

public boolean hasIntroducedInterface(ExpressionContext ctx)
Checks if a class is advised with an interface introduction.

Parameters:
ctx - the expression context
Returns:
boolean

getDeploymentScopes

public Collection getDeploymentScopes()
Returns a collection with all deployment scopes in the system.

Returns:
a collection with all deployment scopes in the system

getDeploymentScope

public DeploymentScope getDeploymentScope(String name)
Returns the deployment scope with the name specified.

Parameters:
name - the name of the deployment scope
Returns:
the deployment scope with the name specified

addDeploymentScope

public void addDeploymentScope(DeploymentScope deploymentScope)
Adds a deployment scope to the system.

Parameters:
deploymentScope - the deployment scope

equals

public boolean equals(Object o)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

createVirtualDefinitionAt

public static SystemDefinition createVirtualDefinitionAt(ClassLoader loader)
Create a new virtual system definition for the given loader and add the virtual aspect in it.

Parameters:
loader -
Returns:


Copyright © 2002-2005 Jonas Bonér, Alexandre Vasseur. All Rights Reserved.