Mercurial > hg > Members > tatsuki > bench > jungle-core
comparison src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/DefaultJungle.java @ 100:9a7b7af838e0
add index TreeNodeEditor
but node use
author | one |
---|---|
date | Thu, 11 Sep 2014 03:10:03 +0900 |
parents | fb1dc448ac8c |
children | f9a0e7069811 |
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 java.util.Iterator; | 3 import java.util.Iterator; |
4 import java.util.concurrent.ConcurrentHashMap; | 4 import java.util.concurrent.ConcurrentHashMap; |
5 | 5 |
6 import fj.Ord; | |
6 import fj.data.List; | 7 import fj.data.List; |
8 import fj.data.TreeMap; | |
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList; | 9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList; |
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Journal; | 10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Journal; |
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.NullJournal; | 11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.NullJournal; |
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet; | 12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet; |
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor; | 13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor; |
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; | 14 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; | 15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor; |
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; | |
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; | 17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; |
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultChangeSet; | 18 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultChangeSet; |
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeContext; | 19 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeContext; |
17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode; | 20 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode; |
18 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; | 21 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; |
19 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; | 22 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; |
20 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; | |
21 | 25 |
22 public class DefaultJungle implements Jungle | 26 public class DefaultJungle implements Jungle |
23 { | 27 { |
24 private Journal journal; | 28 private Journal journal; |
25 private ConcurrentHashMap<String,JungleTree> trees; | 29 private ConcurrentHashMap<String,JungleTree> trees; |
75 return _name; | 79 return _name; |
76 } | 80 } |
77 }; | 81 }; |
78 | 82 |
79 DefaultTreeNode root = new DefaultTreeNode(); | 83 DefaultTreeNode root = new DefaultTreeNode(); |
80 ChangeSet set = new DefaultChangeSet(root,null,list,uuid,_name,0); | 84 ChangeSet set = new DefaultChangeSet(root,null,list,uuid,_name,0,null); |
81 DefaultTreeContext tc = new DefaultTreeContext(root,set); | 85 DefaultTreeContext tc = new DefaultTreeContext(root,set); |
82 JungleTree newTree = new DefaultJungleTree(tc,uuid,journal.getWriter(),editor); | 86 TreeMap<String, String> attributeIndex = TreeMap.empty(Ord.stringOrd); |
87 TreeMap<String,TreeNode> nodeIndex = TreeMap.empty(Ord.stringOrd); | |
88 JungleTree newTree = new DefaultJungleTree(tc,uuid,journal.getWriter(),editor , new Pair<TreeMap<String,TreeNode>,TreeMap<String,String>>(nodeIndex, attributeIndex)); | |
83 if(trees.putIfAbsent(_name,newTree) != null){ | 89 if(trees.putIfAbsent(_name,newTree) != null){ |
84 return null; | 90 return null; |
85 } | 91 } |
86 return newTree; | 92 return newTree; |
87 } | 93 } |