annotate src/treecms/memory/OnMemoryForest.java @ 6:12604eb6b615

added javadoc
author shoshi
date Mon, 14 Mar 2011 23:24:38 +0900
parents f5ed85be5640
children fc19e38b669b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
1 package treecms.memory;
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
2
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
3 import java.util.Map;
2
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
4 import java.util.Random;
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
5 import java.util.UUID;
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
6 import java.util.concurrent.ConcurrentHashMap;
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
7 import treecms.api.Forest;
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
8 import treecms.api.Node;
4
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents: 3
diff changeset
9 import treecms.api.NodeData;
2
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
10 import treecms.api.NodeID;
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
11 import treecms.tree.id.AbstractRandomNodeID;
2
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
12
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
13 public class OnMemoryForest implements Forest
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
14 {
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
15 Map<NodeID,OnMemoryNode> m_table;
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
16 Map<String,OnMemoryNode> m_tipTable;
2
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
17
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
18 public OnMemoryForest()
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
19 {
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
20 m_table = new ConcurrentHashMap<NodeID,OnMemoryNode>();
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
21 m_tipTable = new ConcurrentHashMap<String,OnMemoryNode>();
2
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
22 }
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
23
4
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents: 3
diff changeset
24 public OnMemoryNode createNode(NodeID _id,NodeData _newData)
2
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
25 {
4
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents: 3
diff changeset
26 NodeID newID = (_id != null) ? _id : createID();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents: 3
diff changeset
27 NodeData newData = (_newData != null) ? _newData : new NodeData();
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents: 3
diff changeset
28 OnMemoryNode newNode = new OnMemoryNode(this,newID,newData);
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
29
4
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents: 3
diff changeset
30 m_table.put(newID,newNode);
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
31 m_tipTable.put(newID.getUUID(),newNode);
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
32
3
5fa718b63cd5 finished treecms.memory basic implementation ( not tested yet. )
shoshi
parents: 2
diff changeset
33 return newNode;
2
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
34 }
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
35
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
36 NodeID createID()
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
37 {
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
38 return new RandomNodeID(null);
2
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
39 }
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
40
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
41 @Override
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
42 public Node get(NodeID _id)
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
43 {
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
44 return m_table.get(_id);
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
45 }
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
46
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
47 @Override
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
48 public Node create()
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
49 {
4
f5ed85be5640 finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents: 3
diff changeset
50 return createNode(null,null);
2
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
51 }
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
52
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
53 class RandomNodeID extends AbstractRandomNodeID
2
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
54 {
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
55 String m_uuid;
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
56 long m_version;
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
57
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
58 public RandomNodeID(String _uuid)
2
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
59 {
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
60 if(_uuid != null){
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
61 m_uuid = _uuid;
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
62 }else{
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
63 m_uuid = UUID.randomUUID().toString();
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
64 }
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
65 m_version = (new Random()).nextLong();
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
66 }
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
67
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
68 @Override
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
69 public NodeID create()
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
70 {
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
71 return new RandomNodeID(null);
2
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
72 }
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
73
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
74 @Override
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
75 public NodeID update()
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
76 {
6
12604eb6b615 added javadoc
shoshi
parents: 4
diff changeset
77 return new RandomNodeID(m_uuid);
2
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
78 }
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
79
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
80 @Override
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
81 public String getUUID()
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
82 {
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
83 return m_uuid;
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
84 }
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
85
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
86 @Override
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
87 public String getVersion()
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
88 {
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
89 return Long.toHexString(m_version);
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
90 }
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
91 }
4a5ee88f02cf added OnMemoryForest
shoshi
parents:
diff changeset
92 }