Mercurial > hg > Database > jungle-network
view 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 |
line wrap: on
line source
package jungle.test.datasegment.store.operations; import java.io.IOException; import java.nio.ByteBuffer; import java.util.LinkedList; import java.util.List; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultTreeOperationLog; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.TreeOperationLog; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DefaultTreeOperation; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.PutAttributeOperation; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; import org.msgpack.MessagePack; import org.msgpack.annotation.Message; import org.msgpack.template.ListTemplate; import org.msgpack.template.ValueTemplate; import org.msgpack.type.Value; @Message public class DefaultTreeOperationLogContainer { Value logValue; public static void main(String[] args) throws IOException { String key = "hoge"; ByteBuffer b = ByteBuffer.wrap("messagepack value".getBytes()); PutAttributeOperation putOp = new PutAttributeOperation(key, b); DefaultNodePath nodePath = new DefaultNodePath(); nodePath = nodePath.add(1).add(2).add(3); TreeOperation op = new DefaultTreeOperation(nodePath, putOp); } public DefaultTreeOperationLogContainer() { } public void unconvert(DefaultTreeOperationLog _log) throws IOException { MessagePack msgpack = new MessagePack(); List<Value> list = new LinkedList<Value>(); for(TreeOperation op : _log) { NodeOperation nOp = op.getNodeOperation(); NodePath nodePath = op.getNodePath(); DefaultNodeOperationContainer nodeOpContainer = new DefaultNodeOperationContainer(); nodeOpContainer.unconvert(nOp); DefaultNodePathContainer nodePathContainer = new DefaultNodePathContainer(); nodePathContainer.unconvert(nodePath); DefaultTreeOperationContainer container = new DefaultTreeOperationContainer(); container.unconvert(nodeOpContainer, nodePathContainer); Value v = msgpack.unconvert(container); list.add(v); } /* */ msgpack.register(List.class, new ListTemplate(ValueTemplate.getInstance())); Value listValue = msgpack.unconvert(list); logValue = listValue; } public DefaultTreeOperationLog convert() throws IOException { MessagePack msgpack = new MessagePack(); msgpack.register(List.class, new ListTemplate(ValueTemplate.getInstance())); List<Value> listValue = msgpack.convert(logValue, List.class); List<TreeOperation> logList = new LinkedList<TreeOperation>(); for(Value v: listValue) { DefaultTreeOperationContainer container = msgpack.convert(v, DefaultTreeOperationContainer.class); logList.add(container.convert()); } DefaultTreeOperationLog log = new DefaultTreeOperationLog(logList, logList.size()); return log; } }