Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse JDT Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.eclipse.jdt.core.search
Class SearchEngine

    java.lang.Object
      org.eclipse.jdt.core.search.SearchEngine

public class SearchEngine
extends Object

A `SearchEngine` searches for Java elements following a search pattern. The search can be limited to a search scope.

Various search patterns can be created using the factory methods `createSearchPattern(String, int, int, boolean)`, `createSearchPattern(IJavaElement, int)`, `createOrSearchPattern(ISearchPattern, ISearchPattern)`.

For example, one can search for references to a method in the hierarchy of a type, or one can search for the declarations of types starting with "Abstract" in a project.

This class may be instantiated; it is not intended to be subclassed.

Field Summary
`static boolean` | `VERBOSE` For tracing purpose.

Constructor Summary
`SearchEngine()` Creates a new search engine.
`SearchEngine(ICompilationUnit[] workingCopies)` Creates a new search engine with a list of working copies that will take precedence over their original compilation units in the subsequent search operations.
`SearchEngine(IWorkingCopy[] workingCopies)` Deprecated. Use `SearchEngine(ICompilationUnit[])` instead.
`SearchEngine(WorkingCopyOwner workingCopyOwner)` Creates a new search engine with the given working copy owner.

Method Summary
`static IJavaSearchScope` | `createHierarchyScope(IType type)` Returns a Java search scope limited to the hierarchy of the given type.
`static IJavaSearchScope` | `createHierarchyScope(IType type, WorkingCopyOwner owner)` Returns a Java search scope limited to the hierarchy of the given type.
`static IJavaSearchScope` | `createJavaSearchScope(IJavaElement[] elements)` Returns a Java search scope limited to the given Java elements.
`static IJavaSearchScope` | `createJavaSearchScope(IJavaElement[] elements, boolean includeReferencedProjects)` Returns a Java search scope limited to the given Java elements.
`static IJavaSearchScope` | `createJavaSearchScope(IJavaElement[] elements, int includeMask)` Returns a Java search scope limited to the given Java elements.
`static IJavaSearchScope` | `createJavaSearchScope(IResource[] resources)` Deprecated. Use `createJavaSearchScope(IJavaElement[])` instead.
`static ISearchPattern` | `createOrSearchPattern(ISearchPattern leftPattern, ISearchPattern rightPattern)` Deprecated. Use `SearchPattern.createOrPattern(SearchPattern, SearchPattern)` instead.
`static ISearchPattern` | `createSearchPattern(IJavaElement element, int limitTo)` Deprecated. Use `SearchPattern.createPattern(IJavaElement, int)` instead.
`static ISearchPattern` | `createSearchPattern(String stringPattern, int searchFor, int limitTo, boolean isCaseSensitive)` Deprecated. Use `SearchPattern.createPattern(String, int, int, int)` instead.
`static IJavaSearchScope` | `createWorkspaceScope()` Returns a Java search scope with the workspace as the only limit.
`static SearchParticipant` | `getDefaultSearchParticipant()` Returns a new default Java search participant.
`void` | `search(IWorkspace workspace, IJavaElement element, int limitTo, IJavaSearchScope scope, IJavaSearchResultCollector resultCollector)` Deprecated. Use `search(SearchPattern, SearchParticipant[], IJavaSearchScope, SearchRequestor, IProgressMonitor)` instead.
`void` | `search(IWorkspace workspace, ISearchPattern searchPattern, IJavaSearchScope scope, IJavaSearchResultCollector resultCollector)` Deprecated. Use `search(SearchPattern, SearchParticipant[], IJavaSearchScope, SearchRequestor, IProgressMonitor)` instead.
`void` | `search(IWorkspace workspace, String patternString, int searchFor, int limitTo, IJavaSearchScope scope, IJavaSearchResultCollector resultCollector)` Deprecated. Use `search(SearchPattern, SearchParticipant[], IJavaSearchScope, SearchRequestor, IProgressMonitor)` instead.
`void` | `search(SearchPattern pattern, SearchParticipant[] participants, IJavaSearchScope scope, SearchRequestor requestor, IProgressMonitor monitor)` Searches for matches of a given search pattern.
`void` | `searchAllTypeNames(char[] packageName, char[] typeName, int matchRule, int searchFor, IJavaSearchScope scope, ITypeNameRequestor nameRequestor, int waitingPolicy, IProgressMonitor progressMonitor)` Searches for all top-level types and member types in the given scope.
`void` | `searchAllTypeNames(IWorkspace workspace, char[] packageName, char[] typeName, int matchMode, boolean isCaseSensitive, int searchFor, IJavaSearchScope scope, ITypeNameRequestor nameRequestor, int waitingPolicy, IProgressMonitor progressMonitor)` Deprecated. Use `searchAllTypeNames(char[], char[], int, int, IJavaSearchScope, ITypeNameRequestor, int, IProgressMonitor)` instead
`void` | `searchDeclarationsOfAccessedFields(IJavaElement enclosingElement, SearchRequestor requestor, IProgressMonitor monitor)` Searches for all declarations of the fields accessed in the given element.
`void` | `searchDeclarationsOfAccessedFields(IWorkspace workspace, IJavaElement enclosingElement, IJavaSearchResultCollector resultCollector)` Deprecated. Use `searchDeclarationsOfAccessedFields(IJavaElement, SearchRequestor, IProgressMonitor)` instead.
`void` | `searchDeclarationsOfReferencedTypes(IJavaElement enclosingElement, SearchRequestor requestor, IProgressMonitor monitor)` Searches for all declarations of the types referenced in the given element.
`void` | `searchDeclarationsOfReferencedTypes(IWorkspace workspace, IJavaElement enclosingElement, IJavaSearchResultCollector resultCollector)` Deprecated. Use `searchDeclarationsOfReferencedTypes(IJavaElement, SearchRequestor, IProgressMonitor)` instead.
`void` | `searchDeclarationsOfSentMessages(IJavaElement enclosingElement, SearchRequestor requestor, IProgressMonitor monitor)` Searches for all declarations of the methods invoked in the given element.
`void` | `searchDeclarationsOfSentMessages(IWorkspace workspace, IJavaElement enclosingElement, IJavaSearchResultCollector resultCollector)` Deprecated. Use `searchDeclarationsOfSentMessages(IJavaElement, SearchRequestor, IProgressMonitor)` instead.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### VERBOSE

    public static boolean VERBOSE

  For tracing purpose.

