comparison src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/DefaultJungleTree.java @ 100:9a7b7af838e0

add index TreeNodeEditor but node use
author one
date Thu, 11 Sep 2014 03:10:03 +0900
parents fb1dc448ac8c
children c297f0015d9e
comparison
equal deleted inserted replaced
99:92d0c6e4655c 100:9a7b7af838e0
1 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle; 1 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle;
2 2
3 import fj.data.HashMap;
4 import fj.data.TreeMap;
3 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter; 5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter;
4 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet; 6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor; 7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; 8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.AtomicReservableReference; 9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.AtomicReservableReference;
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultJungleTreeEditor; 10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultJungleTreeEditor;
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTransactionManager; 11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTransactionManager;
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TreeContext; 12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TreeContext;
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser;
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair;
11 15
12 16
13 public class DefaultJungleTree implements JungleTree 17 public class DefaultJungleTree implements JungleTree
14 { 18 {
15 private final AtomicReservableReference<TreeContext> repository; 19 private final AtomicReservableReference<TreeContext> repository;
16 private final String uuid; 20 private final String uuid;
17 private final ChangeListWriter writer; 21 private final ChangeListWriter writer;
18 private final TreeEditor editor; 22 private final TreeEditor editor;
19 23 Pair<TreeMap<String,TreeNode>,TreeMap<String,String>> index;
20 public DefaultJungleTree(TreeContext _tc,String _uuid,ChangeListWriter _writer,TreeEditor _editor) 24 public DefaultJungleTree(TreeContext _tc,String _uuid,ChangeListWriter _writer,TreeEditor _editor, Pair<TreeMap<String,TreeNode>,TreeMap<String,String>> index)
21 { 25 {
22 repository = new AtomicReservableReference<TreeContext>(_tc); 26 this.repository = new AtomicReservableReference<TreeContext>(_tc);
23 uuid = _uuid; 27 this.uuid = _uuid;
24 writer = _writer; 28 this.writer = _writer;
25 editor = _editor; 29 this.editor = _editor;
30 this.index = index;
26 } 31 }
27 32
28 @Override 33 @Override
29 public JungleTreeEditor getTreeEditor() 34 public JungleTreeEditor getTreeEditor()
30 { 35 {
31 TreeContext tc = repository.get(); 36 TreeContext tc = repository.get();
32 DefaultTransactionManager txManager = new DefaultTransactionManager(writer,tc,repository,uuid); 37 DefaultTransactionManager txManager = new DefaultTransactionManager(writer,tc,repository,uuid);
33 TreeNode root = tc.getTreeNode(); 38 TreeNode root = tc.getTreeNode();
34 return new DefaultJungleTreeEditor(root,txManager,editor); 39 return new DefaultJungleTreeEditor(root,txManager,editor, index);
35 } 40 }
36 41
37 @Override 42 @Override
38 public JungleTreeEditor getLocalTreeEditor() 43 public JungleTreeEditor getLocalTreeEditor()
39 { 44 {
45 { 50 {
46 TreeContext tc = repository.get(); 51 TreeContext tc = repository.get();
47 ChangeSet cs = tc.getChangeSet(); 52 ChangeSet cs = tc.getChangeSet();
48 return cs.getRoot(); 53 return cs.getRoot();
49 } 54 }
55
56 @Override
57 public InterfaceTraverser getTraverser() {
58 return new InterfaceTraverser(getRootNode());
59 }
50 } 60 }