abc.tm.ast
Class PerSymbolAdviceDecl_c

java.lang.Object
  extended by MethodDecl_c
      extended by abc.aspectj.extension.AJMethodDecl_c
          extended by abc.aspectj.ast.AdviceBody_c
              extended by abc.aspectj.ast.AdviceDecl_c
                  extended by abc.tm.ast.PerSymbolAdviceDecl_c
All Implemented Interfaces:
AdviceDecl, MakesAspectMethods, ContainsAspectInfo, TransformsAspectReflection, TMAdviceDecl
Direct Known Subclasses:
CustomWarningPerSymbolAdviceDecl_c

public class PerSymbolAdviceDecl_c
extends AdviceDecl_c
implements TMAdviceDecl

Author:
Julian Tibble, Eric Bodden This class is for compiler-generated advice for implementing TraceMatches. This advice requires different type-checking and precedence rules to normal advice.

Field Summary
protected  SymbolDecl sym
           
protected  java.lang.String tm_id
           
protected  Position tm_pos
           
 
Fields inherited from class abc.aspectj.ast.AdviceDecl_c
pc, retval, spec
 
Fields inherited from class abc.aspectj.ast.AdviceBody_c
canRewriteThisJoinPoint, hasEnclosingJoinPointStaticPart, hasJoinPoint, hasJoinPointStaticPart, isAroundAdvice, methodsInAdvice, thisEnclosingJoinPointStaticPartInstance, thisJoinPointInstance, thisJoinPointStaticPartInstance
 
Fields inherited from interface abc.tm.ast.TMAdviceDecl
BODY, OTHER, SOME, SYNCH
 
Constructor Summary
PerSymbolAdviceDecl_c(Position pos, Flags flags, AdviceSpec spec, java.util.List throwTypes, Pointcut pc, Block body, java.lang.String tm_id, SymbolDecl sym, Position tm_pos)
           
 
Method Summary
 Node typeCheck(TypeChecker tc)
          Type check the advice: first the usual method checks, then whether the "throwing" result is actually throwable
 void update(GlobalAspectInfo gai, Aspect current_aspect)
          Called by the AspectInfoHarvester to tell the node to put all relevant information into the GlobalAspectInfo.
 
Methods inherited from class abc.aspectj.ast.AdviceDecl_c
acceptCFG, addExtraFormals, adviceSignature, disambiguateEnter, enterScope, entry, prettyPrint, proceedDecl, reconstruct, visitChildren
 
Methods inherited from class abc.aspectj.ast.AdviceBody_c
aspectMethodsEnter, aspectMethodsLeave, buildTypes, dummyVal, enterAspectReflectionInspect, enterAspectReflectionRewrite, enterScope, hasEnclosingJoinPointStaticPart, hasJoinPoint, hasJoinPointStaticPart, joinpointFormals, leaveAspectReflectionInspect, leaveAspectReflectionRewrite, localMethod, makeMethodInstance, methodDecl
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface abc.aspectj.ast.AdviceDecl
hasJoinPoint, hasJoinPointStaticPart, joinpointFormals, localMethod, methodDecl, proceedDecl
 
Methods inherited from interface abc.aspectj.ast.MakesAspectMethods
aspectMethodsEnter, aspectMethodsLeave
 
Methods inherited from interface abc.aspectj.visit.TransformsAspectReflection
enterAspectReflectionInspect, enterAspectReflectionRewrite, leaveAspectReflectionInspect, leaveAspectReflectionRewrite
 

Field Detail

tm_id

protected java.lang.String tm_id

tm_pos

protected Position tm_pos

sym

protected SymbolDecl sym
Constructor Detail

PerSymbolAdviceDecl_c

public PerSymbolAdviceDecl_c(Position pos,
                             Flags flags,
                             AdviceSpec spec,
                             java.util.List throwTypes,
                             Pointcut pc,
                             Block body,
                             java.lang.String tm_id,
                             SymbolDecl sym,
                             Position tm_pos)
Method Detail

typeCheck

public Node typeCheck(TypeChecker tc)
               throws SemanticException
Description copied from class: AdviceDecl_c
Type check the advice: first the usual method checks, then whether the "throwing" result is actually throwable

Overrides:
typeCheck in class AdviceDecl_c
Throws:
SemanticException

update

public void update(GlobalAspectInfo gai,
                   Aspect current_aspect)
Description copied from interface: ContainsAspectInfo
Called by the AspectInfoHarvester to tell the node to put all relevant information into the GlobalAspectInfo.

Specified by:
update in interface ContainsAspectInfo
Overrides:
update in class AdviceDecl_c
Parameters:
gai - the target of the information.
current_aspect - the aspect currently being traversed.