annotate rep/xml/SessionXMLEncoder.java @ 322:5893fd8c0f50

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