Chapter 2. Quick ref

2.1. Aspects

XML

       
             
   <aspect {name} [class |factory] scope>
      [<attribute name></attribute>]*
      [<advisor-attribute  name ></advisor-attribute>]
      [<instance-advisor-attribute name ></instance-advisor-attribute>]
      [<joinpoint-attribute  name ></joinpoint-attribute>]
      [random xml]
   </aspect>
          

Annotation

Usage: class

       
   @Aspect ([class|factory], scope)
         

2.2. Interceptors

XML

   
                       
   <interceptor {name} [class|factory] scope />
   	[<attribute name ></attribute>]*
   	[<advisor-attribute name ></advisor-attribute>]
   	[<instance-advisor-attribute name></instance-advisor-attribute>]
   	[<joinpoint-attribute name ></joinpoint-attribute>]
   	[random xml]
   <interceptor>
             
         

Annotation

Usage: class

       
   @InterceptorDef ([class|factory], scope)
         

2.3. Bindings

XML

    
                      
   <bind {name} pointcut {cflow} >
      [ <interceptor-ref name/> |
        <stack-ref name/> |
        <advice aspect name/>  ]*
   </bind>
             
         

Annotation

Usage: class (if annotated @InterceptorDef), method (if class annotated @Aspect)

       
   Bind (pointcut {, cflow} )
         

2.4. Stacks

XML

       
                      
   <stack name>
      [ <interceptor-ref name /> |
        <stack-ref name /> |
        <interceptor [class |factory] scope /> |
        <advice aspect name />  ]+
   </stack>
             
         

Annotation

Usage: N/A

2.5. Pointcuts

XML

     
            
   <pointcut name expr /> 
            
         

Annotation

Usage:field in @Aspect or @InterceptorDef annotated class

       
   @PointcutDef (expr)
         

2.6. Interface Introductions

XML

       
            
   <introduction [class|expr] >
   	<interfaces></interfaces>
   </introduction>
            
         

Annotation

Usage:field in @Aspect or @InterceptorDef annotated class

       
   @Introduction ([target|typeExpression], interfaces)
         

2.7. Mixins

XML

       
                   
   <introduction [class|expr] >
      [
   	<mixin {transient} >
   	    <interfaces></interfaces>
   	    <class></class>
   	    <construction></construction>
   	</mixin>		
      ]*
   </introduction>
             
         

Annotation

Usage:field in @Aspect or @InterceptorDef annotated class. The method returns the mixin class type

       
   @Mixin ([target|typeExpression], interfaces, isTransient)
         

2.8. Annotation Introductions

XML

       
                
   <annotation-introduction expr invisible ></annotation-introduction>
                     
         

Annotation

Usage:field in @Aspect or @InterceptorDef annotated class.

    
   @AnnotationIntroductionDef (expr, invisible, annotation)
         

2.9. CFlow Stack

XML

 
                
   <cflow-stack name>
      [<called></called> | <not-called></not-called>]*
   <cflow-stack>      
                     
         

Annotation

Usage:field in @Aspect or @InterceptorDef annotated class.

       
   @CFlowStackDef (cflows)
         
Where the cflows entries must be of type
       
   @CFlowDef (expr, called)
         

2.10. Typedefs

XML

 
                
   <typedef name expr />
                     
         

Annotation

Usage:field in @Aspect or @InterceptorDef annotated class.

       
   @TypeDef (expr)
         

2.11. Dynamic CFlow

XML

 
                
   <dynamic-cflow name class />
                     
         

Annotation

Usage:class.

       
   @DynamicCFlowDef (expr)
         

2.12. Prepare

XML

 
                
   <prepare expr />
                     
         

Annotation

Usage:field in @Aspect or @InterceptorDef annotated class.

       
   @Prepare (expr)
         

2.13. Metadata

XML

 
                
   <metadata tag class>
      [<default>[any xml tags with content]*</default>]*
      [<class>[any xml tags with content]*</class>]*
      [<method expr>[any xml tags with content]*</method>]*
      [<constructor expr>[any xml tags with content]*</constructor>]*
      [<field expr>[any xml tags with content]*</field>]*   
   </metadata>
                
         

Annotation

Usage: N/A.

2.14. Metadata Loaders

XML

 
                
   <metadata-loader tag class>
      [arbitrary xml]
   </metadata-loader>
                
         

Annotation

Usage: N/A.