org.aspectj.weaver.patterns
Class BindingAnnotationFieldTypePattern

java.lang.Object
  extended by org.aspectj.weaver.patterns.PatternNode
      extended by org.aspectj.weaver.patterns.AnnotationTypePattern
          extended by org.aspectj.weaver.patterns.ExactAnnotationTypePattern
              extended by org.aspectj.weaver.patterns.BindingAnnotationFieldTypePattern
All Implemented Interfaces:
IHasPosition, IHasSourceLocation, BindingPattern

public class BindingAnnotationFieldTypePattern
extends ExactAnnotationTypePattern
implements BindingPattern

Represents an attempt to bind the field of an annotation within a pointcut. For example:

 before(Level lev): execution(* *(..)) && @annotation(TraceAnnotation(lev))
 

This binding annotation type pattern will be for 'lev'.


Field Summary
protected  int formalIndex
           
 
Fields inherited from class org.aspectj.weaver.patterns.ExactAnnotationTypePattern
annotationType, bindingPattern, formalName, resolved
 
Fields inherited from class org.aspectj.weaver.patterns.AnnotationTypePattern
AND, ANY, ANY_KEY, BINDING, BINDINGFIELD, BINDINGFIELD2, ELLIPSIS, ELLIPSIS_KEY, EXACT, EXACTFIELD, NONE, NOT, OR, WILD
 
Fields inherited from class org.aspectj.weaver.patterns.PatternNode
end, sourceContext, start
 
Constructor Summary
BindingAnnotationFieldTypePattern(UnresolvedType formalType, int formalIndex, UnresolvedType theAnnotationType)
           
 
Method Summary
 boolean equals(java.lang.Object obj)
           
 int getFormalIndex()
           
 UnresolvedType getFormalType()
           
 int hashCode()
           
 FuzzyBoolean matches(AnnotatedElement annotated, ResolvedType[] parameterAnnotations)
           
 AnnotationTypePattern parameterizeWith(java.util.Map typeVariableMap, World w)
           
static AnnotationTypePattern read(VersionedDataInputStream s, ISourceContext context)
           
static AnnotationTypePattern read2(VersionedDataInputStream s, ISourceContext context)
           
 AnnotationTypePattern remapAdviceFormals(IntMap bindings)
           
 void resolveBinding(World world)
           
 void write(CompressingDataOutputStream s)
           
 
Methods inherited from class org.aspectj.weaver.patterns.ExactAnnotationTypePattern
accept, fastMatches, getAnnotationType, getAnnotationValues, getResolvedAnnotationType, matches, matchesRuntimeType, maybeGetSimpleName, resolve, resolveBindings, toString, verifyIsAnnotationType
 
Methods inherited from class org.aspectj.weaver.patterns.AnnotationTypePattern
isAny, isForParameterAnnotationMatch, setForParameterAnnotationMatch
 
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
 
Methods inherited from interface org.aspectj.weaver.IHasPosition
getEnd, getStart
 

Field Detail

formalIndex

protected int formalIndex
Constructor Detail

BindingAnnotationFieldTypePattern

public BindingAnnotationFieldTypePattern(UnresolvedType formalType,
                                         int formalIndex,
                                         UnresolvedType theAnnotationType)
Method Detail

resolveBinding

public void resolveBinding(World world)

parameterizeWith

public AnnotationTypePattern parameterizeWith(java.util.Map typeVariableMap,
                                              World w)
Overrides:
parameterizeWith in class ExactAnnotationTypePattern

getFormalIndex

public int getFormalIndex()
Specified by:
getFormalIndex in interface BindingPattern

equals

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

hashCode

public int hashCode()
Overrides:
hashCode in class ExactAnnotationTypePattern

remapAdviceFormals

public AnnotationTypePattern remapAdviceFormals(IntMap bindings)
Overrides:
remapAdviceFormals in class AnnotationTypePattern

write

public void write(CompressingDataOutputStream s)
           throws java.io.IOException
Overrides:
write in class ExactAnnotationTypePattern
Throws:
java.io.IOException

read

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

read2

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

matches

public FuzzyBoolean matches(AnnotatedElement annotated,
                            ResolvedType[] parameterAnnotations)
Overrides:
matches in class ExactAnnotationTypePattern

getFormalType

public UnresolvedType getFormalType()