org.aspectj.weaver.patterns
Class SignaturePattern

java.lang.Object
  extended by org.aspectj.weaver.patterns.PatternNode
      extended by org.aspectj.weaver.patterns.SignaturePattern
All Implemented Interfaces:
IHasPosition, IHasSourceLocation, ISignaturePattern

public class SignaturePattern
extends PatternNode
implements ISignaturePattern


Field Summary
 
Fields inherited from class org.aspectj.weaver.patterns.PatternNode
end, sourceContext, start
 
Fields inherited from interface org.aspectj.weaver.patterns.ISignaturePattern
AND, NOT, OR, PATTERN
 
Constructor Summary
SignaturePattern(MemberKind kind, ModifiersPattern modifiers, TypePattern returnType, TypePattern declaringType, NamePattern name, TypePatternList parameterTypes, ThrowsPattern throwsPattern, AnnotationTypePattern annotationPattern)
           
 
Method Summary
 java.lang.Object accept(PatternNodeVisitor visitor, java.lang.Object data)
           
 boolean couldEverMatch(ResolvedType type)
           
 boolean declaringTypeMatchAllowingForCovariance(Member member, UnresolvedType shadowDeclaringType, World world, TypePattern returnTypePattern, ResolvedType sigReturn)
           
 boolean equals(java.lang.Object other)
           
 AnnotationTypePattern getAnnotationPattern()
          return true if last argument in params is an Object[] but the modifiers say this method was declared with varargs (Object...).
 TypePattern getDeclaringType()
           
 java.util.List<ExactTypePattern> getExactDeclaringTypes()
           
 MemberKind getKind()
           
 ModifiersPattern getModifiers()
           
 NamePattern getName()
           
 TypePatternList getParameterTypes()
           
 TypePattern getReturnType()
           
 ThrowsPattern getThrowsPattern()
           
 int hashCode()
           
 boolean isExactDeclaringTypePattern()
           
 boolean isMatchOnAnyName()
           
 boolean isStarAnnotation()
           
 boolean matches(Member joinPointSignature, World world, boolean allowBridgeMethods)
           
 SignaturePattern parameterizeWith(java.util.Map<java.lang.String,UnresolvedType> typeVariableMap, World w)
          return a copy of this signature pattern in which every type variable reference is replaced by the corresponding entry in the map.
 void postRead(ResolvedType enclosingType)
           
static SignaturePattern read(VersionedDataInputStream s, ISourceContext context)
           
 SignaturePattern resolveBindings(IScope scope, Bindings bindings)
           
 java.lang.String toString()
           
 void write(CompressingDataOutputStream s)
           
 
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

SignaturePattern

public SignaturePattern(MemberKind kind,
                        ModifiersPattern modifiers,
                        TypePattern returnType,
                        TypePattern declaringType,
                        NamePattern name,
                        TypePatternList parameterTypes,
                        ThrowsPattern throwsPattern,
                        AnnotationTypePattern annotationPattern)
Method Detail

resolveBindings

public SignaturePattern resolveBindings(IScope scope,
                                        Bindings bindings)
Specified by:
resolveBindings in interface ISignaturePattern

postRead

public void postRead(ResolvedType enclosingType)

parameterizeWith

public SignaturePattern parameterizeWith(java.util.Map<java.lang.String,UnresolvedType> typeVariableMap,
                                         World w)
return a copy of this signature pattern in which every type variable reference is replaced by the corresponding entry in the map.

Specified by:
parameterizeWith in interface ISignaturePattern

matches

public boolean matches(Member joinPointSignature,
                       World world,
                       boolean allowBridgeMethods)
Specified by:
matches in interface ISignaturePattern

declaringTypeMatchAllowingForCovariance

public boolean declaringTypeMatchAllowingForCovariance(Member member,
                                                       UnresolvedType shadowDeclaringType,
                                                       World world,
                                                       TypePattern returnTypePattern,
                                                       ResolvedType sigReturn)

getName

public NamePattern getName()

getDeclaringType

public TypePattern getDeclaringType()

getKind

public MemberKind getKind()

toString

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

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

write

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

read

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

getModifiers

public ModifiersPattern getModifiers()
Returns:

getParameterTypes

public TypePatternList getParameterTypes()
Returns:

getReturnType

public TypePattern getReturnType()
Returns:

getThrowsPattern

public ThrowsPattern getThrowsPattern()
Returns:

getAnnotationPattern

public AnnotationTypePattern getAnnotationPattern()
return true if last argument in params is an Object[] but the modifiers say this method was declared with varargs (Object...). We shouldn't be matching if this is the case.


isStarAnnotation

public boolean isStarAnnotation()
Specified by:
isStarAnnotation in interface ISignaturePattern

accept

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

isExactDeclaringTypePattern

public boolean isExactDeclaringTypePattern()

isMatchOnAnyName

public boolean isMatchOnAnyName()
Specified by:
isMatchOnAnyName in interface ISignaturePattern

getExactDeclaringTypes

public java.util.List<ExactTypePattern> getExactDeclaringTypes()
Specified by:
getExactDeclaringTypes in interface ISignaturePattern

couldEverMatch

public boolean couldEverMatch(ResolvedType type)
Specified by:
couldEverMatch in interface ISignaturePattern