Mercurial > hg > Members > tatsuki > bench > jungle-core
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 } |