Mercurial > hg > Members > nobuyasu > jungle-network
comparison src/jungle/test/bbs/JungleManager.java @ 56:ccfe9b5e8f11
bug LogUpdateCodeSegment
author | one |
---|---|
date | Sun, 14 Jul 2013 21:26:49 +0900 |
parents | bf3dc481cc9b |
children | 8a532ca5df80 |
comparison
equal
deleted
inserted
replaced
55:25edf76b65dc | 56:ccfe9b5e8f11 |
---|---|
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; | 7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; |
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; | 8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; |
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; | 9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; |
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command; | 10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command; |
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; | 11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; |
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; | |
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor; | 13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor; |
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.impl.logger.TreeOperationLog; |
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation; | 15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation; |
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; | 16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; |
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; | 17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; |
69 return editor.addNewChildAt(path, 0); | 70 return editor.addNewChildAt(path, 0); |
70 case DELETE_CHILD: | 71 case DELETE_CHILD: |
71 return editor.deleteChildAt(path, 0); | 72 return editor.deleteChildAt(path, 0); |
72 } | 73 } |
73 return null; | 74 return null; |
74 } | 75 } |
76 | |
77 | |
78 public static Either<Error, JungleTreeEditor> edit(JungleTreeEditor _editor ,TreeOperationLog _log, int pos) { | |
79 System.out.println("--path editor--"); | |
80 JungleTreeEditor editor = _editor; | |
81 Either<Error, JungleTreeEditor> either = null; | |
82 for (TreeOperation op : _log) { | |
83 either = _edit(editor, op, pos); | |
84 if(either.isA()) { | |
85 return either; | |
86 } | |
87 editor = either.b(); | |
88 } | |
89 return either; | |
90 } | |
91 | |
92 private static Either<Error, JungleTreeEditor> _edit(JungleTreeEditor editor, | |
93 TreeOperation op, int pos) { | |
94 DefaultNodePath path = new DefaultNodePath(); | |
95 NodeOperation nodeOp = op.getNodeOperation(); | |
96 Command c = nodeOp.getCommand(); | |
97 String key = ""; | |
98 switch (c) { | |
99 case PUT_ATTRIBUTE: | |
100 path = path.add(pos); | |
101 key = nodeOp.getKey(); | |
102 ByteBuffer value = nodeOp.getValue(); | |
103 return editor.putAttribute(path, key, value); | |
104 case DELETE_ATTRIBUTE: | |
105 key = nodeOp.getKey(); | |
106 return editor.deleteAttribute(path, key); | |
107 case APPEND_CHILD: | |
108 return editor.addNewChildAt(path, pos); | |
109 case DELETE_CHILD: | |
110 return editor.deleteChildAt(path, 0); | |
111 } | |
112 return null; | |
113 } | |
114 | |
115 | |
75 } | 116 } |