package net.sf.eclipsefp.haskell.core.partitioned.uuagc;
import net.sf.eclipsefp.haskell.core.HaskellCorePlugin;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceDelta;
import org.eclipse.core.resources.IResourceDeltaVisitor;
import org.eclipse.core.runtime.CoreException;
/**
* Performs an incremental build of the resources.
*
* @author Alejandro Serrano
*/
public class DeltaVisitor implements IResourceDeltaVisitor {
@Override
public boolean visit( final IResourceDelta delta ) throws CoreException {
IResource resource = delta.getResource();
if( UuagcBuilder.mustBeVisited( resource ) ) {
// We have to clean the previous markers
resource.deleteMarkers( HaskellCorePlugin.ID_UUAGC_MARKER, true,
IResource.DEPTH_ZERO );
// And add the new ones
if( delta.getKind() == IResourceDelta.ADDED
|| delta.getKind() == IResourceDelta.CHANGED ) {
UuagcBuilder.build( resource );
}
}
return true;
}
}