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 }