Mercurial > hg > RemoteEditor > REPSessionManager
annotate rep/xml/SessionXMLEncoder.java @ 382:4b87f89b3afd
REP Session Manager (Java version)
new structure
author | one@firefly.cr.ie.u-ryukyu.ac.jp |
---|---|
date | Mon, 10 Nov 2008 22:07:45 +0900 |
parents | fa041bae35f1 |
children |
rev | line source |
---|---|
40 | 1 package rep.xml; |
2 | |
3 import java.io.StringWriter; | |
4 import javax.xml.parsers.DocumentBuilder; | |
5 import javax.xml.parsers.DocumentBuilderFactory; | |
358 | 6 import javax.xml.parsers.ParserConfigurationException; |
40 | 7 import javax.xml.transform.Transformer; |
358 | 8 import javax.xml.transform.TransformerConfigurationException; |
9 import javax.xml.transform.TransformerException; | |
40 | 10 import javax.xml.transform.TransformerFactory; |
11 import javax.xml.transform.dom.DOMSource; | |
12 import javax.xml.transform.stream.StreamResult; | |
13 | |
14 import org.w3c.dom.Document; | |
15 import org.w3c.dom.Element; | |
16 | |
17 import rep.Session; | |
18 import rep.SessionList; | |
382
4b87f89b3afd
REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
359
diff
changeset
|
19 import rep.handler.REPNode; |
40 | 20 |
21 public class SessionXMLEncoder { | |
358 | 22 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); |
23 TransformerFactory tfactory = TransformerFactory.newInstance(); | |
40 | 24 |
358 | 25 public String sessionListToXML(SessionList list) { |
122 | 26 /* SessionListをXMLに書き出す。ときの形式 |
322 | 27 * <?xml version="1.0" encoding="UTF-8"?> |
28 * <SessionList><host>naha.ie.u-ryukyu.ac.jp</host> | |
29 * <Session sid="1"> | |
30 * <Editor eid="1"> | |
31 * <host>firefly.cr.ie.u-ryukyu.ac.jp</host> | |
32 * <port/> | |
33 * <file>Test.java</file> | |
34 * </Editor> | |
35 * <Editor eid="1"> | |
36 * <host>firefly.cr.ie.u-ryukyu.ac.jp</host> | |
37 * <port/> | |
38 * <file>Test.java</file> | |
39 * </Editor> | |
40 * <Editor eid="2"> | |
41 * <host>teto.cr.ie.u-ryukyu.ac.jp</host> | |
42 * <port/> | |
43 * </Editor> | |
44 * </Session> | |
45 * </SessionList> | |
40 | 46 */ |
358 | 47 StringWriter str = new StringWriter(); |
48 DocumentBuilder builder; | |
49 try { | |
50 builder = factory.newDocumentBuilder(); | |
51 } catch (ParserConfigurationException e) { | |
52 return ""; | |
53 } | |
54 Document doc = builder.newDocument(); | |
55 Element root = doc.getDocumentElement(); | |
56 root = doc.createElement("SessionList"); | |
57 // | |
58 // Element elementSeMaHost = doc.createElement("host"); | |
59 // if(sessionmanagerHost != null) elementSeMaHost.setTextContent(sessionmanagerHost); | |
60 // root.appendChild(elementSeMaHost); | |
43 | 61 |
358 | 62 for(Session session : list.values()){ |
63 Element elementSession = doc.createElement("Session"); | |
64 root.appendChild(elementSession); | |
65 elementSession.setAttribute("sid", Integer.toString(session.getSID())); | |
66 | |
382
4b87f89b3afd
REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
359
diff
changeset
|
67 for(REPNode editor : session.getEditorList()){ |
358 | 68 Element elementEditor = doc.createElement("Editor"); |
69 elementEditor.setAttribute("eid", Integer.toString(editor.getEID())); | |
70 elementSession.appendChild(elementEditor); | |
71 | |
72 Element elementHost = doc.createElement("host"); | |
73 elementEditor.appendChild(elementHost); | |
74 elementHost.setTextContent(editor.getHost()); | |
43 | 75 |
358 | 76 Element elementPort = doc.createElement("port"); |
77 elementEditor.appendChild(elementPort); | |
78 //elementPort.setTextContent(editor.getPort()); | |
79 | |
80 if(editor.getName() != null){ | |
81 Element elementName = doc.createElement("file"); | |
82 elementEditor.appendChild(elementName); | |
83 elementName.setTextContent(editor.getName()); | |
84 //System.out.println(editor.getName()); | |
85 } | |
86 } | |
87 } | |
88 doc.appendChild(root); | |
40 | 89 |
358 | 90 Transformer transformer; |
91 StreamResult result = new StreamResult(str); | |
92 try { | |
93 transformer = tfactory.newTransformer(); | |
94 transformer.transform(new DOMSource(doc), result); | |
95 } catch (TransformerConfigurationException e1) { | |
96 return ""; | |
97 } catch (TransformerException e) { | |
98 return ""; | |
99 } | |
100 | |
101 //System.out.println(str.toString()); | |
102 return str.toString(); | |
103 } | |
40 | 104 } |