Mercurial > hg > Members > tatsuki > bench > jungle-core
view src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/DefaultJungleTree.java @ 82:a4e2f1d45fdc
Merge with e97a59269bf586777ca30668c96fc8e927277501
author | one |
---|---|
date | Sun, 31 Aug 2014 09:00:16 +0900 |
parents | 715a9fbf02fc e97a59269bf5 |
children | fb1dc448ac8c |
line wrap: on
line source
package jp.ac.u_ryukyu.ie.cr.shoshi.jungle; 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.DefaultJungleTreeEditor; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTransactionManager; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TreeContext; public class DefaultJungleTree<T extends TreeNode> implements JungleTree { private final AtomicReservableReference<TreeContext<T>> repository; private final String uuid; private final ChangeListWriter writer; private final TreeEditor editor; public DefaultJungleTree(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); TreeNode root = tc.getTreeNode(); return new DefaultJungleTreeEditor<T>(root,txManager,editor); } @Override public JungleTreeEditor getLocalTreeEditor() { return getTreeEditor(); } @Override public TreeNode getRootNode() { TreeContext<T> tc = repository.get(); ChangeSet cs = tc.getChangeSet(); return cs.getRoot(); } }