Constructor Detail

### SearchEngine

    public SearchEngine()

  Creates a new search engine.

### SearchEngine

    public SearchEngine(ICompilationUnit[] workingCopies)

  Creates a new search engine with a list of working copies that will take precedence over their original compilation units in the subsequent search operations.

  Note that passing an empty working copy will be as if the original compilation unit had been deleted.

  Since 3.0 the given working copies take precedence over primary working copies (if any).

Parameters:
  `workingCopies` - the working copies that take precedence over their original compilation units
Since:
  3.0

### SearchEngine

    public SearchEngine(IWorkingCopy[] workingCopies)

  Deprecated. Use `SearchEngine(ICompilationUnit[])` instead.

  Creates a new search engine with a list of working copies that will take precedence over their original compilation units in the subsequent search operations.

  Note that passing an empty working copy will be as if the original compilation unit had been deleted.

  Since 3.0 the given working copies take precedence over primary working copies (if any).

Parameters:
  `workingCopies` - the working copies that take precedence over their original compilation units
Since:
  2.0

### SearchEngine

    public SearchEngine(WorkingCopyOwner workingCopyOwner)

  Creates a new search engine with the given working copy owner. The working copies owned by this owner will take precedence over the primary compilation units in the subsequent search operations.

Parameters:
  `workingCopyOwner` - the owner of the working copies that take precedence over their original compilation units
Since:
  3.0

Method Detail

### createHierarchyScope

    public static IJavaSearchScope createHierarchyScope(IType type)
                                                 throws JavaModelException

  Returns a Java search scope limited to the hierarchy of the given type. The Java elements resulting from a search with this scope will be types in this hierarchy, or members of the types in this hierarchy.

  Parameters:
    `type` - the focus of the hierarchy scope
  Returns:
    a new hierarchy scope
  Throws:
    `JavaModelException` - if the hierarchy could not be computed on the given type

