annotate src/jungle/test/datasegment/store/operations/DefaultTreeOperationLogContainer.java @ 9:49c0eaa4dce2

add StartCodeSegment.java
author one
date Tue, 11 Jun 2013 14:09:42 +0900
parents ee93e16d5a3f
children e968224ad0ce
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 TreeOperation op = new DefaultTreeOperation(nodePath, putOp);
8
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
36 List<TreeOperation> list = new LinkedList<TreeOperation>();
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
37 list.add(op);
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
38 list.add(op);
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
39 list.add(op);
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
40 DefaultTreeOperationLog log = new DefaultTreeOperationLog(list, list.size());
7
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
41
8
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
42 DefaultTreeOperationLogContainer logContainer = new DefaultTreeOperationLogContainer();
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
43 logContainer.unconvert(log);
9
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 8
diff changeset
44
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 8
diff changeset
45 MessagePack msgpack = new MessagePack();
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 8
diff changeset
46 Value logContainerValue = msgpack.unconvert(logContainer);
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 8
diff changeset
47 DefaultTreeOperationLogContainer convertedLogContainer = msgpack.convert(logContainerValue,
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 8
diff changeset
48 DefaultTreeOperationLogContainer.class);
8
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
49
9
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 8
diff changeset
50 TreeOperationLog convertedLog = convertedLogContainer.convert();
8
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
51 for (TreeOperation treeOp : convertedLog) {
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
52 NodePath path = treeOp.getNodePath();
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
53 NodeOperation nodeOp = treeOp.getNodeOperation();
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
54 Command c = nodeOp.getCommand();
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
55 String str = "";
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
56 switch (c) {
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
57 case PUT_ATTRIBUTE:
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
58 String k = nodeOp.getKey();
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
59 ByteBuffer value = nodeOp.getValue();
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
60 if (value.limit() < 100) {
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
61 str = String.format("key:%s,value:%s", k,
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
62 new String(value.array()));
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
63 } else {
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
64 str = String.format("key:%s,value:%d", k, value.limit());
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
65 }
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
66 break;
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
67 case DELETE_ATTRIBUTE:
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
68 str = String.format("key:%s", nodeOp.getKey());
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
69 break;
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
70 case APPEND_CHILD:
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
71 str = String.format("pos:%d", nodeOp.getPosition());
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
72 break;
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
73 case DELETE_CHILD:
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
74 str = String.format("pos:%d", nodeOp.getPosition());
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
75 break;
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
76 }
9
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 8
diff changeset
77 System.out.println(String.format("[%s:%s:%s]", c, path, str));
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 8
diff changeset
78 for (int i: path ) {
8
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
79 System.out.println(i);
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
80 }
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
81
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
82 }
7
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
83
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
84
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
85 }
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
86
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
87 public DefaultTreeOperationLogContainer() {
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
88
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
89 }
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
90
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
91 public void unconvert(DefaultTreeOperationLog _log) throws IOException {
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
92 MessagePack msgpack = new MessagePack();
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
93 List<Value> list = new LinkedList<Value>();
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
94 for(TreeOperation op : _log) {
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
95 NodeOperation nOp = op.getNodeOperation();
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
96 NodePath nodePath = op.getNodePath();
8
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
97 DefaultTreeOperation treeOp = new DefaultTreeOperation(nodePath, nOp);
7
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
98 DefaultTreeOperationContainer container = new DefaultTreeOperationContainer();
8
ee93e16d5a3f implement unconvert and convert method in DefaultTreeOperationLog class
one
parents: 7
diff changeset
99 container.unconvert(treeOp);
7
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
100 Value v = msgpack.unconvert(container);
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
101 list.add(v);
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
102 }
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
103 /* */
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
104 msgpack.register(List.class, new ListTemplate(ValueTemplate.getInstance()));
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
105 Value listValue = msgpack.unconvert(list);
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
106 logValue = listValue;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
107 }
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
108
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
109 public DefaultTreeOperationLog convert() throws IOException {
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
110 MessagePack msgpack = new MessagePack();
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
111 msgpack.register(List.class, new ListTemplate(ValueTemplate.getInstance()));
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
112 List<Value> listValue = msgpack.convert(logValue, List.class);
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
113 List<TreeOperation> logList = new LinkedList<TreeOperation>();
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
114 for(Value v: listValue) {
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
115 DefaultTreeOperationContainer container = msgpack.convert(v, DefaultTreeOperationContainer.class);
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
116 logList.add(container.convert());
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
117 }
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
118 DefaultTreeOperationLog log = new DefaultTreeOperationLog(logList, logList.size());
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
119 return log;
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
120 }
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
121
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
122
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
123
b7396f848d78 add DefaultTreeOperationLogContainer.java
one
parents:
diff changeset
124 }