package org.objectstyle.wolips.womodeler;
import java.util.Map;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.objectstyle.wolips.womodeler.server.IRequestHandler;
import org.objectstyle.wolips.womodeler.server.Request;
import org.objectstyle.wolips.womodeler.server.Webserver;
public class RefreshRequestHandler implements IRequestHandler {
public void init(Webserver server) throws Exception {
// DO NOTHING
}
public void handle(Request request) throws Exception {
Map<String, String> params = request.getQueryParameters();
String pathStr = params.get("path");
Path path = new Path(pathStr);
if (path.isAbsolute()) {
IResource[] resources = ResourcesPlugin.getWorkspace().getRoot().findContainersForLocation(path);
if (resources.length == 0) {
resources = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocation(path);
}
for (IResource resource : resources) {
resource.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
}
}
else {
IResource resource = ResourcesPlugin.getWorkspace().getRoot().findMember(path);
if (resource.exists()) {
resource.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
}
}
request.getWriter().println("ok");
}
}