Mercurial > hg > RemoteEditor > REPSessionManager
diff rep/xml/SessionXMLEncoder.java @ 358:034acadc0cdc
*** empty log message ***
author | kono |
---|---|
date | Sun, 19 Oct 2008 16:54:37 +0900 |
parents | 5893fd8c0f50 |
children | fa041bae35f1 |
line wrap: on
line diff
--- a/rep/xml/SessionXMLEncoder.java Sat Oct 18 21:28:17 2008 +0900 +++ b/rep/xml/SessionXMLEncoder.java Sun Oct 19 16:54:37 2008 +0900 @@ -5,7 +5,10 @@ import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; @@ -18,26 +21,10 @@ import rep.SessionList; public class SessionXMLEncoder { - private LinkedList<Session> list = new LinkedList<Session>(); - private String sessionmanagerHost; - - public SessionXMLEncoder(SessionList sessionlist) { - sessionmanagerHost = sessionlist.getMaxHost(); - this.list = sessionlist.getList(); - } + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + TransformerFactory tfactory = TransformerFactory.newInstance(); - public SessionXMLEncoder(LinkedList<Session> sessionList) { - this.list = sessionList; - } - - public SessionXMLEncoder() { - } - - public SessionXMLEncoder(Session session) { - list.add(session); - } - - public String sessionListToXML() { + public String sessionListToXML(SessionList list) { /* SessionListをXMLに書き出す。ときの形式 * <?xml version="1.0" encoding="UTF-8"?> * <SessionList><host>naha.ie.u-ryukyu.ac.jp</host> @@ -59,57 +46,62 @@ * </Session> * </SessionList> */ - StringWriter str = null; - try { - str = new StringWriter(); - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - DocumentBuilder builder = factory.newDocumentBuilder(); - Document doc = builder.newDocument(); - Element root = doc.getDocumentElement(); - root = doc.createElement("SessionList"); - - Element elementSeMaHost = doc.createElement("host"); - if(sessionmanagerHost != null) elementSeMaHost.setTextContent(sessionmanagerHost); - root.appendChild(elementSeMaHost); + StringWriter str = new StringWriter(); + DocumentBuilder builder; + try { + builder = factory.newDocumentBuilder(); + } catch (ParserConfigurationException e) { + return ""; + } + Document doc = builder.newDocument(); + Element root = doc.getDocumentElement(); + root = doc.createElement("SessionList"); + // + // Element elementSeMaHost = doc.createElement("host"); + // if(sessionmanagerHost != null) elementSeMaHost.setTextContent(sessionmanagerHost); + // root.appendChild(elementSeMaHost); - for(Session session : list){ - Element elementSession = doc.createElement("Session"); - root.appendChild(elementSession); - elementSession.setAttribute("sid", Integer.toString(session.getSID())); + for(Session session : list.values()){ + Element elementSession = doc.createElement("Session"); + root.appendChild(elementSession); + elementSession.setAttribute("sid", Integer.toString(session.getSID())); + + LinkedList <EditorPlus> editorlist = session.getEditorList(); + for(EditorPlus editor : editorlist){ + Element elementEditor = doc.createElement("Editor"); + elementEditor.setAttribute("eid", Integer.toString(editor.getEID())); + elementSession.appendChild(elementEditor); + + Element elementHost = doc.createElement("host"); + elementEditor.appendChild(elementHost); + elementHost.setTextContent(editor.getHost()); - LinkedList <EditorPlus> editorlist = session.getEditorList(); - for(EditorPlus editor : editorlist){ - Element elementEditor = doc.createElement("Editor"); - elementEditor.setAttribute("eid", Integer.toString(editor.getEID())); - elementSession.appendChild(elementEditor); - - Element elementHost = doc.createElement("host"); - elementEditor.appendChild(elementHost); - elementHost.setTextContent(editor.getHost()); - - Element elementPort = doc.createElement("port"); - elementEditor.appendChild(elementPort); - //elementPort.setTextContent(editor.getPort()); - - if(editor.getName() != null){ - Element elementName = doc.createElement("file"); - elementEditor.appendChild(elementName); - elementName.setTextContent(editor.getName()); - //System.out.println(editor.getName()); - } - } - } - doc.appendChild(root); - - TransformerFactory tfactory = TransformerFactory.newInstance(); - Transformer transformer = tfactory.newTransformer(); - StreamResult result = new StreamResult(str); - transformer.transform(new DOMSource(doc), result); + Element elementPort = doc.createElement("port"); + elementEditor.appendChild(elementPort); + //elementPort.setTextContent(editor.getPort()); + + if(editor.getName() != null){ + Element elementName = doc.createElement("file"); + elementEditor.appendChild(elementName); + elementName.setTextContent(editor.getName()); + //System.out.println(editor.getName()); + } + } + } + doc.appendChild(root); - }catch (Exception e){ - - } - //System.out.println(str.toString()); - return str.toString(); - } + Transformer transformer; + StreamResult result = new StreamResult(str); + try { + transformer = tfactory.newTransformer(); + transformer.transform(new DOMSource(doc), result); + } catch (TransformerConfigurationException e1) { + return ""; + } catch (TransformerException e) { + return ""; + } + + //System.out.println(str.toString()); + return str.toString(); + } }