org.aspectj.weaver.patterns
Class PerThisOrTargetPointcutVisitor

java.lang.Object
  extended by org.aspectj.weaver.patterns.AbstractPatternNodeVisitor
      extended by org.aspectj.weaver.patterns.PerThisOrTargetPointcutVisitor
All Implemented Interfaces:
PatternNodeVisitor

public class PerThisOrTargetPointcutVisitor
extends AbstractPatternNodeVisitor

A visitor that turns a pointcut into a type pattern equivalent for a perthis or pertarget matching: - pertarget(target(Foo)) => Foo+ (this one is a special case..) - pertarget(execution(* Foo.do()) => Foo - perthis(call(* Foo.do()) => * - perthis(!call(* Foo.do()) => * (see how the ! has been absorbed here..)

Author:
Alexandre Vasseur

Constructor Summary
PerThisOrTargetPointcutVisitor(boolean isTarget, ResolvedType fromAspectType)
           
 
Method Summary
 TypePattern getPerTypePointcut(Pointcut perClausePointcut)
           
 java.lang.Object visit(AndPointcut node, java.lang.Object data)
           
 java.lang.Object visit(AnnotationPointcut node, java.lang.Object data)
           
 java.lang.Object visit(ArgsAnnotationPointcut node, java.lang.Object data)
           
 java.lang.Object visit(ArgsPointcut node, java.lang.Object data)
           
 java.lang.Object visit(CflowPointcut node, java.lang.Object data)
           
 java.lang.Object visit(ConcreteCflowPointcut node, java.lang.Object data)
           
 java.lang.Object visit(HandlerPointcut node, java.lang.Object data)
           
 java.lang.Object visit(IfPointcut node, java.lang.Object data)
           
 java.lang.Object visit(KindedPointcut node, java.lang.Object data)
           
 java.lang.Object visit(NotPointcut node, java.lang.Object data)
           
 java.lang.Object visit(OrPointcut node, java.lang.Object data)
           
 java.lang.Object visit(org.aspectj.weaver.patterns.Pointcut.MatchesNothingPointcut node, java.lang.Object data)
           
 java.lang.Object visit(ReferencePointcut node, java.lang.Object data)
           
 java.lang.Object visit(ThisOrTargetAnnotationPointcut node, java.lang.Object data)
           
 java.lang.Object visit(ThisOrTargetPointcut node, java.lang.Object data)
           
 java.lang.Object visit(WithinAnnotationPointcut node, java.lang.Object data)
           
 java.lang.Object visit(WithinCodeAnnotationPointcut node, java.lang.Object data)
           
 java.lang.Object visit(WithincodePointcut node, java.lang.Object data)
           
 java.lang.Object visit(WithinPointcut node, java.lang.Object data)
           
 
Methods inherited from class org.aspectj.weaver.patterns.AbstractPatternNodeVisitor
visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PerThisOrTargetPointcutVisitor

public PerThisOrTargetPointcutVisitor(boolean isTarget,
                                      ResolvedType fromAspectType)
Method Detail

getPerTypePointcut

public TypePattern getPerTypePointcut(Pointcut perClausePointcut)

visit

public java.lang.Object visit(WithinPointcut node,
                              java.lang.Object data)
Specified by:
visit in interface PatternNodeVisitor
Overrides:
visit in class AbstractPatternNodeVisitor

visit

public java.lang.Object visit(WithincodePointcut node,
                              java.lang.Object data)
Specified by:
visit in interface PatternNodeVisitor
Overrides:
visit in class AbstractPatternNodeVisitor

visit

public java.lang.Object visit(WithinAnnotationPointcut node,
                              java.lang.Object data)
Specified by:
visit in interface PatternNodeVisitor
Overrides:
visit in class AbstractPatternNodeVisitor

visit

public java.lang.Object visit(WithinCodeAnnotationPointcut node,
                              java.lang.Object data)
Specified by:
visit in interface PatternNodeVisitor
Overrides:
visit in class AbstractPatternNodeVisitor

visit

public java.lang.Object visit(KindedPointcut node,
                              java.lang.Object data)
Specified by:
visit in interface PatternNodeVisitor
Overrides:
visit in class AbstractPatternNodeVisitor

visit

public java.lang.Object visit(AndPointcut node,
                              java.lang.Object data)
Specified by:
visit in interface PatternNodeVisitor
Overrides:
visit in class AbstractPatternNodeVisitor

visit

public java.lang.Object visit(OrPointcut node,
                              java.lang.Object data)
Specified by:
visit in interface PatternNodeVisitor
Overrides:
visit in class AbstractPatternNodeVisitor

visit

public java.lang.Object visit(NotPointcut node,
                              java.lang.Object data)
Specified by:
visit in interface PatternNodeVisitor
Overrides:
visit in class AbstractPatternNodeVisitor

visit

public java.lang.Object visit(ThisOrTargetAnnotationPointcut node,
                              java.lang.Object data)
Specified by:
visit in interface PatternNodeVisitor
Overrides:
visit in class AbstractPatternNodeVisitor

visit

public java.lang.Object visit(ThisOrTargetPointcut node,
                              java.lang.Object data)
Specified by:
visit in interface PatternNodeVisitor
Overrides:
visit in class AbstractPatternNodeVisitor

visit

public java.lang.Object visit(ReferencePointcut node,
                              java.lang.Object data)
Specified by:
visit in interface PatternNodeVisitor
Overrides:
visit in class AbstractPatternNodeVisitor

visit

public java.lang.Object visit(IfPointcut node,
                              java.lang.Object data)
Specified by:
visit in interface PatternNodeVisitor
Overrides:
visit in class AbstractPatternNodeVisitor

visit

public java.lang.Object visit(HandlerPointcut node,
                              java.lang.Object data)
Specified by:
visit in interface PatternNodeVisitor
Overrides:
visit in class AbstractPatternNodeVisitor

visit

public java.lang.Object visit(CflowPointcut node,
                              java.lang.Object data)
Specified by:
visit in interface PatternNodeVisitor
Overrides:
visit in class AbstractPatternNodeVisitor

visit

public java.lang.Object visit(ConcreteCflowPointcut node,
                              java.lang.Object data)
Specified by:
visit in interface PatternNodeVisitor
Overrides:
visit in class AbstractPatternNodeVisitor

visit

public java.lang.Object visit(ArgsPointcut node,
                              java.lang.Object data)
Specified by:
visit in interface PatternNodeVisitor
Overrides:
visit in class AbstractPatternNodeVisitor

visit

public java.lang.Object visit(ArgsAnnotationPointcut node,
                              java.lang.Object data)
Specified by:
visit in interface PatternNodeVisitor
Overrides:
visit in class AbstractPatternNodeVisitor

visit

public java.lang.Object visit(AnnotationPointcut node,
                              java.lang.Object data)
Specified by:
visit in interface PatternNodeVisitor
Overrides:
visit in class AbstractPatternNodeVisitor

visit

public java.lang.Object visit(org.aspectj.weaver.patterns.Pointcut.MatchesNothingPointcut node,
                              java.lang.Object data)
Specified by:
visit in interface PatternNodeVisitor
Overrides:
visit in class AbstractPatternNodeVisitor