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();
+	}
 }