abc.ra.ast
Class TMFromRelTMDecl_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.TMFromRelTMDecl_c
All Implemented Interfaces:
AdviceDecl, MakesAspectMethods, ContainsAspectInfo, TransformsAspectReflection, TMDecl

public class TMFromRelTMDecl_c
extends TMDecl_c
implements TMDecl

A tracematch generated from a relational tracematch. This adds associate and release symbols and rewrites the pattern. A regular expression r becomes transformed to associate r. Also, formals of the relational aspect are added and a state variable is generated.

Author:
Eric Bodden

Field Summary
static java.lang.String INTERNAL_STATE_VAR_SUFFIX
          Suffix for internal state variables.
 
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
TMFromRelTMDecl_c(Position 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, RelAspectDecl container, RelTMDecl_c originator, RANodeFactory nf)
           
 
Method Summary
static java.lang.String stateVariableName(java.lang.String tracematch_name)
          Generates the unique state variable name for a tracematch.
 void update(GlobalAspectInfo gai, Aspect current_aspect)
          Mostly copied from TMDeclupdate(GlobalAspectInfo, Aspect).
 
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, typeCheck, 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
 

Field Detail

INTERNAL_STATE_VAR_SUFFIX

public static final java.lang.String INTERNAL_STATE_VAR_SUFFIX
Suffix for internal state variables.

See Also:
Constant Field Values
Constructor Detail

TMFromRelTMDecl_c

public TMFromRelTMDecl_c(Position 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,
                         RelAspectDecl container,
                         RelTMDecl_c originator,
                         RANodeFactory nf)
Method Detail

stateVariableName

public static java.lang.String stateVariableName(java.lang.String tracematch_name)
Generates the unique state variable name for a tracematch.


update

public void update(GlobalAspectInfo gai,
                   Aspect current_aspect)
Mostly copied from TMDeclupdate(GlobalAspectInfo, Aspect). Just returns a RATraceMatch instead of a TraceMatch.

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