/*
* Copyright (c) 2012, the Dart project authors.
*
* Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.eclipse.org/legal/epl-v10.html
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package com.google.dart.tools.search.ui.text;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.source.IAnnotationModel;
/**
* <p>
* This interface allows editors to provide customized access to editor internals for the search
* implementation to highlight matches. The search system will use the document to do line/character
* offset conversion if needed and it will add annotations to the annotation model.
* </p>
* <p>
* The search system will ask an editor for an adapter of this class whenever it needs access to the
* document or the annotation model of the editor. Since an editor might use multiple documents
* and/or annotation models, the match is passed in when asking the editor. The editor is then
* expected to return the proper annotation model or document for the given match.
* </p>
* <p>
* This interface is intended to be implemented by clients.
* </p>
*/
public interface ISearchEditorAccess {
/**
* Finds the document displaying the match.
*
* @param match the match
* @return the document displaying the given match.
*/
IDocument getDocument(Match match);
/**
* Finds the annotation model for the given match
*
* @param match the match
* @return the annotation model displaying the given match.
*/
IAnnotationModel getAnnotationModel(Match match);
}