Mercurial > hg > RemoteEditor > REPSessionManager
comparison rep/xml/SessionXMLEncoder.java @ 358:034acadc0cdc
*** empty log message ***
author | kono |
---|---|
date | Sun, 19 Oct 2008 16:54:37 +0900 |
parents | 5893fd8c0f50 |
children | fa041bae35f1 |
comparison
equal
deleted
inserted
replaced
357:6ae9dcb30a12 | 358:034acadc0cdc |
---|---|
3 import java.io.StringWriter; | 3 import java.io.StringWriter; |
4 import java.util.LinkedList; | 4 import java.util.LinkedList; |
5 | 5 |
6 import javax.xml.parsers.DocumentBuilder; | 6 import javax.xml.parsers.DocumentBuilder; |
7 import javax.xml.parsers.DocumentBuilderFactory; | 7 import javax.xml.parsers.DocumentBuilderFactory; |
8 import javax.xml.parsers.ParserConfigurationException; | |
8 import javax.xml.transform.Transformer; | 9 import javax.xml.transform.Transformer; |
10 import javax.xml.transform.TransformerConfigurationException; | |
11 import javax.xml.transform.TransformerException; | |
9 import javax.xml.transform.TransformerFactory; | 12 import javax.xml.transform.TransformerFactory; |
10 import javax.xml.transform.dom.DOMSource; | 13 import javax.xml.transform.dom.DOMSource; |
11 import javax.xml.transform.stream.StreamResult; | 14 import javax.xml.transform.stream.StreamResult; |
12 | 15 |
13 import org.w3c.dom.Document; | 16 import org.w3c.dom.Document; |
16 import rep.EditorPlus; | 19 import rep.EditorPlus; |
17 import rep.Session; | 20 import rep.Session; |
18 import rep.SessionList; | 21 import rep.SessionList; |
19 | 22 |
20 public class SessionXMLEncoder { | 23 public class SessionXMLEncoder { |
21 private LinkedList<Session> list = new LinkedList<Session>(); | 24 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); |
22 private String sessionmanagerHost; | 25 TransformerFactory tfactory = TransformerFactory.newInstance(); |
23 | 26 |
24 public SessionXMLEncoder(SessionList sessionlist) { | 27 public String sessionListToXML(SessionList list) { |
25 sessionmanagerHost = sessionlist.getMaxHost(); | |
26 this.list = sessionlist.getList(); | |
27 } | |
28 | |
29 public SessionXMLEncoder(LinkedList<Session> sessionList) { | |
30 this.list = sessionList; | |
31 } | |
32 | |
33 public SessionXMLEncoder() { | |
34 } | |
35 | |
36 public SessionXMLEncoder(Session session) { | |
37 list.add(session); | |
38 } | |
39 | |
40 public String sessionListToXML() { | |
41 /* SessionListをXMLに書き出す。ときの形式 | 28 /* SessionListをXMLに書き出す。ときの形式 |
42 * <?xml version="1.0" encoding="UTF-8"?> | 29 * <?xml version="1.0" encoding="UTF-8"?> |
43 * <SessionList><host>naha.ie.u-ryukyu.ac.jp</host> | 30 * <SessionList><host>naha.ie.u-ryukyu.ac.jp</host> |
44 * <Session sid="1"> | 31 * <Session sid="1"> |
45 * <Editor eid="1"> | 32 * <Editor eid="1"> |
57 * <port/> | 44 * <port/> |
58 * </Editor> | 45 * </Editor> |
59 * </Session> | 46 * </Session> |
60 * </SessionList> | 47 * </SessionList> |
61 */ | 48 */ |
62 StringWriter str = null; | 49 StringWriter str = new StringWriter(); |
63 try { | 50 DocumentBuilder builder; |
64 str = new StringWriter(); | 51 try { |
65 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); | 52 builder = factory.newDocumentBuilder(); |
66 DocumentBuilder builder = factory.newDocumentBuilder(); | 53 } catch (ParserConfigurationException e) { |
67 Document doc = builder.newDocument(); | 54 return ""; |
68 Element root = doc.getDocumentElement(); | 55 } |
69 root = doc.createElement("SessionList"); | 56 Document doc = builder.newDocument(); |
70 | 57 Element root = doc.getDocumentElement(); |
71 Element elementSeMaHost = doc.createElement("host"); | 58 root = doc.createElement("SessionList"); |
72 if(sessionmanagerHost != null) elementSeMaHost.setTextContent(sessionmanagerHost); | 59 // |
73 root.appendChild(elementSeMaHost); | 60 // Element elementSeMaHost = doc.createElement("host"); |
61 // if(sessionmanagerHost != null) elementSeMaHost.setTextContent(sessionmanagerHost); | |
62 // root.appendChild(elementSeMaHost); | |
74 | 63 |
75 for(Session session : list){ | 64 for(Session session : list.values()){ |
76 Element elementSession = doc.createElement("Session"); | 65 Element elementSession = doc.createElement("Session"); |
77 root.appendChild(elementSession); | 66 root.appendChild(elementSession); |
78 elementSession.setAttribute("sid", Integer.toString(session.getSID())); | 67 elementSession.setAttribute("sid", Integer.toString(session.getSID())); |
79 | 68 |
80 LinkedList <EditorPlus> editorlist = session.getEditorList(); | 69 LinkedList <EditorPlus> editorlist = session.getEditorList(); |
81 for(EditorPlus editor : editorlist){ | 70 for(EditorPlus editor : editorlist){ |
82 Element elementEditor = doc.createElement("Editor"); | 71 Element elementEditor = doc.createElement("Editor"); |
83 elementEditor.setAttribute("eid", Integer.toString(editor.getEID())); | 72 elementEditor.setAttribute("eid", Integer.toString(editor.getEID())); |
84 elementSession.appendChild(elementEditor); | 73 elementSession.appendChild(elementEditor); |
85 | |
86 Element elementHost = doc.createElement("host"); | |
87 elementEditor.appendChild(elementHost); | |
88 elementHost.setTextContent(editor.getHost()); | |
89 | |
90 Element elementPort = doc.createElement("port"); | |
91 elementEditor.appendChild(elementPort); | |
92 //elementPort.setTextContent(editor.getPort()); | |
93 | |
94 if(editor.getName() != null){ | |
95 Element elementName = doc.createElement("file"); | |
96 elementEditor.appendChild(elementName); | |
97 elementName.setTextContent(editor.getName()); | |
98 //System.out.println(editor.getName()); | |
99 } | |
100 } | |
101 } | |
102 doc.appendChild(root); | |
103 | |
104 TransformerFactory tfactory = TransformerFactory.newInstance(); | |
105 Transformer transformer = tfactory.newTransformer(); | |
106 StreamResult result = new StreamResult(str); | |
107 transformer.transform(new DOMSource(doc), result); | |
108 | 74 |
109 }catch (Exception e){ | 75 Element elementHost = doc.createElement("host"); |
110 | 76 elementEditor.appendChild(elementHost); |
77 elementHost.setTextContent(editor.getHost()); | |
78 | |
79 Element elementPort = doc.createElement("port"); | |
80 elementEditor.appendChild(elementPort); | |
81 //elementPort.setTextContent(editor.getPort()); | |
82 | |
83 if(editor.getName() != null){ | |
84 Element elementName = doc.createElement("file"); | |
85 elementEditor.appendChild(elementName); | |
86 elementName.setTextContent(editor.getName()); | |
87 //System.out.println(editor.getName()); | |
111 } | 88 } |
112 //System.out.println(str.toString()); | |
113 return str.toString(); | |
114 } | 89 } |
90 } | |
91 doc.appendChild(root); | |
92 | |
93 Transformer transformer; | |
94 StreamResult result = new StreamResult(str); | |
95 try { | |
96 transformer = tfactory.newTransformer(); | |
97 transformer.transform(new DOMSource(doc), result); | |
98 } catch (TransformerConfigurationException e1) { | |
99 return ""; | |
100 } catch (TransformerException e) { | |
101 return ""; | |
102 } | |
103 | |
104 //System.out.println(str.toString()); | |
105 return str.toString(); | |
106 } | |
115 } | 107 } |