blob: a300d8eaae347ed6fbedc51351ac4475c97413d2 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011, 2015 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.help.search;
/**
* This class is responsible for handling any pre or post
* search processing events, including query manipulation
* and output to the search frame.
*
* @since 3.6
*
*/
public abstract class AbstractSearchProcessor {
public AbstractSearchProcessor()
{
}
/**
* This method is called before the search is performed.
*
* See {@link SearchProcessorInfo} for types of information that can be used by
* the search display.
*
* @return <code>SearchProcessorInfo</code>, or <code>null</code> for no changes.
*/
public abstract SearchProcessorInfo preSearch(String query);
/**
* This method is called after the search is performed.
*
* Results are stored as an array of ISearchResult containing
* all available data.
*
* This method can be used to return a modified result set. For example, one can change the
* result score of an item, add new results to the top of the list, or remove results.
*
* @return <code>{@link ISearchResult}[]</code>, or <code>null</code> for no changes.
*/
public abstract ISearchResult[] postSearch(String query, ISearchResult[] results);
}