annotate src/treecms/memory/OnMemoryMonotonicTree.java @ 23:77a894c0b919

commit
author shoshi
date Thu, 09 Jun 2011 01:03:48 +0900
parents fa784faafc78
children c1e7ec6b3d44
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11
shoshi
parents:
diff changeset
1 package treecms.memory;
23
shoshi
parents: 22
diff changeset
2 import java.util.concurrent.ConcurrentHashMap;
11
shoshi
parents:
diff changeset
3
21
shoshi
parents: 17
diff changeset
4 import java.util.concurrent.ConcurrentMap;
shoshi
parents: 17
diff changeset
5
11
shoshi
parents:
diff changeset
6 import treecms.api.MonotonicTree;
15
misaka
parents: 11
diff changeset
7 import treecms.api.MonotonicTreeNode;
21
shoshi
parents: 17
diff changeset
8 import treecms.api.Node;
22
shoshi
parents: 21
diff changeset
9 import treecms.api.NodeID;
23
shoshi
parents: 22
diff changeset
10 import treecms.api.NodeTable;
22
shoshi
parents: 21
diff changeset
11 import treecms.tree.util.NodeData;
23
shoshi
parents: 22
diff changeset
12 import treecms.tree.util.NodeTableImpl;
11
shoshi
parents:
diff changeset
13
shoshi
parents:
diff changeset
14 public class OnMemoryMonotonicTree implements MonotonicTree
shoshi
parents:
diff changeset
15 {
22
shoshi
parents: 21
diff changeset
16 private final OnMemoryMonotonicTree m_tree;
23
shoshi
parents: 22
diff changeset
17 private final NodeTable m_table;
shoshi
parents: 22
diff changeset
18 private final OnMemoryMonotonicTreeNode m_root;
21
shoshi
parents: 17
diff changeset
19
22
shoshi
parents: 21
diff changeset
20 private OnMemoryMonotonicTree(OnMemoryNode _root,OnMemoryMonotonicTree _tree)
11
shoshi
parents:
diff changeset
21 {
22
shoshi
parents: 21
diff changeset
22 m_tree = _tree;
23
shoshi
parents: 22
diff changeset
23 m_table = new NodeTableImpl();
shoshi
parents: 22
diff changeset
24
shoshi
parents: 22
diff changeset
25 NodeID id = _root.getID();
shoshi
parents: 22
diff changeset
26 String fid = id.getFamilyID();
shoshi
parents: 22
diff changeset
27 m_root = new OnMemoryMonotonicTreeNode(fid,null,m_table);
21
shoshi
parents: 17
diff changeset
28 }
shoshi
parents: 17
diff changeset
29
22
shoshi
parents: 21
diff changeset
30 public static OnMemoryMonotonicTree createInstance(OnMemoryNode _root,OnMemoryMonotonicTree _tree)
shoshi
parents: 21
diff changeset
31 {
shoshi
parents: 21
diff changeset
32 OnMemoryMonotonicTree tree = new OnMemoryMonotonicTree(_root,_tree);
shoshi
parents: 21
diff changeset
33 tree.m_root = new OnMemoryMonotonicTreeNode(_root.getID().getFamilyID(),null,tree);
shoshi
parents: 21
diff changeset
34 return tree;
shoshi
parents: 21
diff changeset
35 }
shoshi
parents: 21
diff changeset
36
shoshi
parents: 21
diff changeset
37 public OnMemoryNode get(String _fid)
21
shoshi
parents: 17
diff changeset
38 {
22
shoshi
parents: 21
diff changeset
39 return m_members.get(_fid);
11
shoshi
parents:
diff changeset
40 }
22
shoshi
parents: 21
diff changeset
41
shoshi
parents: 21
diff changeset
42 public OnMemoryNode createNode(NodeID _id,NodeData<Node> _data)
shoshi
parents: 21
diff changeset
43 {
shoshi
parents: 21
diff changeset
44 OnMemoryNode newNode = new OnMemoryNode(_id,_data);
shoshi
parents: 21
diff changeset
45 m_members.put(_id.getFamilyID(),newNode);
shoshi
parents: 21
diff changeset
46 return newNode;
shoshi
parents: 21
diff changeset
47 }
shoshi
parents: 21
diff changeset
48
11
shoshi
parents:
diff changeset
49 @Override
shoshi
parents:
diff changeset
50 public boolean commit(boolean _force)
shoshi
parents:
diff changeset
51 {
22
shoshi
parents: 21
diff changeset
52 if(m_tree == null){
shoshi
parents: 21
diff changeset
53 return true;
shoshi
parents: 21
diff changeset
54 }
shoshi
parents: 21
diff changeset
55
21
shoshi
parents: 17
diff changeset
56 return true;
11
shoshi
parents:
diff changeset
57 }
shoshi
parents:
diff changeset
58
shoshi
parents:
diff changeset
59 @Override
shoshi
parents:
diff changeset
60 public boolean pull()
shoshi
parents:
diff changeset
61 {
16
shoshi
parents: 15
diff changeset
62 return true;
11
shoshi
parents:
diff changeset
63 }
shoshi
parents:
diff changeset
64
shoshi
parents:
diff changeset
65 @Override
shoshi
parents:
diff changeset
66 public boolean check()
shoshi
parents:
diff changeset
67 {
23
shoshi
parents: 22
diff changeset
68 if(m_tree != null){
shoshi
parents: 22
diff changeset
69
shoshi
parents: 22
diff changeset
70 }
22
shoshi
parents: 21
diff changeset
71 return m_tree.getRoot().getNode().equals(m_root.getNode());
11
shoshi
parents:
diff changeset
72 }
shoshi
parents:
diff changeset
73
shoshi
parents:
diff changeset
74 @Override
15
misaka
parents: 11
diff changeset
75 public void merge()
misaka
parents: 11
diff changeset
76 {
11
shoshi
parents:
diff changeset
77 }
shoshi
parents:
diff changeset
78
shoshi
parents:
diff changeset
79 @Override
15
misaka
parents: 11
diff changeset
80 public MonotonicTreeNode getRoot()
misaka
parents: 11
diff changeset
81 {
21
shoshi
parents: 17
diff changeset
82 return m_root;
11
shoshi
parents:
diff changeset
83 }
shoshi
parents:
diff changeset
84 }