/*******************************************************************************
* This file is part of the Symfony eclipse plugin.
*
* (c) Robert Gruendler <r.gruendler@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
******************************************************************************/
package com.dubture.symfony.core.builder;
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 com.dubture.symfony.core.log.Logger;
/**
*
* The {@link DeltaVisitor} is a standard delta buildvisitor to parse xml/yml
* config files from a Symfony2 project.
*
*
* @author Robert Gruendler <r.gruendler@gmail.com>
*/
public class DeltaVisitor extends AbstractSymfonyVisitor implements IResourceDeltaVisitor {
@Override
public boolean visit(IResourceDelta delta) throws CoreException {
IResource resource = delta.getResource();
boolean built = false;
switch (delta.getKind()) {
case IResourceDelta.ADDED:
case IResourceDelta.CHANGED:
try {
built = handleResource(resource);
} catch (Exception e) {
Logger.logException(e);
}
break;
case IResourceDelta.REMOVED:
// TODO: find a way to remove the routes of a deleted yml/xml file
if (path != null) {
indexer.deleteServices(path.toString());
}
break;
}
return built;
}
}