abc.weaving.aspectinfo
Class DynamicValuePointcut

java.lang.Object
  extended by abc.weaving.aspectinfo.Syntax
      extended by abc.weaving.aspectinfo.Pointcut
          extended by abc.weaving.aspectinfo.DynamicValuePointcut
Direct Known Subclasses:
Args, TargetAny, ThisAny

public abstract class DynamicValuePointcut
extends Pointcut

A pointcut designator that inspects a dynamic value (this,target,args)

Author:
Ganesh Sittampalam

Nested Class Summary
 
Nested classes/interfaces inherited from class abc.weaving.aspectinfo.Pointcut
Pointcut.DNF
 
Constructor Summary
DynamicValuePointcut(Position pos)
           
 
Method Summary
protected  Pointcut inline(java.util.Hashtable renameEnv, java.util.Hashtable typeEnv, Aspect context, int cflowdepth)
          Inlining should remove all PointcutRefs, and return a pointcut that is alpha-renamed
 
Methods inherited from class abc.weaving.aspectinfo.Pointcut
dnf, freshVar, getFreeVars, matchesAt, normalize, registerSetupAdvice, toString, unify
 
Methods inherited from class abc.weaving.aspectinfo.Syntax
getPosition
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DynamicValuePointcut

public DynamicValuePointcut(Position pos)
Method Detail

inline

protected Pointcut inline(java.util.Hashtable renameEnv,
                          java.util.Hashtable typeEnv,
                          Aspect context,
                          int cflowdepth)
Description copied from class: Pointcut
Inlining should remove all PointcutRefs, and return a pointcut that is alpha-renamed

Specified by:
inline in class Pointcut
Parameters:
renameEnv - A mapping from pointcut names to the Vars they should be renamed to. If a name isn't in the map, it doesn't need to be renamed.
typeEnv - A mapping from pointcut names to AbcTypes. Every variable that can appear free in the pointcut must be listed. The names are those before any renaming takes place.
context - The Aspect in which the root pointcut is defined. This is required because references to abstract pointcuts must be resolved to the concrete pointcut using this aspect.
cflowdepth - The number of surrounding cflows. This is required to determine the correct precedence for the synthetic advice used to implement cflow.
Returns:
The inlined pointcut