Mercurial > hg > Members > nobuyasu > jungle-network
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(); + } + + +}