1 7 package org.ejtools.jndi.browser.state; 8 9 import java.util.Iterator ; 10 11 import org.apache.log4j.Logger; 12 import org.ejtools.beans.Sort; 13 import org.ejtools.jndi.browser.Browser; 14 import org.ejtools.jndi.browser.frame.ServerInternalFrame; 15 import org.ejtools.jndi.browser.model.Server; 16 import org.ejtools.util.service.Profile; 17 import org.ejtools.util.state.DefaultStoreVisitor; 18 import org.w3c.dom.Document ; 19 import org.w3c.dom.Element ; 20 21 22 27 public class WorkbenchStoreVisitor extends DefaultStoreVisitor { 28 private Document document; 29 private static Logger logger = Logger.getLogger(WorkbenchStoreVisitor.class); 30 31 32 37 public WorkbenchStoreVisitor(Document document) { 38 this.document = document; 39 this.pushCurrentNode(this.document); 40 } 41 42 43 48 public void persist(ServerInternalFrame o) { 49 logger.debug("ServerInternalFrame"); 50 51 Element eFrame = this.document.createElement("jndi-frame"); 52 eFrame.setAttribute("title", o.getTitle()); 53 Element eProfile = this.document.createElement("profile"); 54 eFrame.appendChild(eProfile); 55 56 Profile profile = o.getProfile(); 57 for (Iterator iterator = profile.keySet().iterator(); iterator.hasNext(); ) { 58 String key = (String ) iterator.next(); 59 Element property = this.document.createElement("property"); 60 property.setAttribute("key", key); 61 property.appendChild(this.document.createTextNode(profile.getProperty(key))); 62 eProfile.appendChild(property); 63 } 64 65 this.peekCurrentNode().appendChild(eFrame); 66 this.pushCurrentNode(eFrame); 67 this.persist(o.iterator()); 68 this.popCurrentNode(); 69 } 70 71 72 77 public void persist(Server o) { 78 logger.debug("Server"); 79 80 Element server = this.document.createElement("jndi-server"); 81 server.setAttribute("name", o.getName()); 82 83 this.peekCurrentNode().appendChild(server); 84 this.pushCurrentNode(server); 85 this.persist(o.iterator()); 86 this.popCurrentNode(); 87 } 88 89 94 public void persist(Browser o) { 95 logger.debug("Browser"); 96 97 Element workbench = this.document.createElement("workbench"); 98 99 this.peekCurrentNode().appendChild(workbench); 100 this.pushCurrentNode(workbench); 101 this.persist(Sort.getChildrenByClass(o.iterator(), ServerInternalFrame.class)); 102 this.popCurrentNode(); 103 } 104 } 105 | Popular Tags |