### createHierarchyScope

    public static IJavaSearchScope createHierarchyScope(IType type,
                                                        WorkingCopyOwner owner)
                                                 throws JavaModelException

  Returns a Java search scope limited to the hierarchy of the given type. When the hierarchy is computed, the types defined in the working copies owned by the given owner take precedence over the original compilation units. The Java elements resulting from a search with this scope will be types in this hierarchy, or members of the types in this hierarchy.

  Parameters:
    `type` - the focus of the hierarchy scope
    `owner` - the owner of working copies that take precedence over original compilation units
  Returns:
    a new hierarchy scope
  Throws:
    `JavaModelException` - if the hierarchy could not be computed on the given type
  Since:
    3.0

### createJavaSearchScope

    public static IJavaSearchScope createJavaSearchScope(IResource[] resources)

  Deprecated. Use `createJavaSearchScope(IJavaElement[])` instead.

  Returns a Java search scope limited to the given resources. The Java elements resulting from a search with this scope will have their underlying resource included in or equals to one of the given resources.

  Resources must not overlap, for example, one cannot include a folder and its children.

  Parameters:
    `resources` - the resources the scope is limited to
  Returns:
    a new Java search scope

### createJavaSearchScope

    public static IJavaSearchScope createJavaSearchScope(IJavaElement[] elements)

  Returns a Java search scope limited to the given Java elements. The Java elements resulting from a search with this scope will be children of the given elements.

  If an element is an IJavaProject, then the project's source folders, its jars (external and internal) and its referenced projects (with their source folders and jars, recursively) will be included. If an element is an IPackageFragmentRoot, then only the package fragments of this package fragment root will be included. If an element is an IPackageFragment, then only the compilation unit and class files of this package fragment will be included. Subpackages will NOT be included.

  In other words, this is equivalent to using SearchEngine.createJavaSearchScope(elements, true).

  Parameters:
    `elements` - the Java elements the scope is limited to
  Returns:
    a new Java search scope
  Since:
    2.0

### createJavaSearchScope

    public static IJavaSearchScope createJavaSearchScope(IJavaElement[] elements,
                                                         boolean includeReferencedProjects)

  Returns a Java search scope limited to the given Java elements. The Java elements resulting from a search with this scope will be children of the given elements. If an element is an IJavaProject, then the project's source folders, its jars (external and internal) and - if specified - its referenced projects (with their source folders and jars, recursively) will be included. If an element is an IPackageFragmentRoot, then only the package fragments of this package fragment root will be included. If an element is an IPackageFragment, then only the compilation unit and class files of this package fragment will be included. Subpackages will NOT be included.

  Parameters:
    `elements` - the Java elements the scope is limited to
    `includeReferencedProjects` - a flag indicating if referenced projects must be recursively included
  Returns:
    a new Java search scope
  Since:
    2.0

### createJavaSearchScope

    public static IJavaSearchScope createJavaSearchScope(IJavaElement[] elements,
                                                         int includeMask)

  Returns a Java search scope limited to the given Java elements. The Java elements resulting from a search with this scope will be children of the given elements. If an element is an IJavaProject, then it includes: - its source folders if IJavaSearchScope.SOURCES is specified, - its application libraries (internal and external jars, class folders that are on the raw classpath, or the ones that are coming from a classpath path variable, or the ones that are coming from a classpath container with the K_APPLICATION kind) if IJavaSearchScope.APPLICATION_LIBRARIES is specified - its system libraries (internal and external jars, class folders that are coming from an IClasspathContainer with the K_SYSTEM kind) if IJavaSearchScope.APPLICATION_LIBRARIES is specified - its referenced projects (with their source folders and jars, recursively) if IJavaSearchScope.REFERENCED_PROJECTS is specified. If an element is an IPackageFragmentRoot, then only the package fragments of this package fragment root will be included. If an element is an IPackageFragment, then only the compilation unit and class files of this package fragment will be included. Subpackages will NOT be included.

  Parameters:
    `elements` - the Java elements the scope is limited to
    `includeMask` - the bit-wise OR of all include types of interest
  Returns:
    a new Java search scope
  Since:
    3.0
  See Also:
    `IJavaSearchScope.SOURCES`, `IJavaSearchScope.APPLICATION_LIBRARIES`, `IJavaSearchScope.SYSTEM_LIBRARIES`, `IJavaSearchScope.REFERENCED_PROJECTS`

