# HG changeset patch
# User tatsuki
# Date 1409497472 -32400
# Node ID 6f104ab4eb81a283282dabfb365013d071d0e1ff
# Parent ac7d1070f44947470f6f28fbe38f48b763d724ab
fit jungle core but editMessage is not work
diff -r ac7d1070f449 -r 6f104ab4eb81 pom.xml
--- a/pom.xml Wed Jul 30 22:17:23 2014 +0900
+++ b/pom.xml Mon Sep 01 00:04:32 2014 +0900
@@ -60,17 +60,5 @@
0.6.8
-
- jungle
- jungle-core
- 0.0.3-SNAPSHOT
-
-
-
-
- jp.ac.u_ryukyu.ie.cr.shoshi.jungle
- bulletinboard
- 0.0.1-SNAPSHOT
-
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/alice/jungle/core/NetworkDefaultJungle.java
--- a/src/main/java/alice/jungle/core/NetworkDefaultJungle.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/alice/jungle/core/NetworkDefaultJungle.java Mon Sep 01 00:04:32 2014 +0900
@@ -10,6 +10,7 @@
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Journal;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultChangeSet;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeContext;
@@ -54,8 +55,8 @@
return _name;
}
};
- DefaultTreeNode root = new DefaultTreeNode();
- ChangeSet set = new DefaultChangeSet(root.getAsNode(),null,list,uuid,_name, 0);
+ TreeNode root = new DefaultTreeNode();
+ ChangeSet set = new DefaultChangeSet(root,null,list,uuid,_name, 0);
DefaultTreeContext tc = new DefaultTreeContext(root,set);
JungleTree newTree = new NetworkDefaultJungleTree(_name, tc,uuid,journal.getWriter(),editor);
if(trees.putIfAbsent(_name,newTree) != null){
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/alice/jungle/datasegment/transformer/NetworkAppendChildAt.java
--- a/src/main/java/alice/jungle/datasegment/transformer/NetworkAppendChildAt.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/alice/jungle/datasegment/transformer/NetworkAppendChildAt.java Mon Sep 01 00:04:32 2014 +0900
@@ -1,6 +1,7 @@
package alice.jungle.datasegment.transformer;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.OperationLog;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.NodeEditor;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
@@ -23,8 +24,8 @@
}
@Override
- public > Either edit(T _e) {
- Either either = _e.getChildren().addNewChildAt(pos);
+ public Either edit(T _e) {
+ Either either = _e.getChildren().addNewChildAt(pos);
if(either.isA()){
// error
return either;
@@ -32,4 +33,10 @@
return DefaultEither.newB(either.b());
}
+ @Override
+ public OperationLog getLog() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/alice/jungle/operations/NetworkAppendChildAtOperation.java
--- a/src/main/java/alice/jungle/operations/NetworkAppendChildAtOperation.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/alice/jungle/operations/NetworkAppendChildAtOperation.java Mon Sep 01 00:04:32 2014 +0900
@@ -4,10 +4,6 @@
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.EditableNode;
-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;
@@ -31,11 +27,11 @@
return Command.APPEND_CHILD;
}
- @Override
- public > Either invoke(T _target) {
+ /*@Override
+ public Either invoke(TreeNode _target) {
NetworkAppendChildAt appendChildAt = new NetworkAppendChildAt(pos);
return appendChildAt.edit(_target);
- }
+ }*/
@Override
public int getPosition() {
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/alice/jungle/operations/NetworkDeleteAttributeOperation.java
--- a/src/main/java/alice/jungle/operations/NetworkDeleteAttributeOperation.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/alice/jungle/operations/NetworkDeleteAttributeOperation.java Mon Sep 01 00:04:32 2014 +0900
@@ -6,10 +6,7 @@
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.DeleteAttribute;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
+
@Message
public class NetworkDeleteAttributeOperation implements NodeOperation
@@ -34,12 +31,12 @@
return Command.DELETE_ATTRIBUTE;
}
- @Override
+ /*@Override
public > Either invoke(T _target)
{
DeleteAttribute deleteAttribute = new DeleteAttribute(key);
return deleteAttribute.edit(_target);
- }
+ }*/
@Override
public int getPosition()
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/alice/jungle/operations/NetworkDeleteChildAtOperation.java
--- a/src/main/java/alice/jungle/operations/NetworkDeleteChildAtOperation.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/alice/jungle/operations/NetworkDeleteChildAtOperation.java Mon Sep 01 00:04:32 2014 +0900
@@ -7,7 +7,6 @@
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.DeleteChildAt;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
@@ -33,12 +32,12 @@
return Command.DELETE_CHILD;
}
- @Override
+ /*@Override
public > Either invoke(T _target)
{
DeleteChildAt deleteChildAt = new DeleteChildAt(pos);
return deleteChildAt.edit(_target);
- }
+ }*/
@Override
public int getPosition()
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/alice/jungle/operations/NetworkNodeOperation.java
--- a/src/main/java/alice/jungle/operations/NetworkNodeOperation.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/alice/jungle/operations/NetworkNodeOperation.java Mon Sep 01 00:04:32 2014 +0900
@@ -7,7 +7,6 @@
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;
@@ -89,7 +88,7 @@
return value;
}
- @Override
+/* @Override
public > Either invoke(T _target) {
switch(getCommand(commandType)) {
case PUT_ATTRIBUTE:
@@ -108,6 +107,6 @@
break;
}
return null;
- }
+ }*/
}
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/alice/jungle/operations/NetworkPutAttributeOperation.java
--- a/src/main/java/alice/jungle/operations/NetworkPutAttributeOperation.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/alice/jungle/operations/NetworkPutAttributeOperation.java Mon Sep 01 00:04:32 2014 +0900
@@ -6,7 +6,6 @@
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.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;
@@ -40,12 +39,12 @@
return Command.PUT_ATTRIBUTE;
}
- @Override
+ /*@Override
public > Either invoke(T _target)
{
PutAttribute putAttribute = new PutAttribute(key,value);
return putAttribute.edit(_target);
- }
+ }*/
@Override
public int getPosition()
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/alice/jungle/persistent/PersistentChangeSet.java
--- a/src/main/java/alice/jungle/persistent/PersistentChangeSet.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/alice/jungle/persistent/PersistentChangeSet.java Mon Sep 01 00:04:32 2014 +0900
@@ -1,20 +1,20 @@
package alice.jungle.persistent;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
public class PersistentChangeSet implements ChangeSet
{
- private final Node root;
+ private final TreeNode root;
private final ChangeSet previous;
private final ChangeList changeList;
private final String uuid;
private final long revision;
private final String treeName;
- public PersistentChangeSet(Node _node,ChangeSet _prev,ChangeList _log,String _uuid, String _treeName, long _revision)
+ public PersistentChangeSet(TreeNode _node,ChangeSet _prev,ChangeList _log,String _uuid, String _treeName, long _revision)
{
root = _node;
previous = _prev;
@@ -25,7 +25,7 @@
}
@Override
- public Node getRoot()
+ public TreeNode getRoot()
{
return root;
}
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/alice/jungle/persistent/PersistentJungle.java
--- a/src/main/java/alice/jungle/persistent/PersistentJungle.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/alice/jungle/persistent/PersistentJungle.java Mon Sep 01 00:04:32 2014 +0900
@@ -4,12 +4,12 @@
import java.util.concurrent.ConcurrentHashMap;
import fj.data.List;
-
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.persistent.ChangeList;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeContext;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode;
@@ -52,8 +52,8 @@
return _name;
}
};
- DefaultTreeNode root = new DefaultTreeNode();
- ChangeSet set = new PersistentChangeSet(root.getAsNode(),null,list,uuid,_name,0);
+ TreeNode root = new DefaultTreeNode();
+ ChangeSet set = new PersistentChangeSet(root,null,list,uuid,_name,0);
DefaultTreeContext tc = new DefaultTreeContext(root,set);
JungleTree newTree = new PersistentJungleTree(_name, tc,uuid, journal.getWriter(),editor);
if(trees.putIfAbsent(_name,newTree) != null){
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/alice/jungle/persistent/PersistentJungleTree.java
--- a/src/main/java/alice/jungle/persistent/PersistentJungleTree.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/alice/jungle/persistent/PersistentJungleTree.java Mon Sep 01 00:04:32 2014 +0900
@@ -2,7 +2,6 @@
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
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.persistent.ChangeListWriter;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
@@ -11,7 +10,7 @@
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultJungleTreeEditor;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TreeContext;
-public class PersistentJungleTree > implements JungleTree {
+public class PersistentJungleTree implements JungleTree {
private final AtomicReservableReference> repository;
private final String uuid;
private final String treeName;
@@ -32,12 +31,12 @@
{
TreeContext tc = repository.get();
PersistentTransactionManager txManager = new PersistentTransactionManager(treeName, writer,tc,repository,uuid);
- T root = tc.getTreeNode();
+ TreeNode root = tc.getTreeNode();
return new DefaultJungleTreeEditor(root,txManager,editor);
}
@Override
- public Node getRootNode()
+ public TreeNode getRootNode()
{
TreeContext tc = repository.get();
ChangeSet cs = tc.getChangeSet();
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/alice/jungle/persistent/PersistentTransactionManager.java
--- a/src/main/java/alice/jungle/persistent/PersistentTransactionManager.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/alice/jungle/persistent/PersistentTransactionManager.java Mon Sep 01 00:04:32 2014 +0900
@@ -1,6 +1,5 @@
package alice.jungle.persistent;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Result;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
@@ -16,7 +15,7 @@
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
-public class PersistentTransactionManager> implements TransactionManager {
+public class PersistentTransactionManager implements TransactionManager {
private final AtomicReservableReference> repository;
private final TreeContext tip;
private final ChangeListWriter writer;
@@ -34,13 +33,13 @@
}
@Override
- public Either> commit(T _newRoot,final TreeOperationLog _log) {
+ public Either> commit(TreeNode _newRoot,final TreeOperationLog _log) {
ChangeSet cs = tip.getChangeSet();
long currentRevision = cs.revision();
long nextRevision = currentRevision + 1;
PersistentChangeList list = new PersistentChangeList(uuid, treeName, _log);
- Node root = _newRoot.getAsNode();
+ TreeNode root = _newRoot;
PersistentChangeSet newCs = new PersistentChangeSet(root, cs, list, uuid, treeName, nextRevision);
DefaultTreeContext newContext = new DefaultTreeContext(_newRoot,newCs);
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/alice/jungle/transaction/NetworkDefaultJungleTree.java
--- a/src/main/java/alice/jungle/transaction/NetworkDefaultJungleTree.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/alice/jungle/transaction/NetworkDefaultJungleTree.java Mon Sep 01 00:04:32 2014 +0900
@@ -2,7 +2,6 @@
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
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.persistent.ChangeListWriter;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
@@ -10,7 +9,7 @@
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.AtomicReservableReference;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TreeContext;
-public class NetworkDefaultJungleTree> implements JungleTree {
+public class NetworkDefaultJungleTree implements JungleTree {
private final AtomicReservableReference> repository;
private final String uuid;
private final String treeName;
@@ -31,7 +30,7 @@
{
TreeContext tc = repository.get();
NetworkTransactionManager txManager = new NetworkTransactionManager(treeName, writer,tc,repository,uuid);
- T root = tc.getTreeNode();
+ TreeNode root = tc.getTreeNode();
return new NetworkDefaultJungleTreeEditor(treeName, root,txManager,editor);
}
@@ -40,12 +39,12 @@
{
TreeContext tc = repository.get();
NetworkTransactionManager txManager = new NetworkTransactionManager(treeName, writer,tc,repository,uuid);
- T root = tc.getTreeNode();
+ TreeNode root = tc.getTreeNode();
return NetworkDefaultJungleTreeEditor.NewLocalJungleTreeEditor(treeName,root,txManager, editor);
}
@Override
- public Node getRootNode()
+ public TreeNode getRootNode()
{
TreeContext tc = repository.get();
ChangeSet cs = tc.getChangeSet();
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/alice/jungle/transaction/NetworkDefaultJungleTreeEditor.java
--- a/src/main/java/alice/jungle/transaction/NetworkDefaultJungleTreeEditor.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/alice/jungle/transaction/NetworkDefaultJungleTreeEditor.java Mon Sep 01 00:04:32 2014 +0900
@@ -8,7 +8,6 @@
import alice.jungle.operations.NetworkTreeOperationLog;
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;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
@@ -30,21 +29,21 @@
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.IterableConverter;
-public class NetworkDefaultJungleTreeEditor> implements JungleTreeEditor {
+public class NetworkDefaultJungleTreeEditor implements JungleTreeEditor {
private final TransactionManager txManager;
- private final T root;
+ private final TreeNode root;
private final TreeEditor editor;
private final String treeName;
private final TreeOperationLog log;
private boolean exportLog;
- public NetworkDefaultJungleTreeEditor(String _treeName, T _root,TransactionManager _txManager,TreeEditor _editor)
+ public NetworkDefaultJungleTreeEditor(String _treeName, TreeNode _root,TransactionManager _txManager,TreeEditor _editor)
{
this(_treeName, _root,_txManager,_editor,new DefaultTreeOperationLog());
}
- public NetworkDefaultJungleTreeEditor(String _treeName, T _root,TransactionManager _txManager,TreeEditor _editor, TreeOperationLog _log)
+ public NetworkDefaultJungleTreeEditor(String _treeName, TreeNode _root,TransactionManager _txManager,TreeEditor _editor, TreeOperationLog _log)
{
treeName = _treeName;
root = _root;
@@ -54,13 +53,13 @@
exportLog = true;
}
- public static > NetworkDefaultJungleTreeEditor NewLocalJungleTreeEditor(String _treeName, T1 _root,TransactionManager _txManager,TreeEditor _editor) {
+ public static NetworkDefaultJungleTreeEditor NewLocalJungleTreeEditor(String _treeName, TreeNode _root,TransactionManager _txManager,TreeEditor _editor) {
NetworkDefaultJungleTreeEditor treeEditor = new NetworkDefaultJungleTreeEditor(_treeName, _root,_txManager,_editor,new DefaultTreeOperationLog());
treeEditor.exportLog = false;
return treeEditor;
}
- public static > NetworkDefaultJungleTreeEditor NewLocalJungleTreeEditor(String _treeName, T1 _root,TransactionManager _txManager,TreeEditor _editor, TreeOperationLog _log) {
+ public static NetworkDefaultJungleTreeEditor NewLocalJungleTreeEditor(String _treeName, TreeNode _root,TransactionManager _txManager,TreeEditor _editor, TreeOperationLog _log) {
NetworkDefaultJungleTreeEditor treeEditor = new NetworkDefaultJungleTreeEditor(_treeName, _root,_txManager,_editor,_log);
treeEditor.exportLog = false;
return treeEditor;
@@ -69,12 +68,12 @@
private Either _edit(final NodePath _path,NodeEditor _e)
{
LoggingNodeHook hook = new LoggingNodeHook(_e);
- Either either = editor.edit(root,_path,hook);
+ Either either = editor.edit(root,_path,hook);
if(either.isA()){
return DefaultEither.newA(either.a());
}
- T newNode = either.b();
+ TreeNode newNode = either.b();
OperationLog newLog = hook.getLog();
IterableConverter.Converter converter = new IterableConverter.Converter(){
@@ -165,9 +164,9 @@
}
@Override
- public Node getRoot()
+ public TreeNode getRoot()
{
- return root.getAsNode();
+ return root;
}
public String getTreeName() {
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/alice/jungle/transaction/NetworkTransactionManager.java
--- a/src/main/java/alice/jungle/transaction/NetworkTransactionManager.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/alice/jungle/transaction/NetworkTransactionManager.java Mon Sep 01 00:04:32 2014 +0900
@@ -2,7 +2,6 @@
import java.util.Iterator;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Result;
@@ -21,7 +20,7 @@
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
-public class NetworkTransactionManager> implements TransactionManager
+public class NetworkTransactionManager implements TransactionManager
{
private final AtomicReservableReference> repository;
@@ -41,7 +40,7 @@
}
@Override
- public Either> commit(T _newRoot,final TreeOperationLog _log) {
+ public Either> commit(TreeNode _newRoot,final TreeOperationLog _log) {
ChangeSet cs = tip.getChangeSet();
long currentRevision = cs.revision();
long nextRevision = currentRevision + 1;
@@ -61,7 +60,7 @@
}
};
- Node root = _newRoot.getAsNode();
+ TreeNode root = _newRoot;
DefaultChangeSet newCs = new DefaultChangeSet(root, cs, list, uuid, treeName, nextRevision);
DefaultTreeContext newContext = new DefaultTreeContext(_newRoot,newCs);
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/app/bbs/BulletinBoardJungleManager.java
--- a/src/main/java/app/bbs/BulletinBoardJungleManager.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/app/bbs/BulletinBoardJungleManager.java Mon Sep 01 00:04:32 2014 +0900
@@ -3,16 +3,15 @@
import java.nio.ByteBuffer;
import java.util.concurrent.atomic.AtomicInteger;
-
import alice.jungle.operations.NetworkTreeOperationLog;
import alice.jungle.transaction.JungleUpdater;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle;
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;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
@@ -90,10 +89,10 @@
return either;
}
- private static int calculatePosition(Node node, long newNodeTimeStamp) {
+ private static int calculatePosition(TreeNode node, long newNodeTimeStamp) {
int count = 0;
long childTimeStamp = 0;
- for(Node n : node.getChildren()) {
+ for(TreeNode n : node.getChildren()) {
ByteBuffer timestamp = n.getAttributes().get("timestamp");
if(timestamp == null) {
return count;
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/app/bbs/NetworkJungleBulletinBoard.java
--- a/src/main/java/app/bbs/NetworkJungleBulletinBoard.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/app/bbs/NetworkJungleBulletinBoard.java Mon Sep 01 00:04:32 2014 +0900
@@ -16,13 +16,14 @@
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.BoardMessage;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListReader;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TraversableNodeWrapper;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.EditableNode;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultOperationLog;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.OperationLog;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.PutAttributeOperation;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.NodeEditor;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultEvaluator;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
@@ -43,7 +44,8 @@
private NetworkJungleBulletinBoard(String _uuid, NetworkJournal _journal) {
journal = _journal;
- jungle = new NetworkDefaultJungle(journal, _uuid, new DefaultTreeEditor(new DefaultTraverser()));
+ jungle = new NetworkDefaultJungle(journal, _uuid,
+ new DefaultTreeEditor(new DefaultTraverser()));
BulletinBoardJungleManager.setJungle(jungle);
persistentFlag = false;
requestCounter = BulletinBoardJungleManager.getRequestCounter();
@@ -57,7 +59,8 @@
}
public static NetworkBulletinBoard NewPersistentJungle(String _uuid) {
- NetworkJungleBulletinBoard board = new NetworkJungleBulletinBoard( _uuid, new PersistentJournal());
+ NetworkJungleBulletinBoard board = new NetworkJungleBulletinBoard(
+ _uuid, new PersistentJournal());
board.persistentFlag = true;
return board;
}
@@ -109,7 +112,8 @@
tree = jungle.createNewTree(treeName);
}
JungleTreeEditor editor = tree.getLocalTreeEditor();
- Either either = JungleUpdater.edit(editor, chList);
+ Either either = JungleUpdater.edit(editor,
+ chList);
editor = either.b();
if (either.isA()) {
throw new IOException("Failed commit log recovery");
@@ -120,18 +124,18 @@
public Iterable getBoards() {
JungleTree tree = jungle.getTreeByName("boards");
- Node node = tree.getRootNode();
- Children chs = node.getChildren();
+ TreeNode node = tree.getRootNode();
+ Children chs = node.getChildren();
- IterableConverter.Converter converter = new IterableConverter.Converter() {
- public String conv(Node _b) {
+ IterableConverter.Converter converter = new IterableConverter.Converter() {
+ public String conv(TreeNode _b) {
ByteBuffer e = _b.getAttributes().get("name");
System.out.println(new String(e.array()));
return new String(e.array());
}
};
- return new IterableConverter(chs, converter);
+ return new IterableConverter(chs, converter);
}
public long getRenewTime(String _boardName) {
@@ -153,7 +157,8 @@
}
editor = either.b();
- either = editor.putAttribute(root.add(0), "name",ByteBuffer.wrap(_name.getBytes()));
+ either = editor.putAttribute(root.add(0), "name",
+ ByteBuffer.wrap(_name.getBytes()));
if (either.isA()) {
throw new IllegalStateException();
}
@@ -179,14 +184,26 @@
editor = either.b();
NodeEditor e = new NodeEditor() {
- public > Either edit(T _e) {
- _e = _e.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b();
- _e = _e.getAttributes().put("mes", ByteBuffer.wrap(_initMessage.getBytes())).b();
- _e = _e.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b();
- ByteBuffer tBuffer2 = ByteBuffer.allocate(16);
+ ByteBuffer tBuffer2 = ByteBuffer.allocate(16);
+
+ public Either edit(T _e) {
+ TreeNode node = _e;
+ node = node.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b();
+ node = node.getAttributes().put("mes", ByteBuffer.wrap(_initMessage.getBytes())).b();
+ node = node.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b();
tBuffer2.putLong(timestamp);
- _e = _e.getAttributes().put("timestamp", tBuffer2).b();
- return DefaultEither.newB(_e);
+ node = node.getAttributes().put("timestamp", tBuffer2).b();
+ return DefaultEither.newB(node);
+ }
+
+ @Override
+ public OperationLog getLog() {
+ OperationLog op = new DefaultOperationLog();
+ op = op.add(new PutAttributeOperation("author", ByteBuffer.wrap(_author.getBytes())));
+ op = op.add(new PutAttributeOperation("mes", ByteBuffer.wrap(_initMessage.getBytes())));
+ op = op.add(new PutAttributeOperation("key", ByteBuffer.wrap(_editKey.getBytes())));
+ op = op.add(new PutAttributeOperation("timestamp", tBuffer2));
+ return op;
}
};
@@ -203,12 +220,13 @@
if (tree == null) {
throw new IllegalStateException();
}
-
+
DefaultNodePath path = new DefaultNodePath();
try {
for (int count = 0; _nodeNum.substring(count, count + 1) != null; count++) {
if (!_nodeNum.substring(count, count + 1).equals("/"))
- path = path.add(Integer.parseInt(_nodeNum.substring(count, count + 1)));
+ path = path.add(Integer.parseInt(_nodeNum.substring(count,
+ count + 1)));
}
} catch (Exception _e) {
}
@@ -217,20 +235,22 @@
final long timestamp = System.currentTimeMillis();
final ByteBuffer tBuffer = ByteBuffer.allocate(16);
tBuffer.putLong(timestamp);
-
+
do {
- Node node = tree.getRootNode();
+ TreeNode node = tree.getRootNode();
DefaultTraverser traverser = new DefaultTraverser();
- TraversableNodeWrapper traversable = new TraversableNodeWrapper(node);
+ // TraversableNodeWrapper traversable = new
+ // TraversableNodeWrapper(node);
DefaultEvaluator evaluator = new DefaultEvaluator(path);
- Either>> ret = traverser.traverse(traversable, evaluator);
+ Either> ret = traverser.traverse(node,
+ evaluator);
if (ret.isA()) {
Assert.fail();
}
- Traversal> traversal = ret.b();
- TraversableNodeWrapper target = traversal.destination();
- int size = target.getWrapped().getChildren().size();
+ Traversal traversal = ret.b();
+ TreeNode target = traversal.destination();
+ int size = target.getChildren().size();
JungleTreeEditor editor = tree.getTreeEditor();
either = editor.addNewChildAt(path, size);
if (either.isA()) {
@@ -239,10 +259,20 @@
editor = either.b();
NodeEditor e = new NodeEditor() {
- public > Either edit(T _e) {
- _e = _e.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b();
- _e = _e.getAttributes().put("timestamp", tBuffer).b();
- return DefaultEither.newB(_e);
+
+ public Either edit(T _e) {
+ TreeNode node = _e;
+ node = node.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b();
+ node = node.getAttributes().put("timestamp", tBuffer).b();
+ return DefaultEither.newB(node);
+ }
+
+ @Override
+ public OperationLog getLog() {
+ OperationLog op = new DefaultOperationLog();
+ op = op.add(new PutAttributeOperation("mes", ByteBuffer.wrap(_message.getBytes())));
+ op = op.add(new PutAttributeOperation("timestamp", tBuffer));
+ return op;
}
};
path = path.add(size);
@@ -268,8 +298,8 @@
final ByteBuffer tBuffer = ByteBuffer.allocate(16);
tBuffer.putLong(timestamp);
do {
-
- Node node = tree.getRootNode();
+
+ TreeNode node = tree.getRootNode();
int size = node.getChildren().size();
DefaultNodePath path = new DefaultNodePath();
@@ -281,12 +311,23 @@
editor = either.b();
NodeEditor e = new NodeEditor() {
- public > Either edit(T _e) {
- _e = _e.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b();
- _e = _e.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b();
- _e = _e.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b();
- _e = _e.getAttributes().put("timestamp", tBuffer).b();
- return DefaultEither.newB(_e);
+ public Either edit(T _e) {
+ TreeNode node = _e;
+ node = node.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b();
+ node = node.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b();
+ node = node.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b();
+ node = node.getAttributes().put("timestamp", tBuffer).b();
+ return DefaultEither.newB(node);
+ }
+
+ @Override
+ public OperationLog getLog() {
+ OperationLog op = new DefaultOperationLog();
+ op = op.add(new PutAttributeOperation("author", ByteBuffer.wrap(_author.getBytes())));
+ op = op.add(new PutAttributeOperation("mes", ByteBuffer.wrap(_message.getBytes())));
+ op = op.add(new PutAttributeOperation("key", ByteBuffer.wrap(_editKey.getBytes())));
+ op = op.add(new PutAttributeOperation("timestamp", tBuffer));
+ return op;
}
};
path = path.add(size);
@@ -300,31 +341,44 @@
}
- public void editMessage(String _board, String _nodeNum, final String _author, final String _message, final String _editKey) {
+ public void editMessage(String _board, String _nodeNum,final String _author, final String _message, final String _editKey) {
requestCounter.incrementAndGet();
final long timestamp = System.currentTimeMillis();
final ByteBuffer tBuffer = ByteBuffer.allocate(16);
tBuffer.putLong(timestamp);
JungleTree tree = jungle.getTreeByName(_board);
Either either = null;
-
+
do {
DefaultNodePath path = new DefaultNodePath();
try {
for (int count = 0; _nodeNum.substring(count, count + 1) != null; count++) {
if (!_nodeNum.substring(count, count + 1).equals("/"))
- path = path.add(Integer.parseInt(_nodeNum.substring(count,count + 1)));
+ path = path.add(Integer.parseInt(_nodeNum.substring(count, count + 1)));
}
} catch (Exception _e) {
}
JungleTreeEditor editor = tree.getTreeEditor();
NodeEditor e = new NodeEditor() {
- public > Either edit(T _e) {
- _e = _e.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b();
- _e = _e.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b();
- _e = _e.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b();
- _e = _e.getAttributes().put("timestamp", tBuffer).b();
- return DefaultEither.newB(_e);
+ public Either edit(T _e) {
+ TreeNode node = _e;
+ System.out.println(new String(node.getAttributes().get("mes").array()));
+ node = node.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b();
+ node = node.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b();
+ node = node.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b();
+ node = node.getAttributes().put("timestamp", tBuffer).b();
+ System.out.println(new String(node.getAttributes().get("mes").array()));
+ return DefaultEither.newB(node);
+ }
+
+ @Override
+ public OperationLog getLog() {
+ OperationLog op = new DefaultOperationLog();
+ op = op.add(new PutAttributeOperation("author", ByteBuffer.wrap(_author.getBytes())));
+ op = op.add(new PutAttributeOperation("mes", ByteBuffer.wrap(_message.getBytes())));
+ op = op.add(new PutAttributeOperation("key", ByteBuffer.wrap(_editKey.getBytes())));
+ op = op.add(new PutAttributeOperation("timestamp", tBuffer));
+ return op;
}
};
either = editor.edit(path, e);
@@ -349,22 +403,34 @@
try {
for (int count = 0; _uuid.substring(count, count + 1) != null; count++) {
if (!_uuid.substring(count, count + 1).equals("/"))
- path = path.add(Integer.parseInt(_uuid.substring(count, count + 1)));
+ path = path.add(Integer.parseInt(_uuid.substring(count,
+ count + 1)));
}
} catch (Exception _e) {
}
-
+
JungleTreeEditor editor = tree.getTreeEditor();
NodeEditor e = new NodeEditor() {
- public > Either edit(T _e) {
- String str = "0";
+ String str;
+
+ public Either edit(T _e) {
+ TreeNode node = _e;
+ str = "0";
int count = 0;
- for (; _e.getAttributes().get("mes" + String.valueOf(count)) != null; count++) {
- }
+ for (; _e.getAttributes().get("mes" + String.valueOf(count)) != null; count++) {
+ }
str = String.valueOf(count);
- _e = _e.getAttributes().put("mes" + str, ByteBuffer.wrap(_message.getBytes())).b();
- _e = _e.getAttributes().put("timestamp" + str, tBuffer).b();
- return DefaultEither.newB(_e);
+ node = node.getAttributes().put("mes" + str,ByteBuffer.wrap(_message.getBytes())).b();
+ node = node.getAttributes().put("timestamp" + str, tBuffer).b();
+ return DefaultEither.newB(node);
+ }
+
+ @Override
+ public OperationLog getLog() {
+ OperationLog op = new DefaultOperationLog();
+ op = op.add(new PutAttributeOperation("mes" + str,ByteBuffer.wrap(_message.getBytes())));
+ op = op.add(new PutAttributeOperation("timestamp" + str,tBuffer));
+ return op;
}
};
either = editor.edit(path, e);
@@ -388,18 +454,28 @@
try {
for (int count = 0; _path.substring(count, count + 1) != null; count++) {
if (!_path.substring(count, count + 1).equals("/"))
- path = path.add(Integer.parseInt(_path.substring(count, count + 1)));
+ path = path.add(Integer.parseInt(_path.substring(count,
+ count + 1)));
}
} catch (Exception _e) {
}
-
+
JungleTreeEditor editor = tree.getTreeEditor();
NodeEditor e = new NodeEditor() {
- public > Either edit(T _e) {
+ public Either edit(T _e) {
+ TreeNode node = _e;
// EnableNodeWrapper node = _e.getWrap();
- _e = _e.getAttributes().put("mes" + id, ByteBuffer.wrap(_message.getBytes())).b();
- _e = _e.getAttributes().put("timestamp" + id, tBuffer).b();
- return DefaultEither.newB(_e);
+ node = node.getAttributes().put("mes" + id,ByteBuffer.wrap(_message.getBytes())).b();
+ node = node.getAttributes().put("timestamp" + id, tBuffer).b();
+ return DefaultEither.newB(node);
+ }
+
+ @Override
+ public OperationLog getLog() {
+ OperationLog op = new DefaultOperationLog();
+ op = op.add(new PutAttributeOperation("mes"+ id, ByteBuffer.wrap(_message.getBytes())));
+ op = op.add(new PutAttributeOperation("timestamp"+ id, tBuffer));
+ return op;
}
};
either = editor.edit(path, e);
@@ -410,8 +486,7 @@
either = editor.success();
} while (either.isA());
}
-
-
+
public void deleteNode(String _board, String _path, String _id) {
requestCounter.incrementAndGet();
int id = Integer.parseInt(_id);
@@ -425,11 +500,11 @@
try {
for (int count = 0; _path.substring(count, count + 1) != null; count++) {
if (!_path.substring(count, count + 1).equals("/"))
- path = path.add(Integer.parseInt(_path.substring(count, count + 1)));
+ path = path.add(Integer.parseInt(_path.substring(count,count + 1)));
}
} catch (Exception _e) {
}
-
+
JungleTreeEditor editor = tree.getTreeEditor();
either = editor.deleteChildAt(path, id);
@@ -439,9 +514,10 @@
editor = either.b();
either = editor.success();
} while (either.isA());
-
+
}
- public void deleteAttribute(String _board, String _path ,final String id) {
+
+ public void deleteAttribute(String _board, String _path, final String id) {
requestCounter.incrementAndGet();
final long timestamp = System.currentTimeMillis();
final ByteBuffer tBuffer = ByteBuffer.allocate(16);
@@ -453,29 +529,36 @@
try {
for (int count = 0; _path.substring(count, count + 1) != null; count++) {
if (!_path.substring(count, count + 1).equals("/"))
- path = path.add(Integer.parseInt(_path.substring(count, count + 1)));
+ path = path.add(Integer.parseInt(_path.substring(count,
+ count + 1)));
}
} catch (Exception _e) {
System.out.println("屑");
}
-
+
JungleTreeEditor editor = tree.getTreeEditor();
NodeEditor e = new NodeEditor() {
- public > Either edit(T _e) {
- _e = _e.getAttributes().delete("mes" + id ).b();
- _e = _e.getAttributes().delete("timestamp" + id ).b();
+ public Either edit(T _e) {
+ TreeNode node = _e;
+ node = node.getAttributes().delete("mes" + id).b();
+ node = node.getAttributes().delete("timestamp" + id).b();
int count = Integer.parseInt(id);
- for (; _e.getAttributes().get("mes" + String.valueOf(count + 1)) != null;) {
- _e = _e.getAttributes().put("mes" + count, _e.getAttributes().get("mes" + String.valueOf(count + 1))).b();
- _e = _e.getAttributes().put("timestamp" + count, tBuffer).b();
- count++;
- }
- if(count != Integer.parseInt(id)){
- _e = _e.getAttributes().delete("timestamp" + count ).b();
- _e = _e.getAttributes().delete("mes" + count ).b();
+ for (; node.getAttributes().get("mes" + String.valueOf(count + 1)) != null;) {
+ node = node.getAttributes().put("mes" + count,_e.getAttributes().get("mes"+ String.valueOf(count + 1))).b();
+ node = node.getAttributes().put("timestamp" + count, tBuffer).b();
+ count++;
+ }
+ if (count != Integer.parseInt(id)) {
+ node = node.getAttributes().delete("timestamp" + count).b();
+ node = node.getAttributes().delete("mes" + count).b();
}
- return DefaultEither.newB(_e);
+ return DefaultEither.newB(node);
+ }
+
+ @Override
+ public OperationLog getLog() {
+ return new DefaultOperationLog();
}
};
either = editor.edit(path, e);
@@ -486,10 +569,9 @@
either = editor.success();
} while (either.isA());
}
-
-
- public void editMatrixMessage(String _board, String _uuid, final String _author, final String _message, final String _editKey) {
+ public void editMatrixMessage(String _board, String _uuid,
+ final String _author, final String _message, final String _editKey) {
requestCounter.incrementAndGet();
final long timestamp = System.currentTimeMillis();
final ByteBuffer tBuffer = ByteBuffer.allocate(16);
@@ -502,12 +584,23 @@
JungleTreeEditor editor = tree.getTreeEditor();
NodeEditor e = new NodeEditor() {
- public > Either edit(T _e) {
- _e = _e.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b();
- _e = _e.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b();
- _e = _e.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b();
- _e = _e.getAttributes().put("timestamp", tBuffer).b();
- return DefaultEither.newB(_e);
+ public Either edit(T _e) {
+ TreeNode node = _e;
+ node = node.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b();
+ node = node.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b();
+ node = node.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b();
+ node = node.getAttributes().put("timestamp", tBuffer).b();
+ return DefaultEither.newB(node);
+ }
+
+ @Override
+ public OperationLog getLog() {
+ OperationLog op = new DefaultOperationLog();
+ op = op.add(new PutAttributeOperation("author", ByteBuffer.wrap(_author.getBytes())));
+ op = op.add(new PutAttributeOperation("mes", ByteBuffer.wrap(_message.getBytes())));
+ op = op.add(new PutAttributeOperation("key", ByteBuffer.wrap(_editKey.getBytes())));
+ op = op.add(new PutAttributeOperation("timestamp", tBuffer));
+ return op;
}
};
either = editor.edit(path, e);
@@ -523,19 +616,19 @@
public Iterable getMessages(String _boardName) {
requestCounter.incrementAndGet();
JungleTree tree = jungle.getTreeByName(_boardName);
- Node node = tree.getRootNode();
- Children chs = node.getChildren();
+ TreeNode node = tree.getRootNode();
+ Children chs = node.getChildren();
final AtomicInteger counter = new AtomicInteger(0);
- IterableConverter.Converter converter = new IterableConverter.Converter() {
- public BoardMessage conv(Node _b) {
+ IterableConverter.Converter converter = new IterableConverter.Converter() {
+ public BoardMessage conv(TreeNode _b) {
String uuid = Integer.toString(counter.get());
- String author = new String(_b.getAttributes().get("author") .array());
+ String author = new String(_b.getAttributes().get("author").array());
String message = new String(_b.getAttributes().get("mes").array());
counter.incrementAndGet();
return new BoardMessageImpl(author, message, uuid);
}
};
- return new IterableConverter(chs, converter);
+ return new IterableConverter(chs, converter);
}
public Iterable getFolder(String _boardName, String _nodeNum) {
@@ -550,32 +643,34 @@
}
requestCounter.incrementAndGet();
JungleTree tree = jungle.getTreeByName(_boardName);
- Node node = tree.getRootNode();
+ TreeNode node = tree.getRootNode();
DefaultTraverser traverser = new DefaultTraverser();
- TraversableNodeWrapper traversable = new TraversableNodeWrapper(node);
+ // TraversableNodeWrapper traversable = new
+ // TraversableNodeWrapper(node);
DefaultEvaluator evaluator = new DefaultEvaluator(path);
- Either>> ret = traverser.traverse(traversable, evaluator);
+ Either> ret = traverser.traverse(node,
+ evaluator);
if (ret.isA()) {
Assert.fail();
}
- Traversal> traversal = ret.b();
- TraversableNodeWrapper target = traversal.destination();
- Children chs = target.getWrapped().getChildren();
+ Traversal traversal = ret.b();
+ TreeNode target = traversal.destination();
+ Children chs = target.getChildren();
final AtomicInteger counter = new AtomicInteger(0);
- IterableConverter.Converter converter = new IterableConverter.Converter() {
- public BoardMessage conv(Node _b) {
+ IterableConverter.Converter converter = new IterableConverter.Converter() {
+ public BoardMessage conv(TreeNode _b) {
String uuid = Integer.toString(counter.get());
- String message = new String(_b.getAttributes().get("mes").array());
+ String message = new String(_b.getAttributes().get("mes")
+ .array());
counter.incrementAndGet();
return new BoardMessageImpl(null, message, uuid);
}
};
- return new IterableConverter(chs, converter);
+ return new IterableConverter(chs, converter);
}
-
public getAttributeImp getAttribute(String _boardName, String _nodeNum) {
@@ -583,25 +678,28 @@
try {
for (int count = 0; _nodeNum.substring(count, count + 1) != null; count++) {
if (!_nodeNum.substring(count, count + 1).equals("/"))
- path = path.add(Integer.parseInt(_nodeNum.substring(count,count + 1)));
+ path = path.add(Integer.parseInt(_nodeNum.substring(count,
+ count + 1)));
}
} catch (Exception _e) {
}
requestCounter.incrementAndGet();
JungleTree tree = jungle.getTreeByName(_boardName);
- Node node = tree.getRootNode();
+ TreeNode node = tree.getRootNode();
DefaultTraverser traverser = new DefaultTraverser();
- TraversableNodeWrapper traversable = new TraversableNodeWrapper(node);
+ // TraversableNodeWrapper traversable = new
+ // TraversableNodeWrapper(node);
DefaultEvaluator evaluator = new DefaultEvaluator(path);
- Either>> ret = traverser.traverse(traversable, evaluator);
+ Either> ret = traverser.traverse(node,
+ evaluator);
if (ret.isA()) {
Assert.fail();
}
- Traversal> traversal = ret.b();
- TraversableNodeWrapper target = traversal.destination();
- return new getAttributeImp(target.getWrapped());
+ Traversal traversal = ret.b();
+ TreeNode target = traversal.destination();
+ return new getAttributeImp(target);
}
public int getRequestNum() {
@@ -632,18 +730,17 @@
}
}
-
- public String sanitize( String str ) {
- if(str==null) {
- return str;
- }
- str = str.replaceAll("&" , "&" );
- str = str.replaceAll("<" , "<" );
- str = str.replaceAll(">" , ">" );
- str = str.replaceAll("\"", """);
- str = str.replaceAll("'" , "'" );
- return str;
- }
+ public String sanitize(String str) {
+ if (str == null) {
+ return str;
+ }
+ str = str.replaceAll("&", "&");
+ str = str.replaceAll("<", "<");
+ str = str.replaceAll(">", ">");
+ str = str.replaceAll("\"", """);
+ str = str.replaceAll("'", "'");
+ return str;
+ }
}
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/app/bbs/ShowMessageWithTimeStampServlet.java
--- a/src/main/java/app/bbs/ShowMessageWithTimeStampServlet.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/app/bbs/ShowMessageWithTimeStampServlet.java Mon Sep 01 00:04:32 2014 +0900
@@ -6,7 +6,6 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.commons.lang.StringEscapeUtils;
import org.eclipse.jetty.util.thread.ThreadPool;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.BoardMessage;
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/app/bbs/codesegment/StartBBSCodeSegment.java
--- a/src/main/java/app/bbs/codesegment/StartBBSCodeSegment.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/app/bbs/codesegment/StartBBSCodeSegment.java Mon Sep 01 00:04:32 2014 +0900
@@ -12,7 +12,6 @@
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.CreateBoardMessageServlet;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.CreateBoardServlet;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.EditMessageServlet;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.EditMessageUseGetServlet;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.ShowBoardsServlet;
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/app/bbs/thinks/CreateNode.java
--- a/src/main/java/app/bbs/thinks/CreateNode.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/app/bbs/thinks/CreateNode.java Mon Sep 01 00:04:32 2014 +0900
@@ -6,7 +6,6 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.commons.lang.StringEscapeUtils;
import app.bbs.NetworkBulletinBoard;
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/app/bbs/thinks/EditAttributeServlet.java
--- a/src/main/java/app/bbs/thinks/EditAttributeServlet.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/app/bbs/thinks/EditAttributeServlet.java Mon Sep 01 00:04:32 2014 +0900
@@ -6,10 +6,8 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.commons.lang.StringEscapeUtils;
import app.bbs.NetworkBulletinBoard;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.BulletinBoard;
public class EditAttributeServlet extends HttpServlet
{
@@ -17,7 +15,7 @@
private static final String PARAM_BOARD_NAME = "bname";
private static final String PARAM_NODE_PATH = "path";
private static final String PARAM_BOARD_MESSAGE= "msg";
- private static final String PARAM_BOARD_EDITKEY = "key";
+ //private static final String PARAM_BOARD_EDITKEY = "key";
private static final String PARAM_NODE_ID = "id";
private static final long serialVersionUID = 1L;
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/app/bbs/thinks/EditNodeName.java
--- a/src/main/java/app/bbs/thinks/EditNodeName.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/app/bbs/thinks/EditNodeName.java Mon Sep 01 00:04:32 2014 +0900
@@ -6,7 +6,6 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.commons.lang.StringEscapeUtils;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.BulletinBoard;
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/app/bbs/thinks/ShowMatrix.java
--- a/src/main/java/app/bbs/thinks/ShowMatrix.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/app/bbs/thinks/ShowMatrix.java Mon Sep 01 00:04:32 2014 +0900
@@ -6,7 +6,6 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.commons.lang.StringEscapeUtils;
import org.eclipse.jetty.util.thread.ThreadPool;
import app.bbs.NetworkBulletinBoard;
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/app/bbs/thinks/createAttributeMatrix.java
--- a/src/main/java/app/bbs/thinks/createAttributeMatrix.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/app/bbs/thinks/createAttributeMatrix.java Mon Sep 01 00:04:32 2014 +0900
@@ -6,8 +6,6 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.commons.lang.StringEscapeUtils;
-
import app.bbs.NetworkBulletinBoard;
public class createAttributeMatrix extends HttpServlet
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/app/bbs/thinks/deleteAttributeServlet.java
--- a/src/main/java/app/bbs/thinks/deleteAttributeServlet.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/app/bbs/thinks/deleteAttributeServlet.java Mon Sep 01 00:04:32 2014 +0900
@@ -6,18 +6,15 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.commons.lang.StringEscapeUtils;
-
import app.bbs.NetworkBulletinBoard;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.BulletinBoard;
public class deleteAttributeServlet extends HttpServlet
{
private final NetworkBulletinBoard bbs;
private static final String PARAM_BOARD_NAME = "bname";
private static final String PARAM_NODE_PATH = "path";
- private static final String PARAM_BOARD_MESSAGE= "msg";
- private static final String PARAM_BOARD_EDITKEY = "key";
+ //private static final String PARAM_BOARD_MESSAGE= "msg";
+ //private static final String PARAM_BOARD_EDITKEY = "key";
private static final String PARAM_NODE_ID = "id";
private static final long serialVersionUID = 1L;
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/app/bbs/thinks/deleteNodeServlet.java
--- a/src/main/java/app/bbs/thinks/deleteNodeServlet.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/app/bbs/thinks/deleteNodeServlet.java Mon Sep 01 00:04:32 2014 +0900
@@ -4,9 +4,6 @@
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.lang.StringEscapeUtils;
-
import app.bbs.NetworkBulletinBoard;
public class deleteNodeServlet extends HttpServlet
diff -r ac7d1070f449 -r 6f104ab4eb81 src/main/java/app/bbs/thinks/getAttributeImp.java
--- a/src/main/java/app/bbs/thinks/getAttributeImp.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/main/java/app/bbs/thinks/getAttributeImp.java Mon Sep 01 00:04:32 2014 +0900
@@ -1,14 +1,15 @@
package app.bbs.thinks;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
+
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
public class getAttributeImp
{
- private final Node node;
+ private final TreeNode node;
- public getAttributeImp(Node _node)
+ public getAttributeImp(TreeNode _node)
{
node = _node;
}
diff -r ac7d1070f449 -r 6f104ab4eb81 src/test/java/alice/jungle/PersistentJournalTest.java
--- a/src/test/java/alice/jungle/PersistentJournalTest.java Wed Jul 30 22:17:23 2014 +0900
+++ b/src/test/java/alice/jungle/PersistentJournalTest.java Mon Sep 01 00:04:32 2014 +0900
@@ -12,11 +12,11 @@
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListReader;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
@@ -61,18 +61,18 @@
editor2.success();
}
JungleTree tree2 = jungle2.getTreeByName("hoge");
- Node node1 = tree1.getRootNode();
- Node node2 = tree2.getRootNode();
- Children child1 = node1.getChildren();
- Children child2 = node2.getChildren();
+ TreeNode node1 = tree1.getRootNode();
+ TreeNode node2 = tree2.getRootNode();
+ Children child1 = node1.getChildren();
+ Children child2 = node2.getChildren();
assertEquals(child1.size(), child2.size());
- Either either1 = child1.at(pos);
- Either either2 = child1.at(pos);
+ Either either1 = child1.at(pos);
+ Either either2 = child1.at(pos);
assertFalse(either1.isA());
assertFalse(either2.isA());
- Node nodeA = either1.b();
- Node nodeB = either2.b();
+ TreeNode nodeA = either1.b();
+ TreeNode nodeB = either2.b();
ByteBuffer bb1 = nodeA.getAttributes().get(key);
ByteBuffer bb2 = nodeB.getAttributes().get(key);
String strA = new String(bb1.array());