| /******************************************************************************* |
| * Copyright (c) 2000, 2004 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * 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 <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 {@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 {@link SearchMatch#A_INACCURATE} instead. |
| */ |
| int POTENTIAL_MATCH = 1; |
| |
| /** |
| * Called before the actual search starts. |
| * |
| * @deprecated Replaced by {@link SearchRequestor#beginReporting()}. |
| */ |
| public void aboutToStart(); |
| /** |
| * 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 {@link SearchRequestor#endReporting()}. |
| */ |
| public void done(); |
| /** |
| * Returns the progress monitor used to report progress. |
| * |
| * @return a progress monitor or null if no progress monitor is provided |
| */ |
| public IProgressMonitor getProgressMonitor(); |
| } |