comparison src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/DefaultJungle.java @ 74:3a3622cf2eef

remove error but have a error test program and LoggingChildren.iterator is bad
author one
date Wed, 27 Aug 2014 05:07:50 +0900
parents 57e965b73c9e
children 0f01ee222035
comparison
equal deleted inserted replaced
72:5969848b1bb8 74:3a3622cf2eef
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 import fj.data.List; 6 import fj.data.List;
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList; 7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList;
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Journal; 8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Journal;
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.NullJournal; 9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.NullJournal;
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet; 10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor; 11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
11 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;
12 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.TreeNode;
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; 15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultChangeSet; 16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultChangeSet;
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeContext; 17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeContext;
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode; 18 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode;
17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; 19 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
18 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; 20 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
19 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; 21 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
20 22
21 public class DefaultJungle implements Jungle 23 public class DefaultJungle<T extends TreeNode<T>> implements Jungle
22 { 24 {
23 private Journal journal; 25 private Journal journal;
24 private ConcurrentHashMap<String,JungleTree> trees; 26 private ConcurrentHashMap<String,JungleTree> trees;
25 private String uuid; 27 private String uuid;
26 private TreeEditor editor; 28 private TreeEditor editor;
27 29
28 public static void main(String _args[]) 30 public static <T extends TreeNode<T>>void main(String _args[])
29 { 31 {
30 DefaultJungle j = new DefaultJungle(null,"hoge",new DefaultTreeEditor(new DefaultTraverser())); 32 DefaultJungle<T> j = new DefaultJungle(null,"hoge",new DefaultTreeEditor(new DefaultTraverser()));
31 JungleTree t = j.createNewTree("fuga"); 33 JungleTree t = j.createNewTree("fuga");
32 34
33 JungleTreeEditor e1 = t.getTreeEditor(); 35 JungleTreeEditor e1 = t.getTreeEditor();
34 JungleTreeEditor e2 = t.getTreeEditor(); 36 JungleTreeEditor e2 = t.getTreeEditor();
35 37
74 return _name; 76 return _name;
75 } 77 }
76 }; 78 };
77 79
78 DefaultTreeNode root = new DefaultTreeNode(); 80 DefaultTreeNode root = new DefaultTreeNode();
79 ChangeSet set = new DefaultChangeSet(root.getAsNode(),null,list,uuid,_name,0); 81 ChangeSet<T> set = new DefaultChangeSet(root,null,list,uuid,_name,0);
80 DefaultTreeContext<DefaultTreeNode> tc = new DefaultTreeContext<DefaultTreeNode>(root,set); 82 DefaultTreeContext<DefaultTreeNode> tc = new DefaultTreeContext<DefaultTreeNode>(root,set);
81 JungleTree newTree = new DefaultJungleTree<DefaultTreeNode>(tc,uuid,journal.getWriter(),editor); 83 JungleTree newTree = new DefaultJungleTree<DefaultTreeNode>(tc,uuid,journal.getWriter(),editor);
82 if(trees.putIfAbsent(_name,newTree) != null){ 84 if(trees.putIfAbsent(_name,newTree) != null){
83 return null; 85 return null;
84 } 86 }