diff src/jungle/test/codesegment/practice/TestCodeSegment.java @ 9:49c0eaa4dce2

add StartCodeSegment.java
author one
date Tue, 11 Jun 2013 14:09:42 +0900
parents 20498c88a70d
children 5376ac62ac08
line wrap: on
line diff
--- a/src/jungle/test/codesegment/practice/TestCodeSegment.java	Tue Jun 11 05:41:07 2013 +0900
+++ b/src/jungle/test/codesegment/practice/TestCodeSegment.java	Tue Jun 11 14:09:42 2013 +0900
@@ -1,8 +1,19 @@
 package jungle.test.codesegment.practice;
 
+import java.io.IOException;
+import java.nio.ByteBuffer;
+
+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.logger.TreeOperationLog;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
+import jungle.test.datasegment.store.operations.DefaultTreeOperationLogContainer;
 import alice.codesegment.CodeSegment;
 import alice.datasegment.CommandType;
 import alice.datasegment.Receiver;
+
+import org.msgpack.MessagePack;
 import org.msgpack.type.Value;
 
 public class TestCodeSegment extends CodeSegment {
@@ -17,16 +28,60 @@
 		System.out.println("data = " + arg1.getVal());
 		System.out.println(((Value)arg1.getVal()).getType());
 		
-		if (arg1.index == 10) {
-			System.exit(0);
-			return;
+		MessagePack msgpack = new MessagePack();
+		Value logContainerValue = (Value) arg1.getVal();
+		DefaultTreeOperationLogContainer convertedLogContainer;
+		TreeOperationLog convertedLog = null;
+		try {
+			convertedLogContainer = msgpack.convert(logContainerValue, DefaultTreeOperationLogContainer.class);
+			convertedLog = convertedLogContainer.convert();
+		} catch (IOException e) {
+			e.printStackTrace();
 		}
- 		
+		
+		for (TreeOperation treeOp : convertedLog) {
+			NodePath path = treeOp.getNodePath();
+			NodeOperation nodeOp = treeOp.getNodeOperation();
+			Command c = nodeOp.getCommand();
+			String str = "";
+			switch (c) {
+			case PUT_ATTRIBUTE:
+				String k = nodeOp.getKey();
+				ByteBuffer value = nodeOp.getValue();
+				if (value.limit() < 100) {
+					str = String.format("key:%s,value:%s", k,
+							new String(value.array()));
+				} else {
+					str = String.format("key:%s,value:%d", k, value.limit());
+				}
+				break;
+			case DELETE_ATTRIBUTE:
+				str = String.format("key:%s", nodeOp.getKey());
+				break;
+			case APPEND_CHILD:
+				str = String.format("pos:%d", nodeOp.getPosition());
+				break;
+			case DELETE_CHILD:
+				str = String.format("pos:%d", nodeOp.getPosition());
+				break;
+			}
+			System.out.println(String.format("[%s:%s]", c,  str));
+			System.out.println("path:");
+			for (int i: path ) {
+				System.out.println(i);
+			}
+			
+		}		
+
+		System.exit(0);
+
+/* 		
 		TestCodeSegment cs = new TestCodeSegment();
 		cs.arg1.setKey("key1", arg1.index);
 		
 		// DataSegment.get("local").update
 		ods.update("local", "key1", "String data");
+*/
 	}
 
 }