Mercurial > hg > Database > jungle-network
diff src/alice/jungle/datasegment/store/container/DefaultNodePathContainer.java @ 75:87ec5dd0dc27
Rename from alice.jungle.datasegment.store.operation to alice.jungle.datasegment.store.container
author | one |
---|---|
date | Tue, 15 Oct 2013 14:43:29 +0900 |
parents | src/alice/jungle/datasegment/store/operations/DefaultNodePathContainer.java@89e39301ccaa |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/alice/jungle/datasegment/store/container/DefaultNodePathContainer.java Tue Oct 15 14:43:29 2013 +0900 @@ -0,0 +1,58 @@ +package alice.jungle.datasegment.store.container; + +import java.io.IOException; +import java.util.LinkedList; +import java.util.List; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; + +import org.msgpack.MessagePack; +import org.msgpack.annotation.Message; +import org.msgpack.template.IntegerTemplate; +import org.msgpack.template.ListTemplate; +import org.msgpack.type.Value; + +@Message +public class DefaultNodePathContainer { + + public Value pathValue; + + public static void main(String[] args) throws IOException { + DefaultNodePath p = new DefaultNodePath(); + p = p.add(1).add(2).add(3); + DefaultNodePathContainer pathContainer = new DefaultNodePathContainer(); + pathContainer.unconvert(p); + NodePath convertedPath = pathContainer.convert(); + for (int i : convertedPath) { + System.out.println(i); + } + } + + public DefaultNodePathContainer() { + + } + + public void unconvert(NodePath path) throws IOException { + MessagePack msgpack = new MessagePack(); + List<Integer> list = new LinkedList<Integer>(); + for(Integer i : path) { + list.add(i); + } + /* Remove first Element(-1). */ + list.remove(0); + Value v = msgpack.unconvert(list); + pathValue = v; + } + + public DefaultNodePath convert() throws IOException { + MessagePack msgpack = new MessagePack(); + msgpack.register(List.class, new ListTemplate(IntegerTemplate.getInstance())); + List<Integer> convertedList = (List<Integer>)msgpack.convert(pathValue, List.class); + DefaultNodePath path = new DefaultNodePath(); + for (int i: convertedList) { + path = path.add(i); + } + return path; + } +}