/******************************************************************************* * Copyright (c) 2011, 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; /** * 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); }