///*******************************************************************************
// * Copyright (c) 2006 Wind River Systems 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:
// * Markus Schorn - initial API and implementation
// *******************************************************************************/
//
//package org.eclipse.search.ui.text;
//
//import org.eclipse.core.resources.IResource;
//import org.eclipse.core.runtime.CoreException;
//import org.eclipse.search.internal.ui.SearchPlugin;
//import org.eclipse.search.ui.ISearchQuery;
//
///**
// * Abstract base class for text search query providers supplied via the <code>org.eclipse.search.textSearchQueryProvider</code>
// * extension point. The plug-in preference <code>org.eclipse.search.textSearchQueryProvider<code> defines the preferred
// * query provider. It is intended that only products choose a preferred query provider.
// *
// * @since 3.2
// */
//public abstract class TextSearchQueryProvider {
//
// /**
// * Specified the input for a search query.
// * <p>
// * Clients may instantiate this class.
// * </p>
// */
// public static abstract class TextSearchInput {
//
// /**
// * Returns the search text to search for.
// *
// * @return the search text, depending on {@link #isRegExSearch()} the search text represents a regular expression
// * or a pattern using '*' and '?' as wildcards. The empty search text signals a file name search.
// */
// public abstract String getSearchText();
//
// /**
// * Returns whether the search is a case sensitive search or not.
// *
// * @return whether the pattern is to be used case sensitive or not.
// */
// public abstract boolean isCaseSensitiveSearch();
//
// /**
// * Returns whether the search text denotes a regular expression or not.
// *
// * @return whether the pattern denotes a regular expression.
// */
// public abstract boolean isRegExSearch();
//
// /**
// * Returns the scope for the search
// *
// * @return the scope for the search
// */
// public abstract FileTextSearchScope getScope();
//
// }
//
// /**
// * Returns the preferred query provider. The preferred query provider is typically configured by the product
// * and defined by the search plug-in preference 'org.eclipse.search.textSearchQueryProvider'.
// * It is not intended that query providers change at runtime, but clients should always use this method to access
// * the query provider.
// *
// * @return the preferred {@link TextSearchQueryProvider}.
// */
// public static TextSearchQueryProvider getPreferred() {
// return SearchPlugin.getDefault().getTextSearchQueryProviderRegistry().getPreferred();
// }
//
// /**
// * Create a query for the input with the given information.
// *
// * @param textSearchInput the search input
// * @return returns the created search query
// * @throws CoreException a {@link CoreException} can be thrown when the query provider can not
// * create a query for the given input.
// */
// public abstract ISearchQuery createQuery(TextSearchInput textSearchInput) throws CoreException;
//
// /**
// * Create a query to search for the selected text in the workspace.
// *
// * @param selectedText the text to search for
// * @return returns the created search query
// * @throws CoreException a {@link CoreException} can be thrown when the query provider can not
// * create a query for the given input.
// */
// public abstract ISearchQuery createQuery(String selectedText) throws CoreException;
//
// /**
// * Create a query to search for the selected text in the given resources.
// *
// * @param selectedText the text to search for
// * @param resources the resources to search in
// * @return returns the created search query
// * @throws CoreException a {@link CoreException} can be thrown when the query provider can not
// * create a query for the given input.
// */
// public abstract ISearchQuery createQuery(String selectedText, IResource[] resources) throws CoreException;
//
// /**
// * Create a query to search for the selected text in the given working sets.
// *
// * @param selectedText the text to search for
// * @param ws the working sets to search in
// * @return returns the created search query
// * @throws CoreException a {@link CoreException} can be thrown when the query provider can not
// * create a query for the given input.
// */
//// public abstract ISearchQuery createQuery(String selectedText, IWorkingSet[] ws) throws CoreException;
//}