annotate src/jungle/test/datasegment/store/operations/DefaultTreeOperationLogContainer.java @ 7:b7396f848d78

add DefaultTreeOperationLogContainer.java
author one
date Tue, 11 Jun 2013 05:33:03 +0900
parents
children ee93e16d5a3f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
1 package jungle.test.datasegment.store.operations;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
2
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
3 import java.io.IOException;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
4 import java.nio.ByteBuffer;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
5 import java.util.LinkedList;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
6 import java.util.List;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
7
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultTreeOperationLog;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.TreeOperationLog;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DefaultTreeOperation;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.PutAttributeOperation;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
17
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
18 import org.msgpack.MessagePack;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
19 import org.msgpack.annotation.Message;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
20 import org.msgpack.template.ListTemplate;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
21 import org.msgpack.template.ValueTemplate;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
22 import org.msgpack.type.Value;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
23
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
24 @Message
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
25 public class DefaultTreeOperationLogContainer {
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
26
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
27 Value logValue;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
28
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
29 public static void main(String[] args) throws IOException {
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
30 String key = "hoge";
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
31 ByteBuffer b = ByteBuffer.wrap("messagepack value".getBytes());
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
32 PutAttributeOperation putOp = new PutAttributeOperation(key, b);
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
33 DefaultNodePath nodePath = new DefaultNodePath();
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
34 nodePath = nodePath.add(1).add(2).add(3);
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
35
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
36 TreeOperation op = new DefaultTreeOperation(nodePath, putOp);
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
37
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
38
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
39
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
40 }
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
41
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
42 public DefaultTreeOperationLogContainer() {
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
43
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
44 }
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
45
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
46 public void unconvert(DefaultTreeOperationLog _log) throws IOException {
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
47 MessagePack msgpack = new MessagePack();
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
48 List<Value> list = new LinkedList<Value>();
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
49 for(TreeOperation op : _log) {
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
50 NodeOperation nOp = op.getNodeOperation();
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
51 NodePath nodePath = op.getNodePath();
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
52 DefaultNodeOperationContainer nodeOpContainer = new DefaultNodeOperationContainer();
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
53 nodeOpContainer.unconvert(nOp);
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
54 DefaultNodePathContainer nodePathContainer = new DefaultNodePathContainer();
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
55 nodePathContainer.unconvert(nodePath);
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
56 DefaultTreeOperationContainer container = new DefaultTreeOperationContainer();
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
57 container.unconvert(nodeOpContainer, nodePathContainer);
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
58 Value v = msgpack.unconvert(container);
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
59 list.add(v);
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
60 }
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
61 /* */
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
62 msgpack.register(List.class, new ListTemplate(ValueTemplate.getInstance()));
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
63 Value listValue = msgpack.unconvert(list);
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
64 logValue = listValue;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
65 }
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
66
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
67 public DefaultTreeOperationLog convert() throws IOException {
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
68 MessagePack msgpack = new MessagePack();
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
69 msgpack.register(List.class, new ListTemplate(ValueTemplate.getInstance()));
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
70 List<Value> listValue = msgpack.convert(logValue, List.class);
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
71 List<TreeOperation> logList = new LinkedList<TreeOperation>();
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
72 for(Value v: listValue) {
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
73 DefaultTreeOperationContainer container = msgpack.convert(v, DefaultTreeOperationContainer.class);
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
74 logList.add(container.convert());
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
75 }
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
76 DefaultTreeOperationLog log = new DefaultTreeOperationLog(logList, logList.size());
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
77 return log;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
78 }
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
79
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
80
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
81
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
82 }