org.aspectj.org.eclipse.jdt.internal.core.search.matching
Class MethodLocator

java.lang.Object
  extended by org.aspectj.org.eclipse.jdt.internal.core.search.matching.PatternLocator
      extended by org.aspectj.org.eclipse.jdt.internal.core.search.matching.MethodLocator
All Implemented Interfaces:
IIndexConstants

public class MethodLocator
extends PatternLocator


Field Summary
 char[][][] allSuperDeclaringTypeNames
           
protected  boolean isDeclarationOfReferencedMethodsPattern
           
protected  MethodPattern pattern
           
 
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.core.search.matching.PatternLocator
ACCURATE_MATCH, ALL_CONTAINER, CAMELCASE_FLAVOR, CLASS_CONTAINER, COMPILATION_UNIT_CONTAINER, ERASURE_MATCH, EXACT_FLAVOR, FIELD_CONTAINER, FLAVORS_MASK, IMPOSSIBLE_MATCH, INACCURATE_MATCH, isCaseSensitive, isEquivalentMatch, isErasureMatch, MATCH_LEVEL_MASK, matchMode, mayBeGeneric, METHOD_CONTAINER, mustResolve, NO_FLAVOR, OVERRIDDEN_METHOD_FLAVOR, PATTERN_FLAVOR, POSSIBLE_MATCH, PREFIX_FLAVOR, RAW_MASK, REGEXP_FLAVOR, RULE_MASK, SUB_INVOCATION_FLAVOR, SUPER_INVOCATION_FLAVOR, SUPERTYPE_REF_FLAVOR
 
Fields inherited from interface org.aspectj.org.eclipse.jdt.internal.core.search.indexing.IIndexConstants
AND_PATTERN, ANNOT_REF_PATTERN, ANNOTATION_REF, ANNOTATION_TYPE_SUFFIX, CLASS_AND_ENUM_SUFFIX, CLASS_AND_INTERFACE_SUFFIX, CLASS_SUFFIX, CONSTRUCTOR_DECL, CONSTRUCTOR_PATTERN, CONSTRUCTOR_REF, COUNTS, DEFAULT_CONSTRUCTOR, ENUM_SUFFIX, FIELD_DECL, FIELD_PATTERN, INTERFACE_AND_ANNOTATION_SUFFIX, INTERFACE_SUFFIX, LOCAL_VAR_PATTERN, METHOD_DECL, METHOD_PATTERN, METHOD_REF, OBJECT, ONE_STAR, ONE_STAR_CHAR, ONE_ZERO, ONE_ZERO_CHAR, OR_PATTERN, PARAMETER_SEPARATOR, PKG_DECL_PATTERN, PKG_REF_PATTERN, REF, SECONDARY_SUFFIX, SEPARATOR, SUPER_REF, SUPER_REF_PATTERN, TYPE_DECL, TYPE_DECL_PATTERN, TYPE_PARAM_PATTERN, TYPE_REF_PATTERN, TYPE_SUFFIX, ZERO_CHAR
 
Constructor Summary
MethodLocator(MethodPattern pattern)
           
 
Method Summary
protected  void clear()
           
protected  int fineGrain()
           
 void initializePolymorphicSearch(MatchLocator locator)
          Initializes this search pattern so that polymorphic search can be performed.
protected  boolean isVirtualInvoke(MethodBinding method, MessageSend messageSend)
          Returns whether the code gen will use an invoke virtual for this message send or not.
 int match(Annotation node, MatchingNodeSet nodeSet)
           
 int match(ASTNode node, MatchingNodeSet nodeSet)
          Check if the given ast node syntactically matches this pattern.
 int match(MemberValuePair node, MatchingNodeSet nodeSet)
           
 int match(MessageSend node, MatchingNodeSet nodeSet)
           
 int match(MethodDeclaration node, MatchingNodeSet nodeSet)
           
protected  int matchContainer()
          Returns the type(s) of container for this pattern.
protected  void matchLevelAndReportImportRef(ImportReference importRef, Binding binding, MatchLocator locator)
          Reports the match of the given import reference if the resolveLevel is high enough.
protected  int matchMethod(MethodBinding method, boolean skipImpossibleArg)
           
protected  void matchReportReference(ASTNode reference, IJavaElement element, Binding elementBinding, int accuracy, MatchLocator locator)
          Reports the match of the given reference.
protected  void matchReportReference(ASTNode reference, IJavaElement element, IJavaElement localElement, IJavaElement[] otherElements, Binding elementBinding, int accuracy, MatchLocator locator)
          Reports the match of the given reference.
 SearchMatch newDeclarationMatch(ASTNode reference, IJavaElement element, Binding elementBinding, int accuracy, int length, MatchLocator locator)
           
protected  int referenceType()
           
protected  void reportDeclaration(MethodBinding methodBinding, MatchLocator locator, SimpleSet knownMethods)
           
 int resolveLevel(ASTNode possibleMatchingNode)
          Finds out whether the given ast node matches this search pattern.
 int resolveLevel(Binding binding)
          Finds out whether the given binding matches this search pattern.
protected  int resolveLevel(MessageSend messageSend)
           
protected  int resolveLevelAsSubtype(char[] simplePattern, char[] qualifiedPattern, ReferenceBinding type, char[] methodName, TypeBinding[] argumentTypes)
          Returns whether the given reference type binding matches or is a subtype of a type that matches the given qualified pattern.
 java.lang.String toString()
           
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.core.search.matching.PatternLocator
getQualifiedPattern, getQualifiedSourceName, getTypeNameBinding, match, match, match, match, match, match, match, match, matchesName, matchesTypeReference, matchLevel, matchNameValue, matchReportImportRef, patternLocator, qualifiedPattern, qualifiedSourceName, resolveLevelForType, resolveLevelForType, resolveLevelForType, updateMatch, updateMatch, updateMatch
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