### createOrSearchPattern

    public static ISearchPattern createOrSearchPattern(ISearchPattern leftPattern,
                                                       ISearchPattern rightPattern)

  Deprecated. Use `SearchPattern.createOrPattern(SearchPattern, SearchPattern)` instead.

  Returns a search pattern that combines the given two patterns into a "or" pattern. The search result will match either the left pattern or the right pattern.

  Parameters:
    `leftPattern` - the left pattern
    `rightPattern` - the right pattern
  Returns:
    a "or" pattern

### createSearchPattern

    public static ISearchPattern createSearchPattern(String stringPattern,
                                                     int searchFor,
                                                     int limitTo,
                                                     boolean isCaseSensitive)

  Deprecated. Use `SearchPattern.createPattern(String, int, int, int)` instead.

  Returns a search pattern based on a given string pattern. The string patterns support '*' wild-cards. The remaining parameters are used to narrow down the type of expected results.
  Examples:
  - search for case insensitive references to `Object`: `createSearchPattern("Object", TYPE, REFERENCES, false);`
  - search for case sensitive references to exact `Object()` constructor: `createSearchPattern("java.lang.Object()", CONSTRUCTOR, REFERENCES, true);`
  - search for implementers of `java.lang.Runnable`: `createSearchPattern("java.lang.Runnable", TYPE, IMPLEMENTORS, true);`

  Parameters:
    `stringPattern` - the given pattern
    `searchFor` - determines the nature of the searched elements
    - `IJavaSearchConstants.CLASS`: only look for classes
    - `IJavaSearchConstants.INTERFACE`: only look for interfaces
    - `IJavaSearchConstants.TYPE`: look for both classes and interfaces
    - `IJavaSearchConstants.FIELD`: look for fields
    - `IJavaSearchConstants.METHOD`: look for methods
    - `IJavaSearchConstants.CONSTRUCTOR`: look for constructors
    - `IJavaSearchConstants.PACKAGE`: look for packages
    `limitTo` - determines the nature of the expected matches
    - `IJavaSearchConstants.DECLARATIONS`: will search declarations matching with the corresponding element. In case the element is a method, declarations of matching methods in subtypes will also be found, allowing to find declarations of abstract methods, etc.
    - `IJavaSearchConstants.REFERENCES`: will search references to the given element.
    - `IJavaSearchConstants.ALL_OCCURRENCES`: will search for either declarations or references as specified above.
    - `IJavaSearchConstants.IMPLEMENTORS`: for interface, will find all types which implements a given interface.
    `isCaseSensitive` - indicates whether the search is case sensitive or not.
  Returns:
    a search pattern on the given string pattern, or `null` if the string pattern is ill-formed.

### createSearchPattern

    public static ISearchPattern createSearchPattern(IJavaElement element,
                                                     int limitTo)

  Deprecated. Use `SearchPattern.createPattern(IJavaElement, int)` instead.

  Returns a search pattern based on a given Java element. The pattern is used to trigger the appropriate search, and can be parameterized as follows:

  Parameters:
    `element` - the Java element the search pattern is based on
    `limitTo` - determines the nature of the expected matches
    - `IJavaSearchConstants.DECLARATIONS`: will search declarations matching with the corresponding element. In case the element is a method, declarations of matching methods in subtypes will also be found, allowing to find declarations of abstract methods, etc.
    - `IJavaSearchConstants.REFERENCES`: will search references to the given element.
    - `IJavaSearchConstants.ALL_OCCURRENCES`: will search for either declarations or references as specified above.
    - `IJavaSearchConstants.IMPLEMENTORS`: for interface, will find all types which implements a given interface.
  Returns:
    a search pattern for a Java element or `null` if the given element is ill-formed

