| /******************************************************************************* |
| * Copyright (c) 2000, 2015 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.help.search; |
| |
| import org.eclipse.core.runtime.CoreException; |
| import org.eclipse.core.runtime.IProgressMonitor; |
| |
| /** |
| * A search engine that is a participant in the help search. All engines |
| * selected by the user to run are executed as background jobs using the same |
| * search expression. Engine is expected to accept the expression and the scope |
| * object. The results should be passed to the result collector object, and the |
| * search progress should be tracked by the progress monitor. |
| * <p> |
| * Search engines that have API access to the search server can provide a list |
| * of individual search results. Search engines for which only the URL is known |
| * are expected to return one search result containing a URL that is sufficient |
| * to open a web browser and see the search results there. |
| * <p> |
| * Search engine must be cancelable. |
| * <p>This interface is intended to be implemented by clients. |
| * |
| * @since 3.1 |
| */ |
| |
| public interface ISearchEngine { |
| /** |
| * |
| * @param query |
| * the search expression |
| * @param scope |
| * the engine-specific scope object that is used to narrow the |
| * search or <code>null</code> if the default scope is assumed. |
| * @param collector |
| * the search result collector handles results as they arrive |
| * @param monitor |
| * progress monitor to track the search progress |
| * @throws CoreException |
| * when there are problems in the engine |
| */ |
| void run(String query, ISearchScope scope, |
| ISearchEngineResultCollector collector, IProgressMonitor monitor) |
| throws CoreException; |
| } |