annotate rep/xml/SessionXMLEncoder.java @ 358:034acadc0cdc

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