Mercurial > hg > Members > tatsuki > bench > jungle-core
comparison src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/DefaultJungle.java @ 104:f9a0e7069811
delete worning halfway
author | one |
---|---|
date | Fri, 12 Sep 2014 16:22:22 +0900 |
parents | 9a7b7af838e0 |
children | 5b7e45464bb8 |
comparison
equal
deleted
inserted
replaced
103:bed3afd5c2e2 | 104:f9a0e7069811 |
---|---|
19 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeContext; | 19 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeContext; |
20 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode; | 20 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode; |
21 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; | 21 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; |
22 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; | 22 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; |
23 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; | 23 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; |
24 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair; | |
25 | 24 |
26 public class DefaultJungle implements Jungle | 25 public class DefaultJungle implements Jungle |
27 { | 26 { |
28 private Journal journal; | 27 private Journal journal; |
29 private ConcurrentHashMap<String,JungleTree> trees; | 28 private ConcurrentHashMap<String,JungleTree> trees; |
30 private String uuid; | 29 private String uuid; |
31 private TreeEditor editor; | 30 private TreeEditor editor; |
32 | 31 |
33 public static void main(String _args[]) | 32 public static void main(String args[]) |
34 { | 33 { |
35 DefaultJungle j = new DefaultJungle(null,"hoge",new DefaultTreeEditor(new DefaultTraverser())); | 34 DefaultJungle j = new DefaultJungle(null,"hoge",new DefaultTreeEditor(new DefaultTraverser())); |
36 JungleTree t = j.createNewTree("fuga"); | 35 JungleTree t = j.createNewTree("fuga"); |
37 | 36 |
38 JungleTreeEditor e1 = t.getTreeEditor(); | 37 JungleTreeEditor e1 = t.getTreeEditor(); |
45 either = e1.addNewChildAt(root.add(0),0); | 44 either = e1.addNewChildAt(root.add(0),0); |
46 e1 = either.b(); | 45 e1 = either.b(); |
47 e1.success(); | 46 e1.success(); |
48 } | 47 } |
49 | 48 |
50 public DefaultJungle(Journal _journal,String _uuid,TreeEditor _editor) | 49 public DefaultJungle(Journal journal,String uuid,TreeEditor editor) |
51 { | 50 { |
52 journal = new NullJournal(); | 51 this.journal = new NullJournal(); |
53 trees = new ConcurrentHashMap<String,JungleTree>(); | 52 this.trees = new ConcurrentHashMap<String,JungleTree>(); |
54 uuid = _uuid; | 53 this.uuid = uuid; |
55 editor = _editor; | 54 this.editor = editor; |
56 } | 55 } |
57 | 56 |
58 @Override | 57 @Override |
59 public JungleTree getTreeByName(String _name) | 58 public JungleTree getTreeByName(String name) |
60 { | 59 { |
61 return trees.get(_name); | 60 return trees.get(name); |
62 } | 61 } |
63 | 62 |
64 @Override | 63 @Override |
65 public JungleTree createNewTree(final String _name) | 64 public JungleTree createNewTree(final String name) |
66 { | 65 { |
67 ChangeList list = new ChangeList(){ | 66 ChangeList list = new ChangeList(){ |
68 @Override | 67 @Override |
69 public Iterator<TreeOperation> iterator() { | 68 public Iterator<TreeOperation> iterator() { |
70 List<TreeOperation> nil = List.nil(); | 69 List<TreeOperation> nil = List.nil(); |
74 public String uuid() { | 73 public String uuid() { |
75 return uuid; | 74 return uuid; |
76 } | 75 } |
77 @Override | 76 @Override |
78 public String getTreeName() { | 77 public String getTreeName() { |
79 return _name; | 78 return name; |
80 } | 79 } |
81 }; | 80 }; |
82 | 81 |
83 DefaultTreeNode root = new DefaultTreeNode(); | 82 DefaultTreeNode root = new DefaultTreeNode(); |
84 ChangeSet set = new DefaultChangeSet(root,null,list,uuid,_name,0,null); | 83 TreeMap<String,List<TreeNode>> index = TreeMap.empty(Ord.stringOrd); |
84 ChangeSet set = new DefaultChangeSet(root,null,list,uuid,name,0,index); | |
85 DefaultTreeContext tc = new DefaultTreeContext(root,set); | 85 DefaultTreeContext tc = new DefaultTreeContext(root,set); |
86 TreeMap<String, String> attributeIndex = TreeMap.empty(Ord.stringOrd); | 86 JungleTree newTree = new DefaultJungleTree(tc,uuid,journal.getWriter(),editor); |
87 TreeMap<String,TreeNode> nodeIndex = TreeMap.empty(Ord.stringOrd); | 87 if(trees.putIfAbsent(name,newTree) != null){ |
88 JungleTree newTree = new DefaultJungleTree(tc,uuid,journal.getWriter(),editor , new Pair<TreeMap<String,TreeNode>,TreeMap<String,String>>(nodeIndex, attributeIndex)); | |
89 if(trees.putIfAbsent(_name,newTree) != null){ | |
90 return null; | 88 return null; |
91 } | 89 } |
92 return newTree; | 90 return newTree; |
93 } | 91 } |
94 } | 92 } |