view rep/SessionList.java @ 394:1d5b608f39da

checkMerge fix
author one
date Wed, 19 Nov 2008 15:31:29 +0900
parents fa041bae35f1
children
line wrap: on
line source

package rep;



import java.util.HashMap;

public class SessionList extends HashMap<Integer,Session>{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private int sid_root = 0;


//	public String getXML() {
///* SessionListをXMLに書き出す。ときの形式
// * 	<Session>
// * 		<editor>
// * 			<sid/>
// * 			<host/>
// * 			<port/>
// * 			<filename/>
// * 		</editor>
// * 		<editor>
// * 			<sid/>
// * 			<host/>
// * 			<port/>
// * 		</editor>
// * 	</Session>
// * 	<SessionManager>
// * 		<host/>
// * 		<port/>
// * 	</SessionManager>
// * <Session>
// * </Session>
// *
//		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");
//			for(Session session : session4){
//				Element element = doc.createElement("Session");
//				root.appendChild(element);
//				Element element2 = doc.createElement("editor");
//				element.appendChild(element2);
//				Editor editor = session.getMaster();
//				Element element3 = doc.createElement(editor.getHost());
//				Element element4 = doc.createElement(editor.getPort());
//				Element element5 = doc.createElement(editor.getName());
//				element5 = doc.createElement(session.getName());
//				element2.appendChild(element3);
//				element2.appendChild(element4);
//				element2.appendChild(element5);
//				
//			}
//			doc.appendChild(root);
//			
//			TransformerFactory tfactory = TransformerFactory.newInstance(); 
//			Transformer transformer = tfactory.newTransformer(); 
//			StreamResult result = new StreamResult(str);
//			//transformer.transform(new DOMSource(doc), new StreamResult(System.out)); 
//			transformer.transform(new DOMSource(doc), result); 
//			System.out.println(str);
////			
////			XMLEncoder e = new XMLEncoder(System.out);
////			e.writeObject(session4);
////			e.writeObject(stringlist);
////			e.close();
//			
//			//System.out.println(doc);
//		}catch (Exception e){
//			e.printStackTrace();
//		}
//		return str.toString();
//	}*/

	
	public Session getSession(int sid) {
		return get(sid);
	}

	public int newSessionID() {
		return ++sid_root ;
	}

	public void merge(SessionList receivedSessionList) {
		for(Session s:receivedSessionList.values()) {
			int sid = s.getSID();
			if (containsKey(sid)) {
				get(sid).merge(s);
			} else {
				put(sid,s);
			}
		}
	}
	

}