/**
* <copyright>
* </copyright>
*
*
*/
package org.dresdenocl.language.ocl.resource.ocl;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.emf.common.util.URI;
/**
* An interface for builders that can be used to perform operations when resources
* are changed and saved. This is an abstraction over the Eclipse builder API that
* is specifically designed for building resources that contain EMF models.
*/
public interface IOclBuilder {
/**
* Check whether building the resource with the given URI is needed.This method
* allows to excluded resource from the build process before these are actually
* loaded. If this method returns false, the build() method will not be invoked
* for the resource located at the given URI.
*/
public boolean isBuildingNeeded(URI uri);
/**
* Builds the given resource.
*/
public IStatus build(org.dresdenocl.language.ocl.resource.ocl.mopp.OclResource resource, IProgressMonitor monitor);
/**
* Handles the deletion of the given resource.
*/
public IStatus handleDeletion(URI uri, IProgressMonitor monitor);
}