1 11 package org.eclipse.debug.internal.core.sourcelookup.containers; 12 13 import org.eclipse.core.resources.IProject; 14 import org.eclipse.core.resources.IWorkspace; 15 import org.eclipse.core.resources.ResourcesPlugin; 16 import org.eclipse.core.runtime.CoreException; 17 import org.eclipse.debug.core.sourcelookup.ISourceContainer; 18 import org.eclipse.debug.core.sourcelookup.containers.AbstractSourceContainerTypeDelegate; 19 import org.eclipse.debug.core.sourcelookup.containers.ProjectSourceContainer; 20 import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages; 21 import org.w3c.dom.Document ; 22 import org.w3c.dom.Element ; 23 import org.w3c.dom.Node ; 24 25 30 public class ProjectSourceContainerType extends AbstractSourceContainerTypeDelegate { 31 32 35 public String getMemento(ISourceContainer container) throws CoreException { 36 ProjectSourceContainer project = (ProjectSourceContainer) container; 37 Document document = newDocument(); 38 Element element = document.createElement("project"); element.setAttribute("name", project.getContainer().getName()); String referenced = "false"; if (project.isSearchReferencedProjects()) { 42 referenced = "true"; } 44 element.setAttribute("referencedProjects", referenced); document.appendChild(element); 46 return serializeDocument(document); 47 } 48 49 52 public ISourceContainer createSourceContainer(String memento) throws CoreException { 53 Node node = parseDocument(memento); 54 if (node.getNodeType() == Node.ELEMENT_NODE) { 55 Element element = (Element )node; 56 if ("project".equals(element.getNodeName())) { String string = element.getAttribute("name"); if (string == null || string.length() == 0) { 59 abort(SourceLookupMessages.ProjectSourceContainerType_10, null); 60 } 61 String nest = element.getAttribute("referencedProjects"); boolean ref = "true".equals(nest); IWorkspace workspace = ResourcesPlugin.getWorkspace(); 64 IProject project = workspace.getRoot().getProject(string); 65 return new ProjectSourceContainer(project, ref); 66 } 67 abort(SourceLookupMessages.ProjectSourceContainerType_11, null); 68 } 69 abort(SourceLookupMessages.ProjectSourceContainerType_12, null); 70 return null; 71 } 72 } 73 | Popular Tags |