abc.aspectj.ast
Interface AdviceDecl

All Superinterfaces:
MakesAspectMethods, TransformsAspectReflection
All Known Subinterfaces:
EAJAdviceDecl
All Known Implementing Classes:
AdviceDecl_c, EAJAdviceDecl_c

public interface AdviceDecl
extends MakesAspectMethods, TransformsAspectReflection

Author:
Oege de Moor, Aske Simon Christensen

Method Summary
 boolean hasJoinPoint()
          does "thisJoinPoint" occur in the advice body?
 boolean hasJoinPointStaticPart()
          does "thisJoinPointStaticPart" occur in the advice body?
 void joinpointFormals(Local n)
          register the use of "thisJoinPoint" etc.
 void localMethod(CodeInstance ci)
          register methods or constructors that are local to the advice, for later use in weaver
 MethodDecl methodDecl(AJNodeFactory nf, AJTypeSystem ts)
          generate a MethodDecl for the advice body
 MethodDecl proceedDecl(AJNodeFactory nf, AJTypeSystem ts)
          generate a dummy MethodDecl for the proceed.
 
Methods inherited from interface abc.aspectj.ast.MakesAspectMethods
aspectMethodsEnter, aspectMethodsLeave
 
Methods inherited from interface abc.aspectj.visit.TransformsAspectReflection
enterAspectReflectionInspect, enterAspectReflectionRewrite, leaveAspectReflectionInspect, leaveAspectReflectionRewrite
 

Method Detail

proceedDecl

MethodDecl proceedDecl(AJNodeFactory nf,
                       AJTypeSystem ts)
generate a dummy MethodDecl for the proceed. Only applies to around advice.


methodDecl

MethodDecl methodDecl(AJNodeFactory nf,
                      AJTypeSystem ts)
generate a MethodDecl for the advice body


joinpointFormals

void joinpointFormals(Local n)
register the use of "thisJoinPoint" etc.

Parameters:
n - test whether this local is "thisJoinPoint" etc();

hasJoinPoint

boolean hasJoinPoint()
does "thisJoinPoint" occur in the advice body?


hasJoinPointStaticPart

boolean hasJoinPointStaticPart()
does "thisJoinPointStaticPart" occur in the advice body?


localMethod

void localMethod(CodeInstance ci)
register methods or constructors that are local to the advice, for later use in weaver

Parameters:
ci - code instance to register