# 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;