### createWorkspaceScope

    public static IJavaSearchScope createWorkspaceScope()

  Returns a Java search scope with the workspace as the only limit.

  Returns:
    a new workspace scope

### getDefaultSearchParticipant

    public static SearchParticipant getDefaultSearchParticipant()

  Returns a new default Java search participant.

  Returns:
    a new default Java search participant
  Since:
    3.0

### search

    public void search(IWorkspace workspace,
                       String patternString,
                       int searchFor,
                       int limitTo,
                       IJavaSearchScope scope,
                       IJavaSearchResultCollector resultCollector)
                throws JavaModelException

  Deprecated. Use `search(SearchPattern, SearchParticipant[], IJavaSearchScope, SearchRequestor, IProgressMonitor)` instead.

  Searches for the Java element determined by the given signature. The signature can be incomplete. For example, a call like `search(ws, "run()", METHOD,REFERENCES, col)` searches for all references to the method `run`. Note that by default the pattern will be case insensitive. For specifying case s sensitive search, use `search(workspace, createSearchPattern(patternString, searchFor, limitTo, true), scope, resultCollector);`

  Parameters:
    `workspace` - the workspace
    `patternString` - the pattern to be searched for
    `searchFor` - a hint what kind of Java element the string pattern represents. Look into `IJavaSearchConstants` for valid values
    `limitTo` - one of the following values:
    - `IJavaSearchConstants.DECLARATIONS`: search for declarations only
    - `IJavaSearchConstants.REFERENCES`: search for all references
    - `IJavaSearchConstants.ALL_OCCURENCES`: search for both declarations and all references
    - `IJavaSearchConstants.IMPLEMENTORS`: search for all implementors of an interface; the value is only valid if the Java element represents an interface
    `scope` - the search result has to be limited to the given scope
    `resultCollector` - a callback object to which each match is reported
  Throws:
    `JavaModelException` - if the search failed. Reasons include:
    - the classpath is incorrectly set

### search

    public void search(IWorkspace workspace,
                       IJavaElement element,
                       int limitTo,
                       IJavaSearchScope scope,
                       IJavaSearchResultCollector resultCollector)
                throws JavaModelException

  Deprecated. Use `search(SearchPattern, SearchParticipant[], IJavaSearchScope, SearchRequestor, IProgressMonitor)` instead.

  Searches for the given Java element.

  Parameters:
    `workspace` - the workspace
    `element` - the Java element to be searched for
    `limitTo` - one of the following values:
    - `IJavaSearchConstants.DECLARATIONS`: search for declarations only
    - `IJavaSearchConstants.REFERENCES`: search for all references
    - `IJavaSearchConstants.ALL_OCCURENCES`: search for both declarations and all references
    - `IJavaSearchConstants.IMPLEMENTORS`: search for all implementors of an interface; the value is only valid if the Java element represents an interface
    `scope` - the search result has to be limited to the given scope
    `resultCollector` - a callback object to which each match is reported
  Throws:
    `JavaModelException` - if the search failed. Reasons include:
    - the element doesn't exist
    - the classpath is incorrectly set

### search

    public void search(IWorkspace workspace,
                       ISearchPattern searchPattern,
                       IJavaSearchScope scope,
                       IJavaSearchResultCollector resultCollector)
                throws JavaModelException

  Deprecated. Use `search(SearchPattern, SearchParticipant[], IJavaSearchScope, SearchRequestor, IProgressMonitor)` instead.

  Searches for matches of a given search pattern. Search patterns can be created using helper methods (from a String pattern or a Java element) and encapsulate the description of what is being searched (for example, search method declarations in a case sensitive way).

  Parameters:
    `workspace` - the workspace
    `searchPattern` - the pattern to be searched for
    `scope` - the search result has to be limited to the given scope
    `resultCollector` - a callback object to which each match is reported
  Throws:
    `JavaModelException` - if the search failed. Reasons include:
    - the classpath is incorrectly set

