Copyright (c) 2000, 2012 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, 2012 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.runtime.CoreException;
Collects the results from a search engine query. Clients implement a subclass to pass to SearchEngine.search and implement the acceptSearchMatch(SearchMatch) method, and possibly override other life cycle methods.

The search engine calls beginReporting() when a search starts, then calls acceptSearchMatch(...) for each search result, and finally calls endReporting(). The order of the search results is unspecified and may vary from request to request; when displaying results, clients should not rely on the order but should instead arrange the results in an order that would be more meaningful to the user.

See Also:
Since:3.0
/** * Collects the results from a search engine query. * Clients implement a subclass to pass to <code>SearchEngine.search</code> * and implement the {@link #acceptSearchMatch(SearchMatch)} method, and * possibly override other life cycle methods. * <p> * The search engine calls <code>beginReporting()</code> when a search starts, * then calls <code>acceptSearchMatch(...)</code> for each search result, and * finally calls <code>endReporting()</code>. The order of the search results * is unspecified and may vary from request to request; when displaying results, * clients should not rely on the order but should instead arrange the results * in an order that would be more meaningful to the user. * </p> * * @see SearchEngine * @since 3.0 */
public abstract class SearchRequestor {
Accepts the given search match.
Params:
  • match – the found match
Throws:
/** * Accepts the given search match. * * @param match the found match * @throws CoreException */
public abstract void acceptSearchMatch(SearchMatch match) throws CoreException;
Notification sent before starting the search action. Typically, this would tell a search requestor to clear previously recorded search results.

The default implementation of this method does nothing. Subclasses may override.

/** * Notification sent before starting the search action. * Typically, this would tell a search requestor to clear previously * recorded search results. * <p> * The default implementation of this method does nothing. Subclasses * may override. * </p> */
public void beginReporting() { // do nothing }
Notification sent after having completed the search action. Typically, this would tell a search requestor collector that no more results will be forthcoming in this search.

The default implementation of this method does nothing. Subclasses may override.

/** * Notification sent after having completed the search action. * Typically, this would tell a search requestor collector that no more * results will be forthcoming in this search. * <p> * The default implementation of this method does nothing. Subclasses * may override. * </p> */
public void endReporting() { // do nothing }
Intermediate notification sent when the given participant starts to contribute.

The default implementation of this method does nothing. Subclasses may override.

Params:
  • participant – the participant that is starting to contribute
/** * Intermediate notification sent when the given participant starts to * contribute. * <p> * The default implementation of this method does nothing. Subclasses * may override. * </p> * * @param participant the participant that is starting to contribute */
public void enterParticipant(SearchParticipant participant) { // do nothing }
Intermediate notification sent when the given participant is finished contributing.

The default implementation of this method does nothing. Subclasses may override.

Params:
  • participant – the participant that finished contributing
/** * Intermediate notification sent when the given participant is finished * contributing. * <p> * The default implementation of this method does nothing. Subclasses * may override. * </p> * * @param participant the participant that finished contributing */
public void exitParticipant(SearchParticipant participant) { // do nothing } }