Mercurial > hg > Members > nobuyasu > jungle-network
annotate src/main/java/alice/jungle/core/NetworkDefaultJungle.java @ 179:d6944d788121
fit Junglecore
author | tatsuki |
---|---|
date | Thu, 04 Sep 2014 13:12:25 +0900 |
parents | 6f104ab4eb81 |
children | 2828205bdc3a |
rev | line source |
---|---|
31 | 1 package alice.jungle.core; |
12
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
2 |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
3 import java.util.Iterator; |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
4 import java.util.concurrent.ConcurrentHashMap; |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
5 |
31 | 6 import alice.jungle.transaction.NetworkDefaultJungleTree; |
12
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList; |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Journal; |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet; |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor; |
177 | 13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; |
12
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultChangeSet; |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeContext; |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode; |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
18 import fj.data.List; |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
19 |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
20 public class NetworkDefaultJungle implements Jungle { |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
21 private Journal journal; |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
22 private ConcurrentHashMap<String,JungleTree> trees; |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
23 private String uuid; |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
24 private TreeEditor editor; |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
25 |
91 | 26 public NetworkDefaultJungle(Journal _journal,String _uuid,TreeEditor _editor) |
12
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
27 { |
83 | 28 journal = _journal; |
12
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
29 trees = new ConcurrentHashMap<String,JungleTree>(); |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
30 uuid = _uuid; |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
31 editor = _editor; |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
32 } |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
33 |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
34 @Override |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
35 public JungleTree getTreeByName(String _name) |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
36 { |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
37 return trees.get(_name); |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
38 } |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
39 |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
40 @Override |
87 | 41 public JungleTree createNewTree(final String _name) |
12
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
42 { |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
43 ChangeList list = new ChangeList(){ |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
44 @Override |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
45 public Iterator<TreeOperation> iterator() { |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
46 List<TreeOperation> nil = List.nil(); |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
47 return nil.iterator(); |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
48 } |
87 | 49 @Override |
50 public String uuid() { | |
51 return uuid; | |
52 } | |
53 @Override | |
54 public String getTreeName() { | |
55 return _name; | |
56 } | |
12
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
57 }; |
177 | 58 TreeNode root = new DefaultTreeNode(); |
59 ChangeSet set = new DefaultChangeSet(root,null,list,uuid,_name, 0); | |
179 | 60 DefaultTreeContext tc = new DefaultTreeContext(root,set); |
61 JungleTree newTree = new NetworkDefaultJungleTree(_name, tc,uuid,journal.getWriter(),editor); | |
12
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
62 if(trees.putIfAbsent(_name,newTree) != null){ |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
63 return null; |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
64 } |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
65 return newTree; |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
66 } |
80680cfcfd3b
add jungle/test/transaction, jungle/test/core/NetworkDefaultJungle
one
parents:
diff
changeset
|
67 } |