1 11 package org.eclipse.debug.internal.core.sourcelookup.containers; 12 13 import org.eclipse.core.resources.IFolder; 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.core.runtime.Path; 18 import org.eclipse.debug.core.sourcelookup.ISourceContainer; 19 import org.eclipse.debug.core.sourcelookup.containers.AbstractSourceContainerTypeDelegate; 20 import org.eclipse.debug.core.sourcelookup.containers.FolderSourceContainer; 21 import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages; 22 import org.w3c.dom.Document ; 23 import org.w3c.dom.Element ; 24 import org.w3c.dom.Node ; 25 26 31 public class FolderSourceContainerType extends AbstractSourceContainerTypeDelegate { 32 33 36 public String getMemento(ISourceContainer container) throws CoreException { 37 FolderSourceContainer folderSourceContainer = (FolderSourceContainer)container; 38 Document document = newDocument(); 39 Element element = document.createElement("folder"); element.setAttribute("path", folderSourceContainer.getContainer().getFullPath().toString()); String nest = "false"; if (folderSourceContainer.isComposite()) { 43 nest = "true"; } 45 element.setAttribute("nest", nest); document.appendChild(element); 47 return serializeDocument(document); 48 } 49 50 53 public ISourceContainer createSourceContainer(String memento) throws CoreException { 54 Node node = parseDocument(memento); 55 if (node.getNodeType() == Node.ELEMENT_NODE) { 56 Element element = (Element )node; 57 if ("folder".equals(element.getNodeName())) { String string = element.getAttribute("path"); if (string == null || string.length() == 0) { 60 abort(SourceLookupMessages.FolderSourceContainerType_10, null); 61 } 62 String nest = element.getAttribute("nest"); boolean nested = "true".equals(nest); IWorkspace workspace = ResourcesPlugin.getWorkspace(); 65 IFolder folder = workspace.getRoot().getFolder(new Path(string)); 66 return new FolderSourceContainer(folder, nested); 67 } 68 abort(SourceLookupMessages.FolderSourceContainerType_11, null); 69 } 70 abort(SourceLookupMessages.FolderSourceContainerType_12, null); 71 return null; 72 } 73 } 74 | Popular Tags |