diff src/main/java/alice/jungle/transaction/NetworkDefaultJungleTree.java @ 105:f9e29a52efd3

Move some files
author one
date Tue, 26 Nov 2013 06:43:10 +0900
parents src/alice/jungle/transaction/NetworkDefaultJungleTree.java@47e337fc4086
children 6f104ab4eb81
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/alice/jungle/transaction/NetworkDefaultJungleTree.java	Tue Nov 26 06:43:10 2013 +0900
@@ -0,0 +1,56 @@
+package alice.jungle.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.TreeContext;
+
+public class NetworkDefaultJungleTree<T extends TreeNode<T>> implements JungleTree {
+	private final AtomicReservableReference<TreeContext<T>> repository;
+	private final String uuid;
+	private final String treeName;
+	private final ChangeListWriter writer;
+	private final TreeEditor editor;
+	
+	public NetworkDefaultJungleTree(String _treeName, TreeContext<T> _tc,String _uuid,ChangeListWriter _writer,TreeEditor _editor)
+	{
+		treeName = _treeName;
+		repository = new AtomicReservableReference<TreeContext<T>>(_tc);
+		uuid = _uuid;
+		writer = _writer;
+		editor = _editor;
+	}
+
+	@Override
+	public JungleTreeEditor getTreeEditor()
+	{
+		TreeContext<T> tc = repository.get();
+		NetworkTransactionManager<T> txManager = new NetworkTransactionManager<T>(treeName, writer,tc,repository,uuid);
+		T root = tc.getTreeNode();
+		return new NetworkDefaultJungleTreeEditor<T>(treeName, root,txManager,editor);
+	}
+	
+	@Override
+	public JungleTreeEditor getLocalTreeEditor()
+	{
+		TreeContext<T> tc = repository.get();
+		NetworkTransactionManager<T> txManager = new NetworkTransactionManager<T>(treeName, writer,tc,repository,uuid);
+		T root = tc.getTreeNode();
+		return NetworkDefaultJungleTreeEditor.NewLocalJungleTreeEditor(treeName,root,txManager, editor);
+	}
+	
+	@Override
+	public Node getRootNode()
+	{
+		TreeContext<T> tc = repository.get();
+		ChangeSet cs = tc.getChangeSet();
+		return cs.getRoot();
+	}
+
+
+}