package net.sourceforge.c4jplugin.internal.builder; import java.util.Map; import net.sourceforge.c4jplugin.internal.core.ContractReferenceModel; import net.sourceforge.c4jplugin.internal.util.ContractReferenceUtil; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResourceVisitor; import org.eclipse.core.resources.IncrementalProjectBuilder; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; public class C4JBuilder extends IncrementalProjectBuilder { @Override protected IProject[] build(int kind, Map args, IProgressMonitor monitor) throws CoreException { if (kind == FULL_BUILD) { ContractReferenceUtil.refreshModel(getProject(), monitor, true); } return null; } @Override protected void clean(IProgressMonitor monitor) throws CoreException { IProject project = getProject(); ContractReferenceUtil.deleteMarkers(project); ContractReferenceModel.clearModel(project); project.accept(new IResourceVisitor() { public boolean visit(IResource resource) throws CoreException { if (resource.getName().endsWith(".java")) ContractReferenceModel.clearResource(resource); return true; } }); } }