abc.ra.ast
Class RelTMDecl_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.tm.ast.TMDecl_c
                  extended by abc.ra.ast.RelTMDecl_c
All Implemented Interfaces:
AdviceDecl, MakesAspectMethods, ContainsAspectInfo, TransformsAspectReflection, RelTMDecl, TMDecl
Direct Known Subclasses:
RelAdviceTMDecl_c

public class RelTMDecl_c
extends TMDecl_c
implements RelTMDecl

Declaration of a relational tracematch. Such a tracematch has access to relational aspect formals.

Author:
Eric Bodden

Field Summary
 
Fields inherited from class abc.tm.ast.TMDecl_c
after_pc, after_spec, before_around_pc, before_around_spec, frequent_symbols, isAround, isPerThread, regex, some_advice, sym_to_advice_name, sym_to_vars, symbols, synch_advice, tracematch_name
 
Fields inherited from class abc.aspectj.ast.AdviceBody_c
canRewriteThisJoinPoint, hasEnclosingJoinPointStaticPart, hasJoinPoint, hasJoinPointStaticPart, isAroundAdvice, methodsInAdvice, thisEnclosingJoinPointStaticPartInstance, thisJoinPointInstance, thisJoinPointStaticPartInstance
 
Constructor Summary
RelTMDecl_c(Position pos, Position body_pos, TMModsAndType mods_and_type, java.lang.String tracematch_name, java.util.List formals, java.util.List throwTypes, java.util.List symbols, java.util.List frequent_symbols, Regex regex, Block body)
           
 
Method Summary
 TMDecl genNormalTraceMatch(RelAspectDecl container, RANodeFactory nf, TypeSystem ts)
          Generates a TMFromRelTMDecl_c tracematch from this relational tracematch.
 Node typeCheck(TypeChecker tc)
          Typechecks this relational advice.
 
Methods inherited from class abc.tm.ast.TMDecl_c
acceptCFG, adviceSignature, aroundTypes, aroundVars, aspectMethodsEnter, bodyAdviceFormals, checkAroundSymbols, checkAroundVars, checkBinding, checkForEmptyTrace, disambiguateEnter, enterScope, formalFor, generateImplementationAdvice, makeEventAdvice, makeSymbolAdvice, mustBind, orderedSymToVars, orPC, prettyPrint, proceedDecl, reconstruct, thisJoinPointVariables, update, visitChildren, weavingFormals
 
Methods inherited from class abc.aspectj.ast.AdviceBody_c
addExtraFormals, aspectMethodsLeave, buildTypes, dummyVal, enterAspectReflectionInspect, enterAspectReflectionRewrite, enterScope, entry, 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.tm.ast.TMDecl
generateImplementationAdvice
 
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
 

Constructor Detail

RelTMDecl_c

public RelTMDecl_c(Position pos,
                   Position body_pos,
                   TMModsAndType mods_and_type,
                   java.lang.String tracematch_name,
                   java.util.List formals,
                   java.util.List throwTypes,
                   java.util.List symbols,
                   java.util.List frequent_symbols,
                   Regex regex,
                   Block body)
Method Detail

genNormalTraceMatch

public TMDecl genNormalTraceMatch(RelAspectDecl container,
                                  RANodeFactory nf,
                                  TypeSystem ts)
Generates a TMFromRelTMDecl_c tracematch from this relational tracematch.

Specified by:
genNormalTraceMatch in interface RelTMDecl

typeCheck

public Node typeCheck(TypeChecker tc)
               throws SemanticException
Typechecks this relational advice. The tracematch may only be contained in a relational aspect. Also, it may not declare any tracematch formals that have the same name as any of the relational aspect formals.

Overrides:
typeCheck in class TMDecl_c
Throws:
SemanticException