Mercurial > hg > Database > jungle-network
comparison src/jungle/test/codesegment/practice/TestPutAttributeCodeSegment.java @ 18:2f1132767af2
implemented TestPutATtributeCodeSegment
author | one |
---|---|
date | Fri, 28 Jun 2013 19:32:52 +0900 |
parents | c767e7af4d88 |
children | 08e283ede7c9 |
comparison
equal
deleted
inserted
replaced
17:c767e7af4d88 | 18:2f1132767af2 |
---|---|
1 package jungle.test.codesegment.practice; | 1 package jungle.test.codesegment.practice; |
2 | |
3 import java.io.IOException; | |
4 import java.nio.ByteBuffer; | |
5 | |
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; | |
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; | |
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; | |
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command; | |
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; | |
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor; | |
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; | |
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.TreeOperationLog; | |
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DefaultTreeOperation; | |
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation; | |
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.PutAttributeOperation; | |
17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; | |
18 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; | |
19 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; | |
20 import jungle.test.datasegment.store.operations.DefaultTreeOperationContainer; | |
21 import jungle.test.datasegment.store.operations.DefaultTreeOperationLogContainer; | |
22 import jungle.test.transaction.NetworkDefaultJungleTreeEditor; | |
2 | 23 |
3 import org.msgpack.type.Value; | 24 import org.msgpack.type.Value; |
4 | 25 |
5 import alice.codesegment.CodeSegment; | 26 import alice.codesegment.CodeSegment; |
6 import alice.datasegment.CommandType; | 27 import alice.datasegment.CommandType; |
14 arg1.setKey("log"); | 35 arg1.setKey("log"); |
15 } | 36 } |
16 | 37 |
17 | 38 |
18 public void run() { | 39 public void run() { |
40 | |
41 | |
19 System.out.println("type = " + arg1.type); | 42 System.out.println("type = " + arg1.type); |
20 System.out.println("index = " + arg1.index); | 43 System.out.println("index = " + arg1.index); |
21 System.out.println("data = " + arg1.getVal()); | 44 System.out.println("data = " + arg1.getVal()); |
22 System.out.println(((Value)arg1.getVal()).getType()); | 45 System.out.println(((Value)arg1.getVal()).getType()); |
23 | 46 |
47 DefaultTreeOperationContainer convertedOpContainer = arg1.asClass(DefaultTreeOperationContainer.class); | |
48 TreeOperation convertedOp = null; | |
49 try { | |
50 convertedOp = convertedOpContainer.convert(); | |
51 } catch (IOException e) { | |
52 e.printStackTrace(); | |
53 } | |
24 | 54 |
25 | 55 Jungle jungle = new JungleManager().getJungle(); |
56 JungleTree tree = jungle.getTreeByName("tree"); | |
57 NetworkDefaultJungleTreeEditor editor = (NetworkDefaultJungleTreeEditor) tree.getTreeEditor(); | |
58 edit(editor, convertedOp); | |
59 editor.success(); | |
26 | 60 |
27 | 61 |
28 } | 62 } |
29 | 63 |
64 public DefaultTreeOperation getSampleOperation() { | |
65 /* Create TreeOperation */ | |
66 String key = "hoge"; | |
67 ByteBuffer b = ByteBuffer.wrap("messagepack value".getBytes()); | |
68 PutAttributeOperation op = new PutAttributeOperation(key, b); | |
69 DefaultNodePath p = new DefaultNodePath(); | |
70 p = p.add(1); | |
71 DefaultTreeOperation treeOp = new DefaultTreeOperation(p, op); | |
72 return treeOp; | |
73 } | |
74 | |
75 public void edit(JungleTreeEditor editor, TreeOperation op) { | |
76 NodePath path = op.getNodePath(); | |
77 NodeOperation nodeOp = op.getNodeOperation(); | |
78 Command c = nodeOp.getCommand(); | |
79 String str = ""; | |
80 String key = ""; | |
81 switch (c) { | |
82 case PUT_ATTRIBUTE: | |
83 key = nodeOp.getKey(); | |
84 ByteBuffer value = nodeOp.getValue(); | |
85 if (value.limit() < 100) { | |
86 str = String.format("key:%s,value:%s", key, | |
87 new String(value.array())); | |
88 } else { | |
89 str = String.format("key:%s,value:%d", key, value.limit()); | |
90 } | |
91 editor.putAttribute(path, key, value); | |
92 break; | |
93 case DELETE_ATTRIBUTE: | |
94 key = nodeOp.getKey(); | |
95 str = String.format("key:%s", nodeOp.getKey()); | |
96 editor.deleteAttribute(path, key); | |
97 break; | |
98 case APPEND_CHILD: | |
99 str = String.format("pos:%d", nodeOp.getPosition()); | |
100 editor.addNewChildAt(path, 0); | |
101 break; | |
102 case DELETE_CHILD: | |
103 str = String.format("pos:%d", nodeOp.getPosition()); | |
104 editor.deleteChildAt(path, 0); | |
105 break; | |
106 } | |
107 System.out.println(String.format("[%s:%s]", c, str)); | |
108 System.out.println("path:"); | |
109 for (int i: path ) { | |
110 System.out.println(i); | |
111 } | |
112 } | |
30 } | 113 } |