diff src/jungle/test/datasegment/store/operations/DefaultNodePathContainer.java @ 3:3770d2be3e73

modified DfaultNodePathContainer
author one
date Mon, 10 Jun 2013 01:18:45 +0900
parents 20498c88a70d
children 2900e0b1d7e6
line wrap: on
line diff
--- a/src/jungle/test/datasegment/store/operations/DefaultNodePathContainer.java	Sun Jun 09 13:53:16 2013 +0900
+++ b/src/jungle/test/datasegment/store/operations/DefaultNodePathContainer.java	Mon Jun 10 01:18:45 2013 +0900
@@ -1,13 +1,17 @@
 package jungle.test.datasegment.store.operations;
 
 import java.io.IOException;
-import java.util.Arrays;
+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.template.ValueTemplate;
 import org.msgpack.type.Value;
 
 @Message
@@ -15,24 +19,42 @@
 
 	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(DefaultNodePath path) throws IOException {
 		MessagePack msgpack = new MessagePack();
-		List<Integer> list = Arrays.asList();
+		List<Integer> list = new LinkedList<Integer>();
 		for(Integer i : path) {
 			list.add(i);
 		}
+		/* Remove first Element(-1). */
+		list.remove(0);
+		msgpack.register(List.class, new ListTemplate(IntegerTemplate.getInstance()));
 		Value v = msgpack.unconvert(list);
 		pathValue = v;
 	}
 	
 	public DefaultNodePath convert() throws IOException {
 		MessagePack msgpack = new MessagePack();
-		return msgpack.convert(pathValue, DefaultNodePath.class);
+		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;
 	}
-	
-	
 }