abc.aspectj.ast
Class PCIf_c

java.lang.Object
  extended by Node_c
      extended by abc.aspectj.ast.Pointcut_c
          extended by abc.aspectj.ast.PCIf_c
All Implemented Interfaces:
MakesAspectMethods, PCIf, Pointcut, TransformsAspectReflection

public class PCIf_c
extends Pointcut_c
implements PCIf, MakesAspectMethods

Author:
Oege de Moor, Aske Simon Christensen

Field Summary
protected  boolean canRewriteThisJoinPoint
           
protected  Expr expr
           
protected  boolean hasEnclosingJoinPointStaticPart
           
protected  boolean hasJoinPoint
           
protected  boolean hasJoinPointStaticPart
           
protected  LocalInstance thisEnclosingJoinPointStaticPartInstance
           
protected  LocalInstance thisJoinPointInstance
           
protected  LocalInstance thisJoinPointStaticPartInstance
           
 
Fields inherited from class abc.aspectj.ast.Pointcut_c
initialised
 
Constructor Summary
PCIf_c(Position pos, Expr expr)
           
 
Method Summary
 void aspectMethodsEnter(AspectMethods visitor)
           
 Node aspectMethodsLeave(AspectMethods visitor, AJNodeFactory nf, AJTypeSystem ts)
           
 Type childExpectedType(Expr child, AscriptionVisitor av)
           
 void enterAspectReflectionInspect(AspectReflectionInspect v, Node parent)
           
 void enterAspectReflectionRewrite(AspectReflectionRewrite v, AJTypeSystem ts)
           
 Context enterScope(Context c)
           
 MethodDecl exprMethod(AJNodeFactory nf, AJTypeSystem ts, java.util.List formals, ParsedClassType container)
           
 boolean hasEnclosingJoinPointStaticPart()
           
 boolean hasJoinPoint()
           
 boolean hasJoinPointStaticPart()
           
 boolean isDynamic()
           
 void joinpointFormals(Local n)
           
 void leaveAspectReflectionInspect(AspectReflectionInspect v)
           
 Node leaveAspectReflectionRewrite(AspectReflectionRewrite v, AJNodeFactory nf)
           
 PCIf liftMethod(AJNodeFactory nf)
           
 Pointcut makeAIPointcut()
           
 java.util.Set pcRefs()
           
 Precedence precedence()
          Get the precedence of the expression.
 void prettyPrint(CodeWriter w, PrettyPrinter tr)
           
protected  PCIf_c reconstruct(Expr expr)
          Reconstruct the pointcut.
 Node typeCheck(TypeChecker tc)
          Type check the pointcut.
 Node visitChildren(NodeVisitor v)
          Visit the children of the pointcut.
 
Methods inherited from class abc.aspectj.ast.Pointcut_c
checkFormals, mayBind, mustBind, printSubExpr
 
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.Pointcut
checkFormals, mayBind, mustBind, printSubExpr
 

Field Detail

expr

protected Expr expr

hasJoinPoint

protected boolean hasJoinPoint

hasJoinPointStaticPart

protected boolean hasJoinPointStaticPart

hasEnclosingJoinPointStaticPart

protected boolean hasEnclosingJoinPointStaticPart

thisJoinPointInstance

protected LocalInstance thisJoinPointInstance

thisJoinPointStaticPartInstance

protected LocalInstance thisJoinPointStaticPartInstance

thisEnclosingJoinPointStaticPartInstance

protected LocalInstance thisEnclosingJoinPointStaticPartInstance

canRewriteThisJoinPoint

protected boolean canRewriteThisJoinPoint
Constructor Detail

PCIf_c

public PCIf_c(Position pos,
              Expr expr)
Method Detail

precedence

public Precedence precedence()
Description copied from interface: Pointcut
Get the precedence of the expression.

Specified by:
precedence in interface Pointcut
Overrides:
precedence in class Pointcut_c

pcRefs

public java.util.Set pcRefs()
Specified by:
pcRefs in interface Pointcut

isDynamic

public boolean isDynamic()
Specified by:
isDynamic in interface Pointcut

prettyPrint

public void prettyPrint(CodeWriter w,
                        PrettyPrinter tr)

reconstruct

protected PCIf_c reconstruct(Expr expr)
Reconstruct the pointcut.


visitChildren

public Node visitChildren(NodeVisitor v)
Visit the children of the pointcut.


typeCheck

public Node typeCheck(TypeChecker tc)
               throws SemanticException
Type check the pointcut.

Throws:
SemanticException

childExpectedType

public Type childExpectedType(Expr child,
                              AscriptionVisitor av)

hasJoinPointStaticPart

public boolean hasJoinPointStaticPart()

hasJoinPoint

public boolean hasJoinPoint()

hasEnclosingJoinPointStaticPart

public boolean hasEnclosingJoinPointStaticPart()

joinpointFormals

public void joinpointFormals(Local n)
Specified by:
joinpointFormals in interface PCIf

exprMethod

public MethodDecl exprMethod(AJNodeFactory nf,
                             AJTypeSystem ts,
                             java.util.List formals,
                             ParsedClassType container)
Specified by:
exprMethod in interface PCIf

liftMethod

public PCIf liftMethod(AJNodeFactory nf)
Specified by:
liftMethod in interface PCIf

makeAIPointcut

public Pointcut makeAIPointcut()
Specified by:
makeAIPointcut in interface Pointcut

enterScope

public Context enterScope(Context c)

aspectMethodsEnter

public void aspectMethodsEnter(AspectMethods visitor)
Specified by:
aspectMethodsEnter in interface MakesAspectMethods

aspectMethodsLeave

public Node aspectMethodsLeave(AspectMethods visitor,
                               AJNodeFactory nf,
                               AJTypeSystem ts)
Specified by:
aspectMethodsLeave in interface MakesAspectMethods

enterAspectReflectionInspect

public void enterAspectReflectionInspect(AspectReflectionInspect v,
                                         Node parent)
Specified by:
enterAspectReflectionInspect in interface TransformsAspectReflection

leaveAspectReflectionInspect

public void leaveAspectReflectionInspect(AspectReflectionInspect v)
Specified by:
leaveAspectReflectionInspect in interface TransformsAspectReflection

enterAspectReflectionRewrite

public void enterAspectReflectionRewrite(AspectReflectionRewrite v,
                                         AJTypeSystem ts)
Specified by:
enterAspectReflectionRewrite in interface TransformsAspectReflection

leaveAspectReflectionRewrite

public Node leaveAspectReflectionRewrite(AspectReflectionRewrite v,
                                         AJNodeFactory nf)
Specified by:
leaveAspectReflectionRewrite in interface TransformsAspectReflection