package net.sourceforge.pmd.eclipse.runtime.cmd; import org.apache.log4j.Logger; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResourceDelta; import org.eclipse.core.resources.IResourceDeltaVisitor; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; /** * A PMD visitor for processing resource deltas * * @author Philippe Herlin * */ public class DeltaVisitor extends BaseVisitor implements IResourceDeltaVisitor { private static final Logger log = Logger.getLogger(DeltaVisitor.class); /** * Default constructor */ public DeltaVisitor() { super(); } /** * Constructor with monitor */ public DeltaVisitor(IProgressMonitor monitor) { super(); setMonitor(monitor); } /** * @see org.eclipse.core.resources.IResourceDeltaVisitor#visit(IResourceDelta) */ public boolean visit(IResourceDelta delta) throws CoreException { if (isCanceled()) return false; switch (delta.getKind()) { case IResourceDelta.ADDED : { log.debug("Visiting added resource " + delta.getResource().getName()); visitAdded(delta.getResource()); break; } case IResourceDelta.CHANGED : { log.debug("Visiting changed resource " + delta.getResource().getName()); visitChanged(delta.getResource()); break; } default : { // other kinds are not visited log.debug("Resource " + delta.getResource().getName() + " not visited."); } } return true; } /** * Visit added resource * @param resource a new resource */ private void visitAdded(IResource resource) { reviewResource(resource); } /** * Visit changed resource * @param resource a changed resource */ private void visitChanged(final IResource resource) { reviewResource(resource); } }