diff src/jungle/test/transaction/NetworkDefaultJungleTree.java @ 12:80680cfcfd3b

add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
author one
date Wed, 26 Jun 2013 19:03:19 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/jungle/test/transaction/NetworkDefaultJungleTree.java	Wed Jun 26 19:03:19 2013 +0900
@@ -0,0 +1,44 @@
+package jungle.test.transaction;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.AtomicReservableReference;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTransactionManager;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TreeContext;
+
+public class NetworkDefaultJungleTree<T extends TreeNode<T>> implements JungleTree {
+	private final AtomicReservableReference<TreeContext<T>> repository;
+	private final String uuid;
+	private final ChangeListWriter writer;
+	private final TreeEditor editor;
+	
+	public NetworkDefaultJungleTree(TreeContext<T> _tc,String _uuid,ChangeListWriter _writer,TreeEditor _editor)
+	{
+		repository = new AtomicReservableReference<TreeContext<T>>(_tc);
+		uuid = _uuid;
+		writer = _writer;
+		editor = _editor;
+	}
+
+	@Override
+	public JungleTreeEditor getTreeEditor()
+	{
+		TreeContext<T> tc = repository.get();
+		DefaultTransactionManager<T> txManager = new DefaultTransactionManager<T>(writer,tc,repository,uuid);
+		T root = tc.getTreeNode();
+		return new NetworkDefaultJungleTreeEditor<T>(root,txManager,editor);
+	}
+
+	@Override
+	public Node getRootNode()
+	{
+		TreeContext<T> tc = repository.get();
+		ChangeSet cs = tc.getChangeSet();
+		return cs.getRoot();
+	}
+}