All Implemented Interfaces:
Cloneable, IParallelizable, IIndexConstants
Direct Known Subclasses:
DeclarationOfReferencedMethodsPattern, MethodDeclarationPattern

public class MethodPattern extends JavaSearchPattern
  • Field Details

    • findDeclarations

      protected boolean findDeclarations
    • findReferences

      protected boolean findReferences
    • selector

      public char[] selector
    • declaringQualification

      public char[] declaringQualification
    • declaringSimpleName

      public char[] declaringSimpleName
    • declaringPackageName

      public char[] declaringPackageName
    • returnQualification

      public char[] returnQualification
    • returnSimpleName

      public char[] returnSimpleName
    • parameterQualifications

      public char[][] parameterQualifications
    • parameterSimpleNames

      public char[][] parameterSimpleNames
    • parameterCount

      public int parameterCount
    • varargs

      public boolean varargs
    • declaringType

      protected IType declaringType
    • REF_CATEGORIES

      protected static char[][] REF_CATEGORIES
    • REF_AND_DECL_CATEGORIES

      protected static char[][] REF_AND_DECL_CATEGORIES
    • DECL_CATEGORIES

      protected static char[][] DECL_CATEGORIES
    • FINE_GRAIN_MASK

      public static final int FINE_GRAIN_MASK
      See Also:
      Constant Field Values
  • Constructor Details

    • MethodPattern

      public MethodPattern(char[] selector, char[] declaringQualification, char[] declaringSimpleName, char[] returnQualification, char[] returnSimpleName, char[][] parameterQualifications, char[][] parameterSimpleNames, IType declaringType, int limitTo, int matchRule)
    • MethodPattern

      public MethodPattern(char[] selector, char[] declaringQualification, char[] declaringSimpleName, char[] returnQualification, char[] returnSimpleName, String returnSignature, char[][] parameterQualifications, char[][] parameterSimpleNames, String[] parameterSignatures, IMethod method, int limitTo, int matchRule)
    • MethodPattern

      public MethodPattern(char[] selector, char[] declaringQualification, char[] declaringSimpleName, String declaringSignature, char[] returnQualification, char[] returnSimpleName, String returnSignature, char[][] parameterQualifications, char[][] parameterSimpleNames, String[] parameterSignatures, char[][] arguments, int limitTo, int matchRule)
  • Method Details

    • createIndexKey

      public static char[] createIndexKey(char[] selector, int argCount)
      Method entries are encoded as selector '/' Arity: e.g. 'foo/0'
    • decodeIndexKey

      public void decodeIndexKey(char[] key)
      Description copied from class: SearchPattern
      Decode the given index key in this pattern. The decoded index key is used by SearchPattern.matchesDecodedKey(SearchPattern) to find out if the corresponding index entry should be considered.

      This method should be re-implemented in subclasses that need to decode an index key.

      Overrides:
      decodeIndexKey in class SearchPattern
      Parameters:
      key - the given index key
    • getBlankPattern

      public SearchPattern getBlankPattern()
      Description copied from class: SearchPattern
      Returns a blank pattern that can be used as a record to decode an index key.

      Implementors of this method should return a new search pattern that is going to be used to decode index keys.

      Overrides:
      getBlankPattern in class JavaSearchPattern
      Returns:
      a new blank pattern
      See Also:
      SearchPattern.decodeIndexKey(char[])
    • getIndexCategories

      public char[][] getIndexCategories()
      Description copied from class: SearchPattern
      Returns an array of index categories to consider for this index query. These potential matches will be further narrowed by the match locator, but precise match locating can be expensive, and index query should be as accurate as possible so as to eliminate obvious false hits.

      This method should be re-implemented in subclasses that need to narrow down the index query.

      Overrides:
      getIndexCategories in class SearchPattern
      Returns:
      an array of index categories
    • isPolymorphicSearch

      public boolean isPolymorphicSearch()
      Overrides:
      isPolymorphicSearch in class SearchPattern
    • matchesDecodedKey

      public boolean matchesDecodedKey(SearchPattern decodedPattern)
      Description copied from class: SearchPattern
      Returns whether this pattern matches the given pattern (representing a decoded index key).

      This method should be re-implemented in subclasses that need to narrow down the index query.

      Overrides:
      matchesDecodedKey in class SearchPattern
      Parameters:
      decodedPattern - a pattern representing a decoded index key
      Returns:
      whether this pattern matches the given pattern
    • mustResolve

      protected boolean mustResolve()
      Returns whether a method declaration or message send must be resolved to find out if this method pattern matches it.
    • queryIn

      public EntryResult[] queryIn(Index index) throws IOException
      Overrides:
      queryIn in class SearchPattern
      Throws:
      IOException
    • print

      protected StringBuffer print(StringBuffer output)
      Overrides:
      print in class JavaSearchPattern