1 11 package org.eclipse.debug.internal.core.sourcelookup.containers; 12 13 import org.eclipse.core.runtime.CoreException; 14 import org.eclipse.debug.core.sourcelookup.ISourceContainer; 15 import org.eclipse.debug.core.sourcelookup.containers.AbstractSourceContainerTypeDelegate; 16 import org.eclipse.debug.core.sourcelookup.containers.ExternalArchiveSourceContainer; 17 import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages; 18 import org.w3c.dom.Document ; 19 import org.w3c.dom.Element ; 20 import org.w3c.dom.Node ; 21 22 27 public class ExternalArchiveSourceContainerType extends AbstractSourceContainerTypeDelegate { 28 29 32 public ISourceContainer createSourceContainer(String memento) throws CoreException { 33 Node node = parseDocument(memento); 34 if (node.getNodeType() == Node.ELEMENT_NODE) { 35 Element element = (Element )node; 36 if ("archive".equals(element.getNodeName())) { String string = element.getAttribute("path"); if (string == null || string.length() == 0) { 39 abort(SourceLookupMessages.ExternalArchiveSourceContainerType_10, null); 40 } 41 String detect = element.getAttribute("detectRoot"); boolean auto = "true".equals(detect); return new ExternalArchiveSourceContainer(string, auto); 44 } 45 abort(SourceLookupMessages.ExternalArchiveSourceContainerType_11, null); 46 } 47 abort(SourceLookupMessages.ExternalArchiveSourceContainerType_12, null); 48 return null; 49 } 50 53 public String getMemento(ISourceContainer container) throws CoreException { 54 ExternalArchiveSourceContainer archive = (ExternalArchiveSourceContainer) container; 55 Document document = newDocument(); 56 Element element = document.createElement("archive"); element.setAttribute("path", archive.getName()); String detectRoot = "false"; if (archive.isDetectRoot()) { 60 detectRoot = "true"; } 62 element.setAttribute("detectRoot", detectRoot); document.appendChild(element); 64 return serializeDocument(document); 65 } 66 } 67 | Popular Tags |