annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
20498c88a70d add Container
one
parents:
diff changeset
1 package jungle.test.codesegment.practice;
20498c88a70d add Container
one
parents:
diff changeset
2
9
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
3 import java.io.IOException;
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
4 import java.nio.ByteBuffer;
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
5
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command;
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.TreeOperationLog;
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation;
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
11 import jungle.test.datasegment.store.operations.DefaultTreeOperationLogContainer;
2
20498c88a70d add Container
one
parents:
diff changeset
12 import alice.codesegment.CodeSegment;
20498c88a70d add Container
one
parents:
diff changeset
13 import alice.datasegment.CommandType;
20498c88a70d add Container
one
parents:
diff changeset
14 import alice.datasegment.Receiver;
9
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
15
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
16 import org.msgpack.MessagePack;
2
20498c88a70d add Container
one
parents:
diff changeset
17 import org.msgpack.type.Value;
20498c88a70d add Container
one
parents:
diff changeset
18
20498c88a70d add Container
one
parents:
diff changeset
19 public class TestCodeSegment extends CodeSegment {
20498c88a70d add Container
one
parents:
diff changeset
20
20498c88a70d add Container
one
parents:
diff changeset
21 // create input datasegment arg1
20498c88a70d add Container
one
parents:
diff changeset
22 Receiver arg1 = ids.create(CommandType.PEEK);
20498c88a70d add Container
one
parents:
diff changeset
23
20498c88a70d add Container
one
parents:
diff changeset
24 @Override
20498c88a70d add Container
one
parents:
diff changeset
25 public void run() {
20498c88a70d add Container
one
parents:
diff changeset
26 System.out.println("type = " + arg1.type);
20498c88a70d add Container
one
parents:
diff changeset
27 System.out.println("index = " + arg1.index);
20498c88a70d add Container
one
parents:
diff changeset
28 System.out.println("data = " + arg1.getVal());
20498c88a70d add Container
one
parents:
diff changeset
29 System.out.println(((Value)arg1.getVal()).getType());
20498c88a70d add Container
one
parents:
diff changeset
30
9
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
31 MessagePack msgpack = new MessagePack();
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
32 Value logContainerValue = (Value) arg1.getVal();
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
33 DefaultTreeOperationLogContainer convertedLogContainer;
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
34 TreeOperationLog convertedLog = null;
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
35 try {
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
36 convertedLogContainer = msgpack.convert(logContainerValue, DefaultTreeOperationLogContainer.class);
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
37 convertedLog = convertedLogContainer.convert();
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
38 } catch (IOException e) {
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
39 e.printStackTrace();
2
20498c88a70d add Container
one
parents:
diff changeset
40 }
9
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
41
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
42 for (TreeOperation treeOp : convertedLog) {
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
43 NodePath path = treeOp.getNodePath();
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
44 NodeOperation nodeOp = treeOp.getNodeOperation();
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
45 Command c = nodeOp.getCommand();
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
46 String str = "";
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
47 switch (c) {
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
48 case PUT_ATTRIBUTE:
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
49 String k = nodeOp.getKey();
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
50 ByteBuffer value = nodeOp.getValue();
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
51 if (value.limit() < 100) {
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
52 str = String.format("key:%s,value:%s", k,
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
53 new String(value.array()));
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
54 } else {
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
55 str = String.format("key:%s,value:%d", k, value.limit());
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
56 }
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
57 break;
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
58 case DELETE_ATTRIBUTE:
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
59 str = String.format("key:%s", nodeOp.getKey());
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
60 break;
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
61 case APPEND_CHILD:
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
62 str = String.format("pos:%d", nodeOp.getPosition());
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
63 break;
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
64 case DELETE_CHILD:
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
65 str = String.format("pos:%d", nodeOp.getPosition());
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
66 break;
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
67 }
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
68 System.out.println(String.format("[%s:%s]", c, str));
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
69 System.out.println("path:");
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
70 for (int i: path ) {
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
71 System.out.println(i);
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
72 }
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
73
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
74 }
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
75
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
76 System.exit(0);
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
77
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
78 /*
2
20498c88a70d add Container
one
parents:
diff changeset
79 TestCodeSegment cs = new TestCodeSegment();
20498c88a70d add Container
one
parents:
diff changeset
80 cs.arg1.setKey("key1", arg1.index);
20498c88a70d add Container
one
parents:
diff changeset
81
20498c88a70d add Container
one
parents:
diff changeset
82 // DataSegment.get("local").update
20498c88a70d add Container
one
parents:
diff changeset
83 ods.update("local", "key1", "String data");
9
49c0eaa4dce2 add StartCodeSegment.java
one
parents: 2
diff changeset
84 */
2
20498c88a70d add Container
one
parents:
diff changeset
85 }
20498c88a70d add Container
one
parents:
diff changeset
86
20498c88a70d add Container
one
parents:
diff changeset
87 }