Copyright (c) 2000, 2009 IBM Corporation and others. This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-2.0/ SPDX-License-Identifier: EPL-2.0 Contributors: IBM Corporation - initial API and implementation
/******************************************************************************* * Copyright (c) 2000, 2009 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/
package org.eclipse.jdt.core.search; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jdt.core.IJavaElement;
A IJavaSearchResultCollector collects search results from a search query to a SearchEngine. Clients must implement this interface and pass an instance to the search(...) methods. When a search starts, the aboutToStart() method is called, then 0 or more call to accept(...) are done, finally the done() method is called.

Results provided to this collector may be accurate - in this case they have an EXACT_MATCH accuracy - or they might be potential matches only - they have a POTENTIAL_MATCH accuracy. This last case can occur when a problem prevented the SearchEngine from resolving the match.

The order of the results is unspecified. Clients must not rely on this order to display results, but they should sort these results (for example, in syntactical order).

The IJavaSearchResultCollector is also used to provide a progress monitor to the SearchEngine.

Clients may implement this interface.

See Also:
  • SearchEngine
Deprecated:Since 3.0, the class SearchRequestor replaces this interface.
/** * A <code>IJavaSearchResultCollector</code> collects search results from a <code>search</code> * query to a <code>SearchEngine</code>. Clients must implement this interface and pass * an instance to the <code>search(...)</code> methods. When a search starts, the <code>aboutToStart()</code> * method is called, then 0 or more call to <code>accept(...)</code> are done, finally the * <code>done()</code> method is called. * <p> * Results provided to this collector may be accurate - in this case they have an <code>EXACT_MATCH</code> accuracy - * or they might be potential matches only - they have a <code>POTENTIAL_MATCH</code> accuracy. This last * case can occur when a problem prevented the <code>SearchEngine</code> from resolving the match. * </p> * <p> * The order of the results is unspecified. Clients must not rely on this order to display results, * but they should sort these results (for example, in syntactical order). * <p> * The <code>IJavaSearchResultCollector</code> is also used to provide a progress monitor to the * <code>SearchEngine</code>. * </p> * <p> * Clients may implement this interface. * </p> * * @see SearchEngine * @deprecated Since 3.0, the class * {@link org.eclipse.jdt.core.search.SearchRequestor} replaces this interface. */
public interface IJavaSearchResultCollector {
The search result corresponds exactly to the search pattern.
Deprecated:Use SearchMatch.A_ACCURATE instead.
/** * The search result corresponds exactly to the search pattern. * * @deprecated Use {@link SearchMatch#A_ACCURATE} instead. */
int EXACT_MATCH = 0;
The search result is potentially a match for the search pattern, but a problem prevented the search engine from being more accurate (typically because of the classpath was not correctly set).
Deprecated:Use SearchMatch.A_INACCURATE instead.
/** * The search result is potentially a match for the search pattern, * but a problem prevented the search engine from being more accurate * (typically because of the classpath was not correctly set). * * @deprecated Use {@link SearchMatch#A_INACCURATE} instead. */
int POTENTIAL_MATCH = 1;
Called before the actual search starts.
Deprecated:Replaced by SearchRequestor.beginReporting().
/** * Called before the actual search starts. * * @deprecated Replaced by {@link SearchRequestor#beginReporting()}. */
public void aboutToStart();
Accepts the given search result.
Params:
  • resource – the resource in which the match has been found
  • start – the start position of the match, -1 if it is unknown
  • end – the end position of the match, -1 if it is unknown; the ending offset is exclusive, meaning that the actual range of characters covered is [start, end]
  • enclosingElement – the Java element that contains the character range [start, end]; the value can be null indicating that no enclosing Java element has been found
  • accuracy – the level of accuracy the search result has; either EXACT_MATCH or POTENTIAL_MATCH
Throws:
  • CoreException – if this collector had a problem accepting the search result
Deprecated:Replaced by SearchRequestor.acceptSearchMatch(SearchMatch).
/** * Accepts the given search result. * * @param resource the resource in which the match has been found * @param start the start position of the match, -1 if it is unknown * @param end the end position of the match, -1 if it is unknown; * the ending offset is exclusive, meaning that the actual range of characters * covered is <code>[start, end]</code> * @param enclosingElement the Java element that contains the character range * <code>[start, end]</code>; the value can be <code>null</code> indicating that * no enclosing Java element has been found * @param accuracy the level of accuracy the search result has; either * <code>EXACT_MATCH</code> or <code>POTENTIAL_MATCH</code> * @exception CoreException if this collector had a problem accepting the search result * @deprecated Replaced by {@link SearchRequestor#acceptSearchMatch(SearchMatch)}. */
public void accept( IResource resource, int start, int end, IJavaElement enclosingElement, int accuracy) throws CoreException;
Called when the search has ended.
Deprecated:Replaced by SearchRequestor.endReporting().
/** * Called when the search has ended. * * @deprecated Replaced by {@link SearchRequestor#endReporting()}. */
public void done();
Returns the progress monitor used to report progress.
Returns:a progress monitor or null if no progress monitor is provided
/** * Returns the progress monitor used to report progress. * * @return a progress monitor or null if no progress monitor is provided */
public IProgressMonitor getProgressMonitor(); }