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