org.aspectj.weaver.patterns
Class AnnotationPointcut

java.lang.Object
  extended by org.aspectj.weaver.patterns.PatternNode
      extended by org.aspectj.weaver.patterns.Pointcut
          extended by org.aspectj.weaver.patterns.NameBindingPointcut
              extended by org.aspectj.weaver.patterns.AnnotationPointcut
All Implemented Interfaces:
IHasPosition, IHasSourceLocation

public class AnnotationPointcut
extends NameBindingPointcut

(at)Annotation((at)Foo) or (at)Annotation(foo)

Matches any join point where the subject of the join point has an annotation matching the annotationTypePattern:
Join Point Kind - Subject
================================
method call - the target method
method execution - the method
constructor call - the constructor
constructor execution - the constructor
get - the target field
set - the target field
adviceexecution - the advice
initialization - the constructor
preinitialization - the constructor
staticinitialization - the type being initialized
handler - the declared type of the handled exception


Nested Class Summary
 
Nested classes/interfaces inherited from class org.aspectj.weaver.patterns.Pointcut
Pointcut.State
 
Field Summary
 
Fields inherited from class org.aspectj.weaver.patterns.Pointcut
AND, ANNOTATION, ARGS, ATARGS, ATTHIS_OR_TARGET, ATWITHIN, ATWITHINCODE, CFLOW, CONCRETE, EMPTY_STRING_ARRAY, HANDLER, hasBeenParameterized, IF, IF_FALSE, IF_TRUE, KINDED, lastMatchedShadowId, m_ignoreUnboundBindingForNames, NONE, NOT, OR, pointcutKind, REFERENCE, RESOLVED, state, SYMBOLIC, THIS_OR_TARGET, USER_EXTENSION, WITHIN, WITHINCODE
 
Fields inherited from class org.aspectj.weaver.patterns.PatternNode
end, sourceContext, start
 
Constructor Summary
AnnotationPointcut(ExactAnnotationTypePattern type)
           
AnnotationPointcut(ExactAnnotationTypePattern type, ShadowMunger munger)
           
 
Method Summary
 java.lang.Object accept(PatternNodeVisitor visitor, java.lang.Object data)
           
 void buildDeclarationText()
           
protected  Pointcut concretize1(ResolvedType inAspect, ResolvedType declaringType, IntMap bindings)
          Resolves and removes ReferencePointcuts, replacing with basic ones
 int couldMatchKinds()
          The set of ShadowKinds that this Pointcut could possibly match - an int whose bits are set according to the Kinds specified in Shadow.java
 boolean equals(java.lang.Object other)
           
 FuzzyBoolean fastMatch(FastMatchInfo info)
          Could I match any shadows in the code defined within this type?
protected  Test findResidueInternal(Shadow shadow, ExposedState state)
           
 ExactAnnotationTypePattern getAnnotationTypePattern()
           
 java.util.List getBindingAnnotationTypePatterns()
           
 java.util.List getBindingTypePatterns()
           
 int hashCode()
           
protected  FuzzyBoolean matchInternal(Shadow shadow)
           
 Pointcut parameterizeWith(java.util.Map typeVariableMap, World w)
           
static Pointcut read(VersionedDataInputStream s, ISourceContext context)
           
protected  void resolveBindings(IScope scope, Bindings bindings)
           
 java.lang.String toString()
           
 void write(CompressingDataOutputStream s)
           
 
Methods inherited from class org.aspectj.weaver.patterns.NameBindingPointcut
exposeStateForVar
 
Methods inherited from class org.aspectj.weaver.patterns.Pointcut
assertState, check, concretize, concretize, concretize, findResidue, fromString, getPointcutKind, getTypeVariablesInScope, isDeclare, makeMatchesNothing, match, postRead, resolve, setTypeVariablesInScope, shouldCopyLocationForConcretize
 
Methods inherited from class org.aspectj.weaver.patterns.PatternNode
copyLocationFrom, getEnd, getFileName, getSourceContext, getSourceLocation, getStart, readLocation, setLocation, traverse, writeLocation
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AnnotationPointcut

public AnnotationPointcut(ExactAnnotationTypePattern type)

AnnotationPointcut

public AnnotationPointcut(ExactAnnotationTypePattern type,
                          ShadowMunger munger)
Method Detail

getAnnotationTypePattern

public ExactAnnotationTypePattern getAnnotationTypePattern()

couldMatchKinds

public int couldMatchKinds()
Description copied from class: Pointcut
The set of ShadowKinds that this Pointcut could possibly match - an int whose bits are set according to the Kinds specified in Shadow.java

Specified by:
couldMatchKinds in class Pointcut

parameterizeWith

public Pointcut parameterizeWith(java.util.Map typeVariableMap,
                                 World w)
Specified by:
parameterizeWith in class Pointcut

fastMatch

public FuzzyBoolean fastMatch(FastMatchInfo info)
Description copied from class: Pointcut
Could I match any shadows in the code defined within this type?

Specified by:
fastMatch in class Pointcut

matchInternal

protected FuzzyBoolean matchInternal(Shadow shadow)
Specified by:
matchInternal in class Pointcut

resolveBindings

protected void resolveBindings(IScope scope,
                               Bindings bindings)
Specified by:
resolveBindings in class Pointcut

concretize1

protected Pointcut concretize1(ResolvedType inAspect,
                               ResolvedType declaringType,
                               IntMap bindings)
Description copied from class: Pointcut
Resolves and removes ReferencePointcuts, replacing with basic ones

Specified by:
concretize1 in class Pointcut
Parameters:
inAspect - the aspect to resolve relative to
bindings - a Map from formal index in the current lexical context -> formal index in the concrete advice that will run This must always return a new Pointcut object (even if the concretized Pointcut is identical to the resolved one). That behavior is assumed in many places. XXX fix implementors to handle state

findResidueInternal

protected Test findResidueInternal(Shadow shadow,
                                   ExposedState state)
Specified by:
findResidueInternal in class Pointcut

getBindingAnnotationTypePatterns

public java.util.List getBindingAnnotationTypePatterns()
Specified by:
getBindingAnnotationTypePatterns in class NameBindingPointcut

getBindingTypePatterns

public java.util.List getBindingTypePatterns()
Specified by:
getBindingTypePatterns in class NameBindingPointcut

write

public void write(CompressingDataOutputStream s)
           throws java.io.IOException
Specified by:
write in class PatternNode
Throws:
java.io.IOException

read

public static Pointcut read(VersionedDataInputStream s,
                            ISourceContext context)
                     throws java.io.IOException
Throws:
java.io.IOException

equals

public boolean equals(java.lang.Object other)
Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

buildDeclarationText

public void buildDeclarationText()

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

accept

public java.lang.Object accept(PatternNodeVisitor visitor,
                               java.lang.Object data)
Specified by:
accept in class PatternNode