/**
*
*/
package org.goko.tools.editor.component.provider;
import javax.swing.ProgressMonitor;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.source.IAnnotationModel;
import org.goko.core.common.exception.GkException;
/**
* @author Psyko
* @date 25 mai 2016
*/
public interface IDocumentProvider {
boolean isModifiable() throws GkException;
void saveDocument(ProgressMonitor monitor) throws GkException;
IDocument getDocument() throws GkException;
String getDocumentName();
boolean isDirty();
void setDirty(boolean dirty);
void addDocumentProviderListener(IDocumentProviderListener listener);
/**
* Removes all the registered document provider listeners
*/
public void removeAllDocumentProviderListener();
IAnnotationModel getAnnotationModel() throws GkException;
}