pattern

protected MethodPattern pattern

isDeclarationOfReferencedMethodsPattern

protected boolean isDeclarationOfReferencedMethodsPattern

allSuperDeclaringTypeNames

public char[][][] allSuperDeclaringTypeNames
Constructor Detail

MethodLocator

public MethodLocator(MethodPattern pattern)
Method Detail

clear

protected void clear()
Overrides:
clear in class PatternLocator

fineGrain

protected int fineGrain()
Overrides:
fineGrain in class PatternLocator

initializePolymorphicSearch

public void initializePolymorphicSearch(MatchLocator locator)
Description copied from class: PatternLocator
Initializes this search pattern so that polymorphic search can be performed.

Overrides:
initializePolymorphicSearch in class PatternLocator

isVirtualInvoke

protected boolean isVirtualInvoke(MethodBinding method,
                                  MessageSend messageSend)
Returns whether the code gen will use an invoke virtual for this message send or not.


match

public int match(ASTNode node,
                 MatchingNodeSet nodeSet)
Description copied from class: PatternLocator
Check if the given ast node syntactically matches this pattern. If it does, add it to the match set. Returns the match level.

Overrides:
match in class PatternLocator

match

public int match(MethodDeclaration node,
                 MatchingNodeSet nodeSet)
Overrides:
match in class PatternLocator

match

public int match(MemberValuePair node,
                 MatchingNodeSet nodeSet)
Overrides:
match in class PatternLocator

match

public int match(MessageSend node,
                 MatchingNodeSet nodeSet)
Overrides:
match in class PatternLocator

match

public int match(Annotation node,
                 MatchingNodeSet nodeSet)
Overrides:
match in class PatternLocator

matchContainer

protected int matchContainer()
Description copied from class: PatternLocator
Returns the type(s) of container for this pattern. It is a bit combination of types, denoting compilation unit, class declarations, field declarations or method declarations.

Overrides:
matchContainer in class PatternLocator

matchLevelAndReportImportRef

protected void matchLevelAndReportImportRef(ImportReference importRef,
                                            Binding binding,
                                            MatchLocator locator)
                                     throws CoreException
Description copied from class: PatternLocator
Reports the match of the given import reference if the resolveLevel is high enough.

Overrides:
matchLevelAndReportImportRef in class PatternLocator
Throws:
CoreException

matchMethod

protected int matchMethod(MethodBinding method,
                          boolean skipImpossibleArg)

matchReportReference

protected void matchReportReference(ASTNode reference,
                                    IJavaElement element,
                                    Binding elementBinding,
                                    int accuracy,
                                    MatchLocator locator)
                             throws CoreException
Description copied from class: PatternLocator
Reports the match of the given reference.

Overrides:
matchReportReference in class PatternLocator
Throws:
CoreException

matchReportReference

protected void matchReportReference(ASTNode reference,
                                    IJavaElement element,
                                    IJavaElement localElement,
                                    IJavaElement[] otherElements,
                                    Binding elementBinding,
                                    int accuracy,
                                    MatchLocator locator)
                             throws CoreException
Description copied from class: PatternLocator
Reports the match of the given reference. Also provide a local element to eventually report in match.

Overrides:
matchReportReference in class PatternLocator
Throws:
CoreException
See Also:
PatternLocator.matchReportReference(org.aspectj.org.eclipse.jdt.internal.compiler.ast.ASTNode, org.aspectj.org.eclipse.jdt.core.IJavaElement, Binding, int, org.aspectj.org.eclipse.jdt.internal.core.search.matching.MatchLocator)

newDeclarationMatch

public SearchMatch newDeclarationMatch(ASTNode reference,
                                       IJavaElement element,
                                       Binding elementBinding,
                                       int accuracy,
                                       int length,
                                       MatchLocator locator)
Overrides:
newDeclarationMatch in class PatternLocator

referenceType

protected int referenceType()
Overrides:
referenceType in class PatternLocator

reportDeclaration

protected void reportDeclaration(MethodBinding methodBinding,
                                 MatchLocator locator,
                                 SimpleSet knownMethods)
                          throws CoreException
Throws:
CoreException

resolveLevel

public int resolveLevel(ASTNode possibleMatchingNode)
Description copied from class: PatternLocator
Finds out whether the given ast node matches this search pattern. Returns IMPOSSIBLE_MATCH if it doesn't. Returns INACCURATE_MATCH if it potentially matches this search pattern (i.e. it has already been resolved but resolving failed.) Returns ACCURATE_MATCH if it matches exactly this search pattern (i.e. it doesn't need to be resolved or it has already been resolved.)

Overrides:
resolveLevel in class PatternLocator

resolveLevel

public int resolveLevel(Binding binding)
Description copied from class: PatternLocator
Finds out whether the given binding matches this search pattern. Returns ACCURATE_MATCH if it does. Returns INACCURATE_MATCH if resolve failed but match is still possible. Returns IMPOSSIBLE_MATCH otherwise. Default is to return INACCURATE_MATCH.

Overrides:
resolveLevel in class PatternLocator

resolveLevel

protected int resolveLevel(MessageSend messageSend)

resolveLevelAsSubtype

protected int resolveLevelAsSubtype(char[] simplePattern,
                                    char[] qualifiedPattern,
                                    ReferenceBinding type,
                                    char[] methodName,
                                    TypeBinding[] argumentTypes)
Returns whether the given reference type binding matches or is a subtype of a type that matches the given qualified pattern. Returns ACCURATE_MATCH if it does. Returns INACCURATE_MATCH if resolve fails Returns IMPOSSIBLE_MATCH if it doesn't.


toString

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