Mercurial > hg > Database > jungle-network
view src/main/java/alice/jungle/transaction/NetworkDefaultJungleTree.java @ 190:269bada9eedc
add
author | tatsuki |
---|---|
date | Fri, 17 Oct 2014 15:16:56 +0900 |
parents | ef5045af0753 |
children | 5d0734fd859d |
line wrap: on
line source
package alice.jungle.transaction; import fj.data.List; import fj.data.TreeMap; 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.persistent.ChangeListWriter; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; 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.IndexJungleTreeEditor; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TreeContext; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair; public class NetworkDefaultJungleTree implements JungleTree { private final AtomicReservableReference<TreeContext> repository; private final String uuid; private final String treeName; private final ChangeListWriter writer; private final TreeEditor editor; public NetworkDefaultJungleTree(String _treeName, TreeContext _tc,String _uuid,ChangeListWriter _writer,TreeEditor _editor) { treeName = _treeName; repository = new AtomicReservableReference<TreeContext>(_tc); uuid = _uuid; writer = _writer; editor = _editor; } @Override public JungleTreeEditor getTreeEditor() { TreeContext tc = repository.get(); NetworkTransactionManager txManager = new NetworkTransactionManager(treeName, writer,tc,repository,uuid); TreeNode root = tc.getTreeNode(); return new NetworkDefaultJungleTreeEditor(treeName, root,txManager,editor); } @Override public JungleTreeEditor getLocalTreeEditor() { TreeContext tc = repository.get(); NetworkTransactionManager txManager = new NetworkTransactionManager(treeName, writer,tc,repository,uuid); TreeNode root = tc.getTreeNode(); return NetworkDefaultJungleTreeEditor.NewLocalJungleTreeEditor(treeName,root,txManager, editor); } @Override public TreeNode getRootNode() { TreeContext tc = repository.get(); ChangeSet cs = tc.getChangeSet(); return cs.getRoot(); } @Override public InterfaceTraverser getTraverser() { TreeContext tc = repository.get(); ChangeSet cs = tc.getChangeSet(); return new InterfaceTraverser(getRootNode(), cs.getIndex(), getTreeEditor()); } @Override public TreeMap<String, TreeMap<String, List<Pair<TreeNode, NodePath>>>> getIndex() { // TODO Auto-generated method stub return null; } @Override public IndexJungleTreeEditor getIndexTreeEditor() { // TODO Auto-generated method stub return null; } }