org.aspectj.weaver.patterns
Class BindingTypePattern

java.lang.Object
  extended by org.aspectj.weaver.patterns.PatternNode
      extended by org.aspectj.weaver.patterns.TypePattern
          extended by org.aspectj.weaver.patterns.ExactTypePattern
              extended by org.aspectj.weaver.patterns.BindingTypePattern
All Implemented Interfaces:
IHasPosition, IHasSourceLocation, BindingPattern

public class BindingTypePattern
extends ExactTypePattern
implements BindingPattern


Nested Class Summary
 
Nested classes/interfaces inherited from class org.aspectj.weaver.patterns.TypePattern
TypePattern.MatchKind
 
Field Summary
 
Fields inherited from class org.aspectj.weaver.patterns.ExactTypePattern
boxedPrimitivesMap, checked, isVoid, primitiveTypesMap, resolvedType, type
 
Fields inherited from class org.aspectj.weaver.patterns.TypePattern
AND, annotationPattern, ANY, ANY_KEY, ANY_WITH_ANNO, BINDING, DYNAMIC, ELLIPSIS, ELLIPSIS_KEY, EXACT, HAS_MEMBER, includeSubtypes, isVarArgs, NO, NO_KEY, NOT, OR, STATIC, TYPE_CATEGORY, typeParameters, WILD
 
Fields inherited from class org.aspectj.weaver.patterns.PatternNode
end, sourceContext, start
 
Constructor Summary
BindingTypePattern(FormalBinding binding, boolean isVarArgs)
           
BindingTypePattern(UnresolvedType type, int index, boolean isVarArgs)
           
 
Method Summary
 boolean equals(java.lang.Object other)
           
 java.lang.String getBindingName()
           
 int getFormalIndex()
           
 int hashCode()
           
 TypePattern parameterizeWith(java.util.Map typeVariableMap, World w)
          return a version of this type pattern with all type variables references replaced by the corresponding entry in the map.
static TypePattern read(VersionedDataInputStream s, ISourceContext context)
           
 TypePattern remapAdviceFormals(IntMap bindings)
          This is called during concretization of pointcuts, it is used by BindingTypePattern to return a new BindingTypePattern with a formal index appropiate for the advice, rather than for the lexical declaration, i.e.
 java.lang.String toString()
           
 void write(CompressingDataOutputStream out)
           
 
Methods inherited from class org.aspectj.weaver.patterns.ExactTypePattern
accept, couldEverMatchSameTypesAs, getResolvedExactType, getType, isArray, isVoid, matchesExactly, matchesExactly, matchesInstanceof, matchesSubtypes, readTypePattern150, readTypePatternOldStyle, resolveBindings
 
Methods inherited from class org.aspectj.weaver.patterns.TypePattern
getAnnotationPattern, getExactType, getTypeParameters, hasFailedResolution, isBangVoid, isEllipsis, isIncludeSubtypes, isStar, isStarAnnotation, isVarArgs, matches, matchesStatically, matchesSubtypes, notExactType, postRead, resolve, resolveExactType, setAnnotationTypePattern, setIsVarArgs, setTypeParameters
 
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
 

Constructor Detail

BindingTypePattern

public BindingTypePattern(UnresolvedType type,
                          int index,
                          boolean isVarArgs)

BindingTypePattern

public BindingTypePattern(FormalBinding binding,
                          boolean isVarArgs)
Method Detail

getFormalIndex

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

getBindingName

public java.lang.String getBindingName()

equals

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

hashCode

public int hashCode()
Overrides:
hashCode in class ExactTypePattern

write

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

read

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

remapAdviceFormals

public TypePattern remapAdviceFormals(IntMap bindings)
Description copied from class: TypePattern
This is called during concretization of pointcuts, it is used by BindingTypePattern to return a new BindingTypePattern with a formal index appropiate for the advice, rather than for the lexical declaration, i.e. this handles transforamtions through named pointcuts.
 pointcut foo(String name): args(name);
 --> This makes a BindingTypePattern(0) pointing to the 0th formal
 
 before(Foo f, String n): this(f) && foo(n) { ... }
 --> when resolveReferences is called on the args from the above, it
     will return a BindingTypePattern(1)
 
 before(Foo f): this(f) && foo(*) { ... }
 --> when resolveReferences is called on the args from the above, it
     will return an ExactTypePattern(String)
 

Overrides:
remapAdviceFormals in class TypePattern

parameterizeWith

public TypePattern parameterizeWith(java.util.Map typeVariableMap,
                                    World w)
Description copied from class: ExactTypePattern
return a version of this type pattern with all type variables references replaced by the corresponding entry in the map.

Overrides:
parameterizeWith in class ExactTypePattern

toString

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