comparison src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/DefaultJungle.java @ 153:20af7f25ef32

miner change
author one
date Tue, 25 Nov 2014 17:52:41 +0900
parents 8a0aa8fc137c
children 7be56a1be5d9 b81df9373a31
comparison
equal deleted inserted replaced
152:8a0aa8fc137c 153:20af7f25ef32
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.NullJournal; 9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.NullJournal;
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet; 10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor; 11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; 12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor; 13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.IndexTreeEditor;
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; 14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultChangeSet; 15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultChangeSet;
17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeContext; 16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeContext;
18 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode; 17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode;
19 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; 18 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
20 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traverser;
21 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; 19 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
22 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; 20 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
23 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index.Index; 21 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index.Index;
24 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index.ParentIndex; 22 import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index.ParentIndex;
25 23
27 { 25 {
28 private Journal journal; 26 private Journal journal;
29 private ConcurrentHashMap<String,JungleTree> trees; 27 private ConcurrentHashMap<String,JungleTree> trees;
30 private String uuid; 28 private String uuid;
31 private TreeEditor editor; 29 private TreeEditor editor;
32 private Traverser traverser;
33 public static void main(String args[]) 30 public static void main(String args[])
34 { 31 {
35 DefaultJungle j = new DefaultJungle(null,"hoge",new DefaultTraverser()); 32 DefaultJungle j = new DefaultJungle(null,"hoge",new DefaultTreeEditor(new DefaultTraverser()));
36 JungleTree t = j.createNewTree("fuga"); 33 JungleTree t = j.createNewTree("fuga");
37 34
38 JungleTreeEditor e1 = t.getTreeEditor(); 35 JungleTreeEditor e1 = t.getTreeEditor();
39 36
40 DefaultNodePath root = new DefaultNodePath(); 37 DefaultNodePath root = new DefaultNodePath();
44 either = e1.addNewChildAt(root.add(0),0); 41 either = e1.addNewChildAt(root.add(0),0);
45 e1 = either.b(); 42 e1 = either.b();
46 e1.success(); 43 e1.success();
47 } 44 }
48 45
49 public DefaultJungle(Journal journal,String uuid,Traverser traverser) 46 public DefaultJungle(Journal journal,String uuid,TreeEditor editor)
50 { 47 {
51 this.journal = new NullJournal(); 48 this.journal = new NullJournal();
52 this.trees = new ConcurrentHashMap<String,JungleTree>(); 49 this.trees = new ConcurrentHashMap<String,JungleTree>();
53 this.uuid = uuid; 50 this.uuid = uuid;
54 this.traverser = traverser; 51 this.editor = editor;
55 this.editor = new DefaultTreeEditor(traverser);
56 } 52 }
57 53
58 @Override 54 @Override
59 public JungleTree getTreeByName(String name) 55 public JungleTree getTreeByName(String name)
60 { 56 {
84 DefaultTreeNode root = new DefaultTreeNode(); 80 DefaultTreeNode root = new DefaultTreeNode();
85 Index index = new Index(); 81 Index index = new Index();
86 ParentIndex parentIndex = new ParentIndex(); 82 ParentIndex parentIndex = new ParentIndex();
87 ChangeSet set = new DefaultChangeSet(root,null,list,uuid,name,0,index,parentIndex); 83 ChangeSet set = new DefaultChangeSet(root,null,list,uuid,name,0,index,parentIndex);
88 DefaultTreeContext tc = new DefaultTreeContext(root,set); 84 DefaultTreeContext tc = new DefaultTreeContext(root,set);
89 JungleTree newTree = new DefaultJungleTree(tc,uuid,journal.getWriter(),editor,new IndexTreeEditor(traverser)); 85 JungleTree newTree = new DefaultJungleTree(tc,uuid,journal.getWriter(),editor);
90 if(trees.putIfAbsent(name,newTree) != null){ 86 if(trees.putIfAbsent(name,newTree) != null){
91 return null; 87 return null;
92 } 88 }
93 return newTree; 89 return newTree;
94 } 90 }