Mercurial > hg > Members > nobuyasu > jungle-network
comparison src/main/java/alice/jungle/core/NetworkDefaultJungle.java @ 105:f9e29a52efd3
Move some files
author | one |
---|---|
date | Tue, 26 Nov 2013 06:43:10 +0900 |
parents | src/alice/jungle/core/NetworkDefaultJungle.java@2c7b3f2b2ee1 |
children | 6f104ab4eb81 |
comparison
equal
deleted
inserted
replaced
104:03bf62bb699e | 105:f9e29a52efd3 |
---|---|
1 package alice.jungle.core; | |
2 | |
3 import java.util.Iterator; | |
4 import java.util.concurrent.ConcurrentHashMap; | |
5 | |
6 import alice.jungle.transaction.NetworkDefaultJungleTree; | |
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; | |
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; | |
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList; | |
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Journal; | |
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet; | |
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor; | |
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; | |
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultChangeSet; | |
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeContext; | |
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode; | |
17 import fj.data.List; | |
18 | |
19 public class NetworkDefaultJungle implements Jungle { | |
20 private Journal journal; | |
21 private ConcurrentHashMap<String,JungleTree> trees; | |
22 private String uuid; | |
23 private TreeEditor editor; | |
24 | |
25 public NetworkDefaultJungle(Journal _journal,String _uuid,TreeEditor _editor) | |
26 { | |
27 journal = _journal; | |
28 trees = new ConcurrentHashMap<String,JungleTree>(); | |
29 uuid = _uuid; | |
30 editor = _editor; | |
31 } | |
32 | |
33 @Override | |
34 public JungleTree getTreeByName(String _name) | |
35 { | |
36 return trees.get(_name); | |
37 } | |
38 | |
39 @Override | |
40 public JungleTree createNewTree(final String _name) | |
41 { | |
42 ChangeList list = new ChangeList(){ | |
43 @Override | |
44 public Iterator<TreeOperation> iterator() { | |
45 List<TreeOperation> nil = List.nil(); | |
46 return nil.iterator(); | |
47 } | |
48 @Override | |
49 public String uuid() { | |
50 return uuid; | |
51 } | |
52 @Override | |
53 public String getTreeName() { | |
54 return _name; | |
55 } | |
56 }; | |
57 DefaultTreeNode root = new DefaultTreeNode(); | |
58 ChangeSet set = new DefaultChangeSet(root.getAsNode(),null,list,uuid,_name, 0); | |
59 DefaultTreeContext<DefaultTreeNode> tc = new DefaultTreeContext<DefaultTreeNode>(root,set); | |
60 JungleTree newTree = new NetworkDefaultJungleTree<DefaultTreeNode>(_name, tc,uuid,journal.getWriter(),editor); | |
61 if(trees.putIfAbsent(_name,newTree) != null){ | |
62 return null; | |
63 } | |
64 return newTree; | |
65 } | |
66 } |