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 }