# HG changeset patch
# User one
# Date 1386157131 -32400
# Node ID 7d9b7fcb4d9a632be612c8863678f213c185a655
# Parent 8f9811a1e00c58bc3baa62933fc656a5adb99811
Add LogPutCodeSegment
diff -r 8f9811a1e00c -r 7d9b7fcb4d9a .classpath
--- a/.classpath Fri Nov 29 04:31:22 2013 +0900
+++ b/.classpath Wed Dec 04 20:38:51 2013 +0900
@@ -1,52 +1,52 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 8f9811a1e00c -r 7d9b7fcb4d9a src/main/java/alice/jungle/operations/NetworkNodeOperation.java
--- a/src/main/java/alice/jungle/operations/NetworkNodeOperation.java Fri Nov 29 04:31:22 2013 +0900
+++ b/src/main/java/alice/jungle/operations/NetworkNodeOperation.java Wed Dec 04 20:38:51 2013 +0900
@@ -4,13 +4,13 @@
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.AppendChildAt;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.DeleteAttribute;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.DeleteChildAt;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.PutAttribute;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
-import alice.jungle.datasegment.transformer.NetworkAppendChildAt;
import org.msgpack.annotation.Message;
@@ -96,7 +96,7 @@
PutAttribute putAttribute = new PutAttribute(key,value);
return putAttribute.edit(_target);
case APPEND_CHILD:
- NetworkAppendChildAt appendChildAt = new NetworkAppendChildAt(pos);
+ AppendChildAt appendChildAt = new AppendChildAt(pos);
return appendChildAt.edit(_target);
case DELETE_CHILD:
DeleteChildAt deleteChildAt = new DeleteChildAt(pos);
diff -r 8f9811a1e00c -r 7d9b7fcb4d9a src/main/java/alice/jungle/persistent/JungleUpdater.java
--- a/src/main/java/alice/jungle/persistent/JungleUpdater.java Fri Nov 29 04:31:22 2013 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-package alice.jungle.persistent;
-
-import java.nio.ByteBuffer;
-
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.TreeOperationLog;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
-
-public class JungleUpdater {
-
- public JungleUpdater() {
-
- }
-
- public static Either edit(JungleTreeEditor _editor ,TreeOperationLog _log) {
- JungleTreeEditor editor = _editor;
- Either either = null;
- for (TreeOperation op : _log) {
- either = _edit(editor, op);
- if(either.isA()) {
- return either;
- }
- editor = either.b();
- }
- return either;
- }
-
- private static Either _edit(JungleTreeEditor editor,
- TreeOperation op) {
- DefaultNodePath path = new DefaultNodePath();
- NodeOperation nodeOp = op.getNodeOperation();
- int pos = nodeOp.getPosition();
- Command c = nodeOp.getCommand();
- String key = "";
- switch (c) {
- case PUT_ATTRIBUTE:
- key = nodeOp.getKey();
- ByteBuffer value = nodeOp.getValue();
- return editor.putAttribute(path, key, value);
- case DELETE_ATTRIBUTE:
- key = nodeOp.getKey();
- return editor.deleteAttribute(path, key);
- case APPEND_CHILD:
- return editor.addNewChildAt(path, pos);
- case DELETE_CHILD:
- return editor.deleteChildAt(path, 0);
- }
- return null;
- }
-
-
-
-}
diff -r 8f9811a1e00c -r 7d9b7fcb4d9a src/main/java/alice/jungle/transaction/JungleUpdater.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/alice/jungle/transaction/JungleUpdater.java Wed Dec 04 20:38:51 2013 +0900
@@ -0,0 +1,58 @@
+package alice.jungle.transaction;
+
+import java.nio.ByteBuffer;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.TreeOperationLog;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
+
+public class JungleUpdater {
+
+ public JungleUpdater() {
+
+ }
+
+ public static Either edit(JungleTreeEditor _editor ,TreeOperationLog _log) {
+ JungleTreeEditor editor = _editor;
+ Either either = null;
+ for (TreeOperation op : _log) {
+ either = _edit(editor, op);
+ if(either.isA()) {
+ return either;
+ }
+ editor = either.b();
+ }
+ return either;
+ }
+
+ private static Either _edit(JungleTreeEditor editor,
+ TreeOperation op) {
+ DefaultNodePath path = new DefaultNodePath();
+ NodeOperation nodeOp = op.getNodeOperation();
+ int pos = nodeOp.getPosition();
+ Command c = nodeOp.getCommand();
+ String key = "";
+ switch (c) {
+ case PUT_ATTRIBUTE:
+ key = nodeOp.getKey();
+ ByteBuffer value = nodeOp.getValue();
+ return editor.putAttribute(path, key, value);
+ case DELETE_ATTRIBUTE:
+ key = nodeOp.getKey();
+ return editor.deleteAttribute(path, key);
+ case APPEND_CHILD:
+ return editor.addNewChildAt(path, pos);
+ case DELETE_CHILD:
+ return editor.deleteChildAt(path, 0);
+ }
+ return null;
+ }
+
+
+
+}
diff -r 8f9811a1e00c -r 7d9b7fcb4d9a src/main/java/alice/jungle/transaction/NetworkDefaultJungleTreeEditor.java
--- a/src/main/java/alice/jungle/transaction/NetworkDefaultJungleTreeEditor.java Fri Nov 29 04:31:22 2013 +0900
+++ b/src/main/java/alice/jungle/transaction/NetworkDefaultJungleTreeEditor.java Wed Dec 04 20:38:51 2013 +0900
@@ -4,8 +4,9 @@
import java.io.IOException;
import java.nio.ByteBuffer;
+import alice.codesegment.CodeSegment;
import alice.jungle.operations.NetworkTreeOperationLog;
-import app.bbs.codesegment.NullCodeSegment;
+import app.bbs.codesegment.LogPutCodeSegment;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
@@ -187,8 +188,7 @@
public void putDataSegment(String _uuid, String _treeName, String _updaterName, Iterable newLog, String nextRevision) throws IOException {
NetworkTreeOperationLog netLog = new NetworkTreeOperationLog(_uuid, _treeName,newLog);
- NullCodeSegment cs = new NullCodeSegment();
- cs.ods.put("log", netLog);
+ CodeSegment cs = new LogPutCodeSegment(netLog);
cs.execute();
}
}
diff -r 8f9811a1e00c -r 7d9b7fcb4d9a src/main/java/app/bbs/JungleManager.java
--- a/src/main/java/app/bbs/JungleManager.java Fri Nov 29 04:31:22 2013 +0900
+++ b/src/main/java/app/bbs/JungleManager.java Wed Dec 04 20:38:51 2013 +0900
@@ -29,6 +29,10 @@
jungle = new DefaultJungle(null,"hogehoge",new DefaultTreeEditor(new DefaultTraverser()));
}
+ public static JungleManager getInstantce() {
+ return jm;
+ }
+
public static void setJungle(Jungle _j) {
jm.jungle = _j;
}
diff -r 8f9811a1e00c -r 7d9b7fcb4d9a src/main/java/app/bbs/codesegment/LogPutCodeSegment.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/app/bbs/codesegment/LogPutCodeSegment.java Wed Dec 04 20:38:51 2013 +0900
@@ -0,0 +1,19 @@
+package app.bbs.codesegment;
+
+import alice.codesegment.CodeSegment;
+import alice.jungle.operations.NetworkTreeOperationLog;
+
+public class LogPutCodeSegment extends CodeSegment{
+
+ NetworkTreeOperationLog log;
+
+ public LogPutCodeSegment(NetworkTreeOperationLog _log) {
+ log = _log;
+ }
+
+ @Override
+ public void run() {
+ ods.put("log", log);
+ }
+
+}
diff -r 8f9811a1e00c -r 7d9b7fcb4d9a src/main/java/app/bbs/codesegment/LogUpdateCodeSegment.java
--- a/src/main/java/app/bbs/codesegment/LogUpdateCodeSegment.java Fri Nov 29 04:31:22 2013 +0900
+++ b/src/main/java/app/bbs/codesegment/LogUpdateCodeSegment.java Wed Dec 04 20:38:51 2013 +0900
@@ -18,7 +18,6 @@
Receiver log = ids.create(CommandType.PEEK);
Receiver clist = ids.create(CommandType.PEEK);
-
public LogUpdateCodeSegment() {
log.setKey("log");
clist.setKey("_CLIST");;
diff -r 8f9811a1e00c -r 7d9b7fcb4d9a src/test/java/alice/jungle/PersistenJournalTest.java
--- a/src/test/java/alice/jungle/PersistenJournalTest.java Fri Nov 29 04:31:22 2013 +0900
+++ b/src/test/java/alice/jungle/PersistenJournalTest.java Wed Dec 04 20:38:51 2013 +0900
@@ -5,10 +5,10 @@
import java.nio.ByteBuffer;
import alice.jungle.operations.NetworkNodePath;
-import alice.jungle.persistent.JungleUpdater;
import alice.jungle.persistent.PersistentChangeList;
import alice.jungle.persistent.PersistentJournal;
import alice.jungle.persistent.PersistentJungle;
+import alice.jungle.transaction.JungleUpdater;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;