### search

    public void search(SearchPattern pattern,
                       SearchParticipant[] participants,
                       IJavaSearchScope scope,
                       SearchRequestor requestor,
                       IProgressMonitor monitor)
                throws CoreException

  Searches for matches of a given search pattern. Search patterns can be created using helper methods (from a String pattern or a Java element) and encapsulate the description of what is being searched (for example, search method declarations in a case sensitive way).

  Parameters:
    `pattern` - the pattern to search
    `participants` - the particpants in the search
    `scope` - the search scope
    `requestor` - the requestor to report the matches to
    `monitor` - the progress monitor used to report progress
  Throws:
    `CoreException` - if the search failed. Reasons include:
    - the classpath is incorrectly set
  Since:
    3.0

### searchAllTypeNames

    public void searchAllTypeNames(char[] packageName,
                                   char[] typeName,
                                   int matchRule,
                                   int searchFor,
                                   IJavaSearchScope scope,
                                   ITypeNameRequestor nameRequestor,
                                   int waitingPolicy,
                                   IProgressMonitor progressMonitor)
                            throws JavaModelException

  Searches for all top-level types and member types in the given scope. The search can be selecting specific types (given a package or a type name prefix and match modes).

  Parameters:
    `packageName` - the full name of the package of the searched types, or a prefix for this package, or a wild-carded string for this package.
    `typeName` - the dot-separated qualified name of the searched type (the qualification include the enclosing types if the searched type is a member type), or a prefix for this type, or a wild-carded string for this type.
    `matchRule` - one of
    - `SearchPattern.R_EXACT_MATCH` if the package name and type name are the full names of the searched types.
    - `SearchPattern.R_PREFIX_MATCH` if the package name and type name are prefixes of the names of the searched types.
    - `SearchPattern.R_PATTERN_MATCH` if the package name and type name contain wild-cards.
    combined with `SearchPattern.R_CASE_SENSITIVE`, e.g. `R_EXACT_MATCH | R_CASE_SENSITIVE` if an exact and case sensitive match is requested, or `R_PREFIX_MATCH` if a prefix non case sensitive match is requested.
    `searchFor` - one of
    - `IJavaSearchConstants.CLASS` if searching for classes only
    - `IJavaSearchConstants.INTERFACE` if searching for interfaces only
    - `IJavaSearchConstants.TYPE` if searching for both classes and interfaces
    `scope` - the scope to search in
    `nameRequestor` - the requestor that collects the results of the search
    `waitingPolicy` - one of
    - `IJavaSearchConstants.FORCE_IMMEDIATE_SEARCH` if the search should start immediately
    - `IJavaSearchConstants.CANCEL_IF_NOT_READY_TO_SEARCH` if the search should be cancelled if the underlying indexer has not finished indexing the workspace
    - `IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH` if the search should wait for the underlying indexer to finish indexing the workspace
    `progressMonitor` - the progress monitor to report progress to, or `null` if no progress monitor is provided
  Throws:
    `JavaModelException` - if the search failed. Reasons include:
    - the classpath is incorrectly set
  Since:
    3.0

### searchAllTypeNames

    public void searchAllTypeNames(IWorkspace workspace,
                                   char[] packageName,
                                   char[] typeName,
                                   int matchMode,
                                   boolean isCaseSensitive,
                                   int searchFor,
                                   IJavaSearchScope scope,
                                   ITypeNameRequestor nameRequestor,
                                   int waitingPolicy,
                                   IProgressMonitor progressMonitor)
                            throws JavaModelException

  Deprecated. Use `searchAllTypeNames(char[], char[], int, int, IJavaSearchScope, ITypeNameRequestor, int, IProgressMonitor)` instead

  Searches for all top-level types and member types in the given scope. The search can be selecting specific types (given a package or a type name prefix and match modes).

  Parameters:
    `workspace` - the workspace to search in
    `packageName` - the full name of the package of the searched types, or a prefix for this package, or a wild-carded string for this package.
    `typeName` - the dot-separated qualified name of the searched type (the qualification include the enclosing types if the searched type is a member type), or a prefix for this type, or a wild-carded string for this type.
    `matchMode` - one of
    - `IJavaSearchConstants.EXACT_MATCH` if the package name and type name are the full names of the searched types.
    - `IJavaSearchConstants.PREFIX_MATCH` if the package name and type name are prefixes of the names of the searched types.
    - `IJavaSearchConstants.PATTERN_MATCH` if the package name and type name contain wild-cards.
    `isCaseSensitive` - whether the search should be case sensitive
    `searchFor` - one of
    - `IJavaSearchConstants.CLASS` if searching for classes only
    - `IJavaSearchConstants.INTERFACE` if searching for interfaces only
    - `IJavaSearchConstants.TYPE` if searching for both classes and interfaces
    `scope` - the scope to search in
    `nameRequestor` - the requestor that collects the results of the search
    `waitingPolicy` - one of
    - `IJavaSearchConstants.FORCE_IMMEDIATE_SEARCH` if the search should start immediately
    - `IJavaSearchConstants.CANCEL_IF_NOT_READY_TO_SEARCH` if the search should be cancelled if the underlying indexer has not finished indexing the workspace
    - `IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH` if the search should wait for the underlying indexer to finish indexing the workspace
    `progressMonitor` - the progress monitor to report progress to, or `null` if no progress monitor is provided
  Throws:
    `JavaModelException` - if the search failed. Reasons include:
    - the classpath is incorrectly set

### searchDeclarationsOfAccessedFields

    public void searchDeclarationsOfAccessedFields(IJavaElement enclosingElement,
                                                   SearchRequestor requestor,
                                                   IProgressMonitor monitor)
                                            throws JavaModelException

  Searches for all declarations of the fields accessed in the given element. The element can be a compilation unit, a source type, or a source method. Reports the field declarations using the given requestor.

  Consider the following code: ``

      		class A {
      			int field1;
      		}
      		class B extends A {
      			String value;
      		}
      		class X {
      			void test() {
      				B b = new B();
      				System.out.println(b.value + b.field1);
      			};
      		}

  then searching for declarations of accessed fields in method `X.test()` would collect the fields `B.value` and `A.field1`.

  Parameters:
    `enclosingElement` - the method, type, or compilation unit to be searched in
    `requestor` - a callback object to which each match is reported
    `monitor` - the progress monitor used to report progress
  Throws:
    `JavaModelException` - if the search failed. Reasons include:
    - the element doesn't exist
    - the classpath is incorrectly set
  Since:
    3.0

### searchDeclarationsOfAccessedFields

    public void searchDeclarationsOfAccessedFields(IWorkspace workspace,
                                                   IJavaElement enclosingElement,
                                                   IJavaSearchResultCollector resultCollector)
                                            throws JavaModelException

  Deprecated. Use `searchDeclarationsOfAccessedFields(IJavaElement, SearchRequestor, IProgressMonitor)` instead.

  Searches for all declarations of the fields accessed in the given element. The element can be a compilation unit, a source type, or a source method. Reports the field declarations using the given collector.

  Consider the following code: ``

      		class A {
      			int field1;
      		}
      		class B extends A {
      			String value;
      		}
      		class X {
      			void test() {
      				B b = new B();
      				System.out.println(b.value + b.field1);
      			};
      		}

  then searching for declarations of accessed fields in method `X.test()` would collect the fields `B.value` and `A.field1`.

  Parameters:
    `workspace` - the workspace
    `enclosingElement` - the method, type, or compilation unit to be searched in
    `resultCollector` - a callback object to which each match is reported
  Throws:
    `JavaModelException` - if the search failed. Reasons include:
    - the element doesn't exist
    - the classpath is incorrectly set

### searchDeclarationsOfReferencedTypes

    public void searchDeclarationsOfReferencedTypes(IJavaElement enclosingElement,
                                                    SearchRequestor requestor,
                                                    IProgressMonitor monitor)
                                             throws JavaModelException

  Searches for all declarations of the types referenced in the given element. The element can be a compilation unit, a source type, or a source method. Reports the type declarations using the given requestor.

  Consider the following code: ``

      		class A {
      		}
      		class B extends A {
      		}
      		interface I {
      		  int VALUE = 0;
      		}
      		class X {
      			void test() {
      				B b = new B();
      				this.foo(b, I.VALUE);
      			};
      		}

  then searching for declarations of referenced types in method `X.test()` would collect the class `B` and the interface `I`.

  Parameters:
    `enclosingElement` - the method, type, or compilation unit to be searched in
    `requestor` - a callback object to which each match is reported
    `monitor` - the progress monitor used to report progress
  Throws:
    `JavaModelException` - if the search failed. Reasons include:
    - the element doesn't exist
    - the classpath is incorrectly set
  Since:
    3.0

### searchDeclarationsOfReferencedTypes

    public void searchDeclarationsOfReferencedTypes(IWorkspace workspace,
                                                    IJavaElement enclosingElement,
                                                    IJavaSearchResultCollector resultCollector)
                                             throws JavaModelException

  Deprecated. Use `searchDeclarationsOfReferencedTypes(IJavaElement, SearchRequestor, IProgressMonitor)` instead.

  Searches for all declarations of the types referenced in the given element. The element can be a compilation unit, a source type, or a source method. Reports the type declarations using the given collector.

  Consider the following code: ``

      		class A {
      		}
      		class B extends A {
      		}
      		interface I {
      		  int VALUE = 0;
      		}
      		class X {
      			void test() {
      				B b = new B();
      				this.foo(b, I.VALUE);
      			};
      		}

  then searching for declarations of referenced types in method `X.test()` would collect the class `B` and the interface `I`.

  Parameters:
    `workspace` - the workspace
    `enclosingElement` - the method, type, or compilation unit to be searched in
    `resultCollector` - a callback object to which each match is reported
  Throws:
    `JavaModelException` - if the search failed. Reasons include:
    - the element doesn't exist
    - the classpath is incorrectly set

### searchDeclarationsOfSentMessages

    public void searchDeclarationsOfSentMessages(IJavaElement enclosingElement,
                                                 SearchRequestor requestor,
                                                 IProgressMonitor monitor)
                                          throws JavaModelException

  Searches for all declarations of the methods invoked in the given element. The element can be a compilation unit, a source type, or a source method. Reports the method declarations using the given requestor.

  Consider the following code: ``

      		class A {
      			void foo() {};
      			void bar() {};
      		}
      		class B extends A {
      			void foo() {};
      		}
      		class X {
      			void test() {
      				A a = new B();
      				a.foo();
      				B b = (B)a;
      				b.bar();
      			};
      		}

  then searching for declarations of sent messages in method `X.test()` would collect the methods `A.foo()`, `B.foo()`, and `A.bar()`.

  Parameters:
    `enclosingElement` - the method, type, or compilation unit to be searched in
    `requestor` - a callback object to which each match is reported
    `monitor` - the progress monitor used to report progress
  Throws:
    `JavaModelException` - if the search failed. Reasons include:
    - the element doesn't exist
    - the classpath is incorrectly set
  Since:
    3.0

### searchDeclarationsOfSentMessages

    public void searchDeclarationsOfSentMessages(IWorkspace workspace,
                                                 IJavaElement enclosingElement,
                                                 IJavaSearchResultCollector resultCollector)
                                          throws JavaModelException

  Deprecated. Use `searchDeclarationsOfSentMessages(IJavaElement, SearchRequestor, IProgressMonitor)` instead.

  Searches for all declarations of the methods invoked in the given element. The element can be a compilation unit, a source type, or a source method. Reports the method declarations using the given collector.

  Consider the following code: ``

      		class A {
      			void foo() {};
      			void bar() {};
      		}
      		class B extends A {
      			void foo() {};
      		}
      		class X {
      			void test() {
      				A a = new B();
      				a.foo();
      				B b = (B)a;
      				b.bar();
      			};
      		}

  then searching for declarations of sent messages in method `X.test()` would collect the methods `A.foo()`, `B.foo()`, and `A.bar()`.

  Parameters:
    `workspace` - the workspace
    `enclosingElement` - the method, type, or compilation unit to be searched in
    `resultCollector` - a callback object to which each match is reported
  Throws:
    `JavaModelException` - if the search failed. Reasons include:
    - the element doesn't exist
    - the classpath is incorrectly set

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse JDT Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (c) IBM Corp. and others 2000, 2004. All Rights Reserved.