annotate rep/xml/SessionXMLDecoder.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 1fca50ce3508
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
347
86935b872385 *** empty log message ***
kono
parents: 322
diff changeset
3 import java.io.IOException;
56
6ead43b2475e *** empty log message ***
pin
parents: 41
diff changeset
4 import java.io.StringReader;
6ead43b2475e *** empty log message ***
pin
parents: 41
diff changeset
5
6ead43b2475e *** empty log message ***
pin
parents: 41
diff changeset
6 import javax.xml.parsers.DocumentBuilder;
6ead43b2475e *** empty log message ***
pin
parents: 41
diff changeset
7 import javax.xml.parsers.DocumentBuilderFactory;
347
86935b872385 *** empty log message ***
kono
parents: 322
diff changeset
8 import javax.xml.parsers.ParserConfigurationException;
56
6ead43b2475e *** empty log message ***
pin
parents: 41
diff changeset
9
6ead43b2475e *** empty log message ***
pin
parents: 41
diff changeset
10 import org.w3c.dom.Document;
6ead43b2475e *** empty log message ***
pin
parents: 41
diff changeset
11 import org.w3c.dom.Element;
6ead43b2475e *** empty log message ***
pin
parents: 41
diff changeset
12 import org.w3c.dom.NodeList;
6ead43b2475e *** empty log message ***
pin
parents: 41
diff changeset
13 import org.xml.sax.InputSource;
347
86935b872385 *** empty log message ***
kono
parents: 322
diff changeset
14 import org.xml.sax.SAXException;
56
6ead43b2475e *** empty log message ***
pin
parents: 41
diff changeset
15
74
391d44c94799 *** empty log message ***
pin
parents: 56
diff changeset
16 import rep.Session;
56
6ead43b2475e *** empty log message ***
pin
parents: 41
diff changeset
17 import rep.SessionList;
382
4b87f89b3afd REP Session Manager (Java version)
one@firefly.cr.ie.u-ryukyu.ac.jp
parents: 359
diff changeset
18 import rep.handler.Editor;
56
6ead43b2475e *** empty log message ***
pin
parents: 41
diff changeset
19
40
5c0cd6c01ba8 new file SessionXMLEncoder and SessionXMLDecoder
pin
parents:
diff changeset
20 public class SessionXMLDecoder {
56
6ead43b2475e *** empty log message ***
pin
parents: 41
diff changeset
21
347
86935b872385 *** empty log message ***
kono
parents: 322
diff changeset
22 DocumentBuilderFactory factory;
86935b872385 *** empty log message ***
kono
parents: 322
diff changeset
23 DocumentBuilder builder;
86935b872385 *** empty log message ***
kono
parents: 322
diff changeset
24
86935b872385 *** empty log message ***
kono
parents: 322
diff changeset
25 public SessionXMLDecoder(String string) throws SAXException, IOException {
56
6ead43b2475e *** empty log message ***
pin
parents: 41
diff changeset
26 decode(string);
6ead43b2475e *** empty log message ***
pin
parents: 41
diff changeset
27 }
6ead43b2475e *** empty log message ***
pin
parents: 41
diff changeset
28
6ead43b2475e *** empty log message ***
pin
parents: 41
diff changeset
29 public SessionXMLDecoder() {
347
86935b872385 *** empty log message ***
kono
parents: 322
diff changeset
30 factory = DocumentBuilderFactory.newInstance();
86935b872385 *** empty log message ***
kono
parents: 322
diff changeset
31 try {
86935b872385 *** empty log message ***
kono
parents: 322
diff changeset
32 factory.newDocumentBuilder();
86935b872385 *** empty log message ***
kono
parents: 322
diff changeset
33 } catch (ParserConfigurationException e) {
86935b872385 *** empty log message ***
kono
parents: 322
diff changeset
34 }
56
6ead43b2475e *** empty log message ***
pin
parents: 41
diff changeset
35 }
6ead43b2475e *** empty log message ***
pin
parents: 41
diff changeset
36
347
86935b872385 *** empty log message ***
kono
parents: 322
diff changeset
37 public SessionList decode(String string) throws SAXException, IOException {
56
6ead43b2475e *** empty log message ***
pin
parents: 41
diff changeset
38 SessionList sessionlist = null;
322
5893fd8c0f50 *** empty log message ***
kono
parents: 317
diff changeset
39 //System.out.println("");
347
86935b872385 *** empty log message ***
kono
parents: 322
diff changeset
40 InputSource source = new InputSource(new StringReader(string));
86935b872385 *** empty log message ***
kono
parents: 322
diff changeset
41 //source.setEncoding("UTF-8");
86935b872385 *** empty log message ***
kono
parents: 322
diff changeset
42 Document doc = builder.parse(source);
86935b872385 *** empty log message ***
kono
parents: 322
diff changeset
43 Element root = doc.getDocumentElement();
86935b872385 *** empty log message ***
kono
parents: 322
diff changeset
44
86935b872385 *** empty log message ***
kono
parents: 322
diff changeset
45 //sessionlist = createSessionList(root);
86935b872385 *** empty log message ***
kono
parents: 322
diff changeset
46 sessionlist = generateSessionList(root);
358
034acadc0cdc *** empty log message ***
kono
parents: 347
diff changeset
47 //sessionlist.setMaxHost(getSessionManagerHost(root));
347
86935b872385 *** empty log message ***
kono
parents: 322
diff changeset
48
86935b872385 *** empty log message ***
kono
parents: 322
diff changeset
49
56
6ead43b2475e *** empty log message ***
pin
parents: 41
diff changeset
50 return sessionlist;
6ead43b2475e *** empty log message ***
pin
parents: 41
diff changeset
51 }
347
86935b872385 *** empty log message ***
kono
parents: 322
diff changeset
52
358
034acadc0cdc *** empty log message ***
kono
parents: 347
diff changeset
53 // private String getSessionManagerHost(Element root) {
034acadc0cdc *** empty log message ***
kono
parents: 347
diff changeset
54 // NodeList nodelist = root.getChildNodes();
034acadc0cdc *** empty log message ***
kono
parents: 347
diff changeset
55 // String host = null;
034acadc0cdc *** empty log message ***
kono
parents: 347
diff changeset
56 // for(int i = 0; i < nodelist.getLength(); i++){
034acadc0cdc *** empty log message ***
kono
parents: 347
diff changeset
57 // if(nodelist.item(i).getNodeName().equals("host")){
034acadc0cdc *** empty log message ***
kono
parents: 347
diff changeset
58 // host = nodelist.item(i).getTextContent();
034acadc0cdc *** empty log message ***
kono
parents: 347
diff changeset
59 // }
034acadc0cdc *** empty log message ***
kono
parents: 347
diff changeset
60 // }
034acadc0cdc *** empty log message ***
kono
parents: 347
diff changeset
61 // return host;
034acadc0cdc *** empty log message ***
kono
parents: 347
diff changeset
62 // }
77
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
63
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
64 private SessionList generateSessionList(Element element){
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
65 SessionList sessionlist = new SessionList();
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
66 NodeList nodelistSession = element.getElementsByTagName("Session");
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
67 for(int i = 0; i < nodelistSession.getLength(); i++){
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
68 Element elementSession = (Element) nodelistSession.item(i);
322
5893fd8c0f50 *** empty log message ***
kono
parents: 317
diff changeset
69 int sid = Integer.parseInt(elementSession.getAttribute("sid"));
77
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
70 NodeList nodelistEditor = elementSession.getElementsByTagName("Editor");
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
71
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
72 Session session = null;
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
73 for(int j = 0; j < nodelistEditor.getLength(); j++){
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
74 String eid = ((Element)nodelistEditor.item(j)).getAttribute("eid");
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
75
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
76 Element elementEditor = (Element) nodelistEditor.item(j);
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
77 NodeList nodelistEditorHost = elementEditor.getElementsByTagName("host");
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
78 Element elementHost = (Element) nodelistEditorHost.item(0);
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
79 String host = elementHost.getFirstChild().getNodeValue();
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
80
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
81 if(elementEditor.getChildNodes().getLength() > 2){
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
82 NodeList nodelistEditorFile = elementEditor.getElementsByTagName("file");
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
83 Element elementFile = (Element) nodelistEditorFile.item(0);
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
84 String file = elementFile.getFirstChild().getNodeValue();
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
85
317
c83a3faec487 *** empty log message ***
kono
parents: 263
diff changeset
86 Editor editor = new Editor(null, false, 0);
179
763aad2da6b3 *** empty log message ***
pin
parents: 131
diff changeset
87 editor.setHost(host);/* editor.setPort(port)*/; editor.setName(file); editor.setEID(Integer.parseInt(eid));
322
5893fd8c0f50 *** empty log message ***
kono
parents: 317
diff changeset
88 session = new Session(sid, editor);
77
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
89 session.addEditor(editor);
359
fa041bae35f1 all code written for distributed session except gather.
kono
parents: 358
diff changeset
90 sessionlist.put(sid,session);
77
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
91
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
92 }else {
317
c83a3faec487 *** empty log message ***
kono
parents: 263
diff changeset
93 Editor editor = new Editor(null, false, 0);
179
763aad2da6b3 *** empty log message ***
pin
parents: 131
diff changeset
94 editor.setHost(host);/* editor.setPort(port)*/; editor.setName(null); editor.setEID(Integer.parseInt(eid));
77
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
95 if(session != null){
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
96 session.addEditor(editor);
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
97 }
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
98 }
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
99 }
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
100 }
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
101 return sessionlist;
eb78312ea831 *** empty log message ***
pin
parents: 74
diff changeset
102 }
41
86a1553028ad *** empty log message ***
pin
parents: 40
diff changeset
103
40
5c0cd6c01ba8 new file SessionXMLEncoder and SessionXMLDecoder
pin
parents:
diff changeset
104 }