Mercurial > hg > Members > nobuyasu > jungle-network
comparison src/jungle/test/core/practice/LogReadCodeSegment.java @ 29:16ea4835f36e
modified LogReadCodeSegment
author | one |
---|---|
date | Mon, 01 Jul 2013 19:36:17 +0900 |
parents | e968224ad0ce |
children | 8593c2525aa7 |
comparison
equal
deleted
inserted
replaced
28:e968224ad0ce | 29:16ea4835f36e |
---|---|
1 package jungle.test.core.practice; | 1 package jungle.test.core.practice; |
2 | 2 |
3 import java.io.IOException; | 3 import java.io.IOException; |
4 import java.nio.ByteBuffer; | |
4 | 5 |
5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; | 6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; |
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; | 7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; |
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; | 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; | |
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultTreeOperationLog; | 11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultTreeOperationLog; |
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation; | |
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; | |
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; | 14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; |
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; | 15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; |
11 import jungle.test.codesegment.operation.JungleManager; | 16 import jungle.test.codesegment.operation.JungleManager; |
12 import jungle.test.datasegment.store.operations.DefaultTreeOperationLogContainer; | 17 import jungle.test.datasegment.store.operations.DefaultTreeOperationLogContainer; |
13 import jungle.test.transaction.NetworkDefaultJungleTreeEditor; | 18 import jungle.test.transaction.NetworkDefaultJungleTreeEditor; |
31 try { | 36 try { |
32 log = container.convert(); | 37 log = container.convert(); |
33 } catch (IOException e) { | 38 } catch (IOException e) { |
34 e.printStackTrace(); | 39 e.printStackTrace(); |
35 } | 40 } |
36 | |
37 JungleManager jm = new JungleManager(); | 41 JungleManager jm = new JungleManager(); |
38 Jungle jungle = jm.getJungle(); | 42 Jungle jungle = jm.getJungle(); |
39 JungleTree tree = jungle.getTreeByName("tree"); | 43 JungleTree tree = jungle.getTreeByName("tree"); |
40 NetworkDefaultJungleTreeEditor nEditor = (NetworkDefaultJungleTreeEditor) tree.getTreeEditor(); | 44 JungleTreeEditor editor = tree.getTreeEditor(); |
41 JungleTreeEditor editor = nEditor.setNewLogAndGetEditor(log); | 45 Either<Error, JungleTreeEditor> either = null; |
42 Either<Error,JungleTreeEditor> either = editor.success(); | 46 for (TreeOperation op : log) { |
43 if(either.isA()) { | 47 either = edit(editor, op); |
44 throw new IllegalStateException(); | 48 if(either.isA()) { |
49 throw new IllegalStateException(); | |
50 } | |
51 editor = either.b(); | |
45 } | 52 } |
53 editor.success(); | |
46 new PrintChildrenAttribute("key1"); | 54 new PrintChildrenAttribute("key1"); |
47 ods.update("key1", "key1"); | 55 ods.update("key1", "key1"); |
48 | 56 |
49 } | 57 } |
50 | 58 |
59 public Either<Error, JungleTreeEditor> edit(JungleTreeEditor editor, | |
60 TreeOperation op) { | |
61 NodePath path = op.getNodePath(); | |
62 NodeOperation nodeOp = op.getNodeOperation(); | |
63 Command c = nodeOp.getCommand(); | |
64 String str = ""; | |
65 String key = ""; | |
66 switch (c) { | |
67 case PUT_ATTRIBUTE: | |
68 key = nodeOp.getKey(); | |
69 ByteBuffer value = nodeOp.getValue(); | |
70 if (value.limit() < 100) { | |
71 str = String.format("key:%s,value:%s", key, | |
72 new String(value.array())); | |
73 } else { | |
74 str = String.format("key:%s,value:%d", key, value.limit()); | |
75 } | |
76 return editor.putAttribute(path, key, value); | |
77 case DELETE_ATTRIBUTE: | |
78 key = nodeOp.getKey(); | |
79 str = String.format("key:%s", nodeOp.getKey()); | |
80 return editor.deleteAttribute(path, key); | |
81 case APPEND_CHILD: | |
82 str = String.format("pos:%d", nodeOp.getPosition()); | |
83 return editor.addNewChildAt(path, 0); | |
84 case DELETE_CHILD: | |
85 str = String.format("pos:%d", nodeOp.getPosition()); | |
86 return editor.deleteChildAt(path, 0); | |
87 } | |
88 return null; | |
89 } | |
51 } | 90 } |