Mercurial > hg > RemoteEditor > REPSessionManager
view rep/xml/SessionXMLEncoder.java @ 328:6ceb222570cb
merge is working now.
author | kono |
---|---|
date | Sat, 11 Oct 2008 22:23:45 +0900 |
parents | 5893fd8c0f50 |
children | 034acadc0cdc |
line wrap: on
line source
package rep.xml; import java.io.StringWriter; import java.util.LinkedList; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; import rep.EditorPlus; import rep.Session; import rep.SessionList; public class SessionXMLEncoder { private LinkedList<Session> list = new LinkedList<Session>(); private String sessionmanagerHost; public SessionXMLEncoder(SessionList sessionlist) { sessionmanagerHost = sessionlist.getMaxHost(); this.list = sessionlist.getList(); } public SessionXMLEncoder(LinkedList<Session> sessionList) { this.list = sessionList; } public SessionXMLEncoder() { } public SessionXMLEncoder(Session session) { list.add(session); } public String sessionListToXML() { /* SessionListをXMLに書き出す。ときの形式 * <?xml version="1.0" encoding="UTF-8"?> * <SessionList><host>naha.ie.u-ryukyu.ac.jp</host> * <Session sid="1"> * <Editor eid="1"> * <host>firefly.cr.ie.u-ryukyu.ac.jp</host> * <port/> * <file>Test.java</file> * </Editor> * <Editor eid="1"> * <host>firefly.cr.ie.u-ryukyu.ac.jp</host> * <port/> * <file>Test.java</file> * </Editor> * <Editor eid="2"> * <host>teto.cr.ie.u-ryukyu.ac.jp</host> * <port/> * </Editor> * </Session> * </SessionList> */ StringWriter str = null; try { str = new StringWriter(); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.newDocument(); Element root = doc.getDocumentElement(); root = doc.createElement("SessionList"); Element elementSeMaHost = doc.createElement("host"); if(sessionmanagerHost != null) elementSeMaHost.setTextContent(sessionmanagerHost); root.appendChild(elementSeMaHost); for(Session session : list){ Element elementSession = doc.createElement("Session"); root.appendChild(elementSession); elementSession.setAttribute("sid", Integer.toString(session.getSID())); LinkedList <EditorPlus> editorlist = session.getEditorList(); for(EditorPlus editor : editorlist){ Element elementEditor = doc.createElement("Editor"); elementEditor.setAttribute("eid", Integer.toString(editor.getEID())); elementSession.appendChild(elementEditor); Element elementHost = doc.createElement("host"); elementEditor.appendChild(elementHost); elementHost.setTextContent(editor.getHost()); Element elementPort = doc.createElement("port"); elementEditor.appendChild(elementPort); //elementPort.setTextContent(editor.getPort()); if(editor.getName() != null){ Element elementName = doc.createElement("file"); elementEditor.appendChild(elementName); elementName.setTextContent(editor.getName()); //System.out.println(editor.getName()); } } } doc.appendChild(root); TransformerFactory tfactory = TransformerFactory.newInstance(); Transformer transformer = tfactory.newTransformer(); StreamResult result = new StreamResult(str); transformer.transform(new DOMSource(doc), result); }catch (Exception e){ } //System.out.println(str.toString()); return str.toString(); } }