| 1 11 package org.eclipse.debug.internal.core.sourcelookup.containers; 12 13 import org.eclipse.core.runtime.CoreException; 14 import org.eclipse.core.runtime.Path; 15 import org.eclipse.debug.core.sourcelookup.ISourceContainer; 16 import org.eclipse.debug.core.sourcelookup.containers.AbstractSourceContainerTypeDelegate; 17 import org.eclipse.debug.core.sourcelookup.containers.DirectorySourceContainer; 18 import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages; 19 import org.w3c.dom.Document ; 20 import org.w3c.dom.Element ; 21 import org.w3c.dom.Node ; 22 23 28 public class DirectorySourceContainerType extends AbstractSourceContainerTypeDelegate { 29 30 33 public ISourceContainer createSourceContainer(String memento) throws CoreException { 34 Node node = parseDocument(memento); 35 if (node.getNodeType() == Node.ELEMENT_NODE) { 36 Element element = (Element )node; 37 if ("directory".equals(element.getNodeName())) { String string = element.getAttribute("path"); if (string == null || string.length() == 0) { 40 abort(SourceLookupMessages.DirectorySourceContainerType_10, null); 41 } 42 String nest = element.getAttribute("nest"); boolean nested = "true".equals(nest); return new DirectorySourceContainer(new Path(string), nested); 45 } 46 abort(SourceLookupMessages.DirectorySourceContainerType_11, null); 47 } 48 abort(SourceLookupMessages.DirectorySourceContainerType_12, null); 49 return null; 50 } 51 52 55 public String getMemento(ISourceContainer container) throws CoreException { 56 DirectorySourceContainer folder = (DirectorySourceContainer) container; 57 Document document = newDocument(); 58 Element element = document.createElement("directory"); element.setAttribute("path", folder.getDirectory().getAbsolutePath()); String nest = "false"; if (folder.isComposite()) { 62 nest = "true"; } 64 element.setAttribute("nest", nest); document.appendChild(element); 66 return serializeDocument(document); 67 } 68 69 } 70 | Popular Tags |