annotate src/test/java/alice/jungle/DoubleJungleManager.java @ 105:f9e29a52efd3

Move some files
author one
date Tue, 26 Nov 2013 06:43:10 +0900
parents 2c7b3f2b2ee1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
105
f9e29a52efd3 Move some files
one
parents: 91
diff changeset
1 package alice.jungle;
35
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
2
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
3 import java.nio.ByteBuffer;
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
4
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
5 import alice.jungle.core.NetworkDefaultJungle;
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle;
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command;
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.TreeOperationLog;
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation;
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
17
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
18 public class DoubleJungleManager {
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
19
91
2c7b3f2b2ee1 Removed serverName field
one
parents: 82
diff changeset
20 static Jungle jungle1 = new NetworkDefaultJungle(null, "hoge", new DefaultTreeEditor(new DefaultTraverser()));
2c7b3f2b2ee1 Removed serverName field
one
parents: 82
diff changeset
21 static Jungle jungle2 = new NetworkDefaultJungle(null, "hoge", new DefaultTreeEditor(new DefaultTraverser()));
35
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
22
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
23
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
24 public DoubleJungleManager() {
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
25
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
26 }
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
27
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
28 public Jungle getJungle1() {
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
29 return jungle1;
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
30 }
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
31
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
32 public Jungle getJungle2() {
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
33 return jungle2;
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
34 }
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
35
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
36
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
37 public Either<Error, JungleTreeEditor> edit(JungleTreeEditor _editor ,TreeOperationLog _log) {
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
38 JungleTreeEditor editor = _editor;
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
39 Either<Error, JungleTreeEditor> either = null;
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
40 for (TreeOperation op : _log) {
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
41 either = _edit(editor, op);
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
42 if(either.isA()) {
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
43 return either;
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
44 }
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
45 editor = either.b();
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
46 }
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
47 return either;
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
48 }
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
49
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
50 private Either<Error, JungleTreeEditor> _edit(JungleTreeEditor editor,
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
51 TreeOperation op) {
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
52 NodePath path = op.getNodePath();
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
53 NodeOperation nodeOp = op.getNodeOperation();
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
54 Command c = nodeOp.getCommand();
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
55 String key = "";
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
56 switch (c) {
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
57 case PUT_ATTRIBUTE:
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
58 key = nodeOp.getKey();
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
59 ByteBuffer value = nodeOp.getValue();
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
60 return editor.putAttribute(path, key, value);
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
61 case DELETE_ATTRIBUTE:
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
62 key = nodeOp.getKey();
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
63 return editor.deleteAttribute(path, key);
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
64 case APPEND_CHILD:
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
65 return editor.addNewChildAt(path, 0);
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
66 case DELETE_CHILD:
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
67 return editor.deleteChildAt(path, 0);
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
68 }
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
69 return null;
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
70 }
054dc02c117d add test.alice.jungle.codesegment
one
parents:
diff changeset
71 }