# HG changeset patch # User tatsuki # Date 1410580442 -32400 # Node ID 2828205bdc3a47c98bf16f05bba73ee12e9b00b2 # Parent d6944d788121172cdd762698cf48c64777a841aa fit JungleCore diff -r d6944d788121 -r 2828205bdc3a src/main/java/alice/jungle/core/NetworkDefaultJungle.java --- a/src/main/java/alice/jungle/core/NetworkDefaultJungle.java Thu Sep 04 13:12:25 2014 +0900 +++ b/src/main/java/alice/jungle/core/NetworkDefaultJungle.java Sat Sep 13 12:54:02 2014 +0900 @@ -56,7 +56,7 @@ } }; TreeNode root = new DefaultTreeNode(); - ChangeSet set = new DefaultChangeSet(root,null,list,uuid,_name, 0); + ChangeSet set = new DefaultChangeSet(root,null,list,uuid,_name, 0,null); DefaultTreeContext tc = new DefaultTreeContext(root,set); JungleTree newTree = new NetworkDefaultJungleTree(_name, tc,uuid,journal.getWriter(),editor); if(trees.putIfAbsent(_name,newTree) != null){ diff -r d6944d788121 -r 2828205bdc3a src/main/java/alice/jungle/datasegment/transformer/NetworkAppendChildAt.java --- a/src/main/java/alice/jungle/datasegment/transformer/NetworkAppendChildAt.java Thu Sep 04 13:12:25 2014 +0900 +++ b/src/main/java/alice/jungle/datasegment/transformer/NetworkAppendChildAt.java Sat Sep 13 12:54:02 2014 +0900 @@ -1,14 +1,19 @@ package alice.jungle.datasegment.transformer; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.LoggingNode; 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; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; +import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index.Logging; import org.msgpack.annotation.Message; +import fj.data.List; +import fj.data.TreeMap; + /* * This code same AppendChildAt. @@ -23,14 +28,35 @@ pos = _pos; } - @Override - public Either edit(TreeNode _e) { - Either either = _e.getChildren().addNewChildAt(pos); + public Either _edit(Logging _e) + { + Either either = _e.getChildren().addNewChildAt(pos); if(either.isA()){ // error return either; } return DefaultEither.newB(either.b()); } + + @Override + public Either edit(TreeNode _e) { + Logging logNode = wrap(_e); + return _edit(logNode); + } + + public Logging wrap(TreeNode node) { + return new LoggingNode(node); + } + + @Override + public Logging wrap(TreeNode node, OperationLog op) { + return new LoggingNode(node, op); + } + + @Override + public TreeMap>> getIndex() { + // TODO Auto-generated method stub + return null; + } } diff -r d6944d788121 -r 2828205bdc3a src/main/java/alice/jungle/operations/NetworkAppendChildAtOperation.java --- a/src/main/java/alice/jungle/operations/NetworkAppendChildAtOperation.java Thu Sep 04 13:12:25 2014 +0900 +++ b/src/main/java/alice/jungle/operations/NetworkAppendChildAtOperation.java Sat Sep 13 12:54:02 2014 +0900 @@ -3,7 +3,10 @@ import java.nio.ByteBuffer; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; import org.msgpack.annotation.Message; @@ -22,29 +25,32 @@ pos = _pos; } - @Override - public Command getCommand() { + public Command getCommand() + { return Command.APPEND_CHILD; } - /*@Override - public Either invoke(TreeNode _target) { - NetworkAppendChildAt appendChildAt = new NetworkAppendChildAt(pos); - return appendChildAt.edit(_target); - }*/ + @Override + public Either invoke(TreeNode _target) + { + return _target.getChildren().addNewChildAt(pos); + } @Override - public int getPosition() { + public int getPosition() + { return pos; } @Override - public String getKey() { + public String getKey() + { return null; } @Override - public ByteBuffer getValue() { + public ByteBuffer getValue() + { return null; } } diff -r d6944d788121 -r 2828205bdc3a src/main/java/alice/jungle/operations/NetworkDeleteAttributeOperation.java --- a/src/main/java/alice/jungle/operations/NetworkDeleteAttributeOperation.java Thu Sep 04 13:12:25 2014 +0900 +++ b/src/main/java/alice/jungle/operations/NetworkDeleteAttributeOperation.java Sat Sep 13 12:54:02 2014 +0900 @@ -5,8 +5,11 @@ import org.msgpack.annotation.Message; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; 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.util.Either; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; @Message public class NetworkDeleteAttributeOperation implements NodeOperation @@ -31,12 +34,11 @@ return Command.DELETE_ATTRIBUTE; } - /*@Override - public > Either invoke(T _target) + @Override + public Either invoke(TreeNode _target) { - DeleteAttribute deleteAttribute = new DeleteAttribute(key); - return deleteAttribute.edit(_target); - }*/ + return _target.getAttributes().delete(key); + } @Override public int getPosition() diff -r d6944d788121 -r 2828205bdc3a src/main/java/alice/jungle/operations/NetworkDeleteChildAtOperation.java --- a/src/main/java/alice/jungle/operations/NetworkDeleteChildAtOperation.java Thu Sep 04 13:12:25 2014 +0900 +++ b/src/main/java/alice/jungle/operations/NetworkDeleteChildAtOperation.java Sat Sep 13 12:54:02 2014 +0900 @@ -5,6 +5,7 @@ import org.msgpack.annotation.Message; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; 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.util.Either; @@ -32,12 +33,11 @@ return Command.DELETE_CHILD; } - /*@Override - public > Either invoke(T _target) + @Override + public Either invoke(TreeNode _target) { - DeleteChildAt deleteChildAt = new DeleteChildAt(pos); - return deleteChildAt.edit(_target); - }*/ + return _target.getChildren().deleteChildAt(pos); + } @Override public int getPosition() diff -r d6944d788121 -r 2828205bdc3a src/main/java/alice/jungle/operations/NetworkNodeOperation.java --- a/src/main/java/alice/jungle/operations/NetworkNodeOperation.java Thu Sep 04 13:12:25 2014 +0900 +++ b/src/main/java/alice/jungle/operations/NetworkNodeOperation.java Sat Sep 13 12:54:02 2014 +0900 @@ -3,6 +3,7 @@ import java.nio.ByteBuffer; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; 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; @@ -88,25 +89,21 @@ return value; } -/* @Override - public > Either invoke(T _target) { + @Override + public Either invoke(TreeNode _target) { switch(getCommand(commandType)) { case PUT_ATTRIBUTE: - PutAttribute putAttribute = new PutAttribute(key,value); - return putAttribute.edit(_target); + return _target.getAttributes().put(key, value); case APPEND_CHILD: - AppendChildAt appendChildAt = new AppendChildAt(pos); - return appendChildAt.edit(_target); + return _target.getChildren().addNewChildAt(pos); case DELETE_CHILD: - DeleteChildAt deleteChildAt = new DeleteChildAt(pos); - return deleteChildAt.edit(_target); + return _target.getChildren().deleteChildAt(pos); case DELETE_ATTRIBUTE: - DeleteAttribute deleteAttribute = new DeleteAttribute(key); - return deleteAttribute.edit(_target); + return _target.getAttributes().delete(key); default: break; } return null; - }*/ + } } diff -r d6944d788121 -r 2828205bdc3a src/main/java/alice/jungle/operations/NetworkNodePath.java --- a/src/main/java/alice/jungle/operations/NetworkNodePath.java Thu Sep 04 13:12:25 2014 +0900 +++ b/src/main/java/alice/jungle/operations/NetworkNodePath.java Sat Sep 13 12:54:02 2014 +0900 @@ -66,5 +66,11 @@ public String toString() { return path.toString(); } + + @Override + public NodePath tail() { + // TODO Auto-generated method stub + return null; + } } diff -r d6944d788121 -r 2828205bdc3a src/main/java/alice/jungle/operations/NetworkPutAttributeOperation.java --- a/src/main/java/alice/jungle/operations/NetworkPutAttributeOperation.java Thu Sep 04 13:12:25 2014 +0900 +++ b/src/main/java/alice/jungle/operations/NetworkPutAttributeOperation.java Sat Sep 13 12:54:02 2014 +0900 @@ -5,10 +5,12 @@ import org.msgpack.annotation.Message; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation; 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 jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index.Logging; @Message public class NetworkPutAttributeOperation implements NodeOperation { @@ -39,12 +41,11 @@ return Command.PUT_ATTRIBUTE; } - /*@Override - public > Either invoke(T _target) + @Override + public Either invoke(TreeNode _target) { - PutAttribute putAttribute = new PutAttribute(key,value); - return putAttribute.edit(_target); - }*/ + return _target.getAttributes().put(key,value); + } @Override public int getPosition() diff -r d6944d788121 -r 2828205bdc3a src/main/java/alice/jungle/persistent/PersistentChangeSet.java --- a/src/main/java/alice/jungle/persistent/PersistentChangeSet.java Thu Sep 04 13:12:25 2014 +0900 +++ b/src/main/java/alice/jungle/persistent/PersistentChangeSet.java Sat Sep 13 12:54:02 2014 +0900 @@ -1,5 +1,7 @@ package alice.jungle.persistent; +import fj.data.List; +import fj.data.TreeMap; 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; @@ -64,4 +66,10 @@ return treeName; } + @Override + public TreeMap>> getIndex() { + // TODO Auto-generated method stub + return null; + } + } diff -r d6944d788121 -r 2828205bdc3a src/main/java/alice/jungle/persistent/PersistentJungleTree.java --- a/src/main/java/alice/jungle/persistent/PersistentJungleTree.java Thu Sep 04 13:12:25 2014 +0900 +++ b/src/main/java/alice/jungle/persistent/PersistentJungleTree.java Sat Sep 13 12:54:02 2014 +0900 @@ -1,14 +1,19 @@ package alice.jungle.persistent; +import fj.data.List; +import fj.data.TreeMap; 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.persistent.ChangeListWriter; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet; +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; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.AtomicReservableReference; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultJungleTreeEditor; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TreeContext; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair; public class PersistentJungleTree implements JungleTree { private final AtomicReservableReference repository; @@ -48,5 +53,23 @@ return getTreeEditor(); } + @Override + public InterfaceTraverser getTraverser() { + // TODO Auto-generated method stub + return null; + } + + @Override + public TreeMap>>> getIndex() { + // TODO Auto-generated method stub + return null; + } + + @Override + public JungleTreeEditor getIndexTreeEditor() { + // TODO Auto-generated method stub + return null; + } + } diff -r d6944d788121 -r 2828205bdc3a src/main/java/alice/jungle/persistent/PersistentTransactionManager.java --- a/src/main/java/alice/jungle/persistent/PersistentTransactionManager.java Thu Sep 04 13:12:25 2014 +0900 +++ b/src/main/java/alice/jungle/persistent/PersistentTransactionManager.java Sat Sep 13 12:54:02 2014 +0900 @@ -1,5 +1,7 @@ package alice.jungle.persistent; +import fj.data.List; +import fj.data.TreeMap; 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; @@ -33,7 +35,7 @@ } @Override - public Either commit(TreeNode _newRoot,final TreeOperationLog _log) { + public Either commit(TreeNode _newRoot,final TreeOperationLog _log,TreeMap>> index) { ChangeSet cs = tip.getChangeSet(); long currentRevision = cs.revision(); long nextRevision = currentRevision + 1; diff -r d6944d788121 -r 2828205bdc3a src/main/java/alice/jungle/transaction/NetworkDefaultJungleTree.java --- a/src/main/java/alice/jungle/transaction/NetworkDefaultJungleTree.java Thu Sep 04 13:12:25 2014 +0900 +++ b/src/main/java/alice/jungle/transaction/NetworkDefaultJungleTree.java Sat Sep 13 12:54:02 2014 +0900 @@ -1,13 +1,18 @@ package alice.jungle.transaction; +import fj.data.List; +import fj.data.TreeMap; 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.persistent.ChangeListWriter; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.ChangeSet; +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; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.AtomicReservableReference; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.TreeContext; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair; public class NetworkDefaultJungleTree implements JungleTree { private final AtomicReservableReference repository; @@ -51,5 +56,23 @@ return cs.getRoot(); } + @Override + public InterfaceTraverser getTraverser() { + // TODO Auto-generated method stub + return null; + } + + @Override + public TreeMap>>> getIndex() { + // TODO Auto-generated method stub + return null; + } + + @Override + public JungleTreeEditor getIndexTreeEditor() { + // TODO Auto-generated method stub + return null; + } + } diff -r d6944d788121 -r 2828205bdc3a src/main/java/alice/jungle/transaction/NetworkDefaultJungleTreeEditor.java --- a/src/main/java/alice/jungle/transaction/NetworkDefaultJungleTreeEditor.java Thu Sep 04 13:12:25 2014 +0900 +++ b/src/main/java/alice/jungle/transaction/NetworkDefaultJungleTreeEditor.java Sat Sep 13 12:54:02 2014 +0900 @@ -27,6 +27,7 @@ import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.IterableConverter; +import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index.Logging; public class NetworkDefaultJungleTreeEditor implements JungleTreeEditor { @@ -67,13 +68,13 @@ private Either _edit(final NodePath _path,NodeEditor _e) { //LoggingNodeHook hook = new LoggingNodeHook(_e); - Either either = editor.edit(root,_path,_e); + Either either = editor.edit(root,_path,_e); if(either.isA()){ return DefaultEither.newA(either.a()); } - TreeNode newNode = either.b(); - OperationLog newLog = newNode.getLog(); + TreeNode newNode = either.b().getWrap(); + OperationLog newLog = either.b().getOperationLog(); IterableConverter.Converter converter = new IterableConverter.Converter(){ @Override @@ -132,7 +133,7 @@ @Override public Either success() { - Either either = txManager.commit(root,log); + Either either = txManager.commit(root,log,null); if(either.isA()){ return DefaultEither.newA(either.a()); } diff -r d6944d788121 -r 2828205bdc3a src/main/java/alice/jungle/transaction/NetworkTransactionManager.java --- a/src/main/java/alice/jungle/transaction/NetworkTransactionManager.java Thu Sep 04 13:12:25 2014 +0900 +++ b/src/main/java/alice/jungle/transaction/NetworkTransactionManager.java Sat Sep 13 12:54:02 2014 +0900 @@ -2,6 +2,8 @@ import java.util.Iterator; +import fj.data.List; +import fj.data.TreeMap; 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; @@ -40,7 +42,7 @@ } @Override - public Either commit(TreeNode _newRoot,final TreeOperationLog _log) { + public Either commit(TreeNode _newRoot,final TreeOperationLog _log, TreeMap>> index) { ChangeSet cs = tip.getChangeSet(); long currentRevision = cs.revision(); long nextRevision = currentRevision + 1; @@ -61,7 +63,7 @@ }; TreeNode root = _newRoot; - DefaultChangeSet newCs = new DefaultChangeSet(root, cs, list, uuid, treeName, nextRevision); + DefaultChangeSet newCs = new DefaultChangeSet(root, cs, list, uuid, treeName, nextRevision, null); DefaultTreeContext newContext = new DefaultTreeContext(_newRoot,newCs); @SuppressWarnings("rawtypes") diff -r d6944d788121 -r 2828205bdc3a src/main/java/app/bbs/NetworkJungleBulletinBoard.java --- a/src/main/java/app/bbs/NetworkJungleBulletinBoard.java Thu Sep 04 13:12:25 2014 +0900 +++ b/src/main/java/app/bbs/NetworkJungleBulletinBoard.java Sat Sep 13 12:54:02 2014 +0900 @@ -5,6 +5,8 @@ import java.nio.ByteBuffer; import java.util.concurrent.atomic.AtomicInteger; +import fj.data.List; +import fj.data.TreeMap; import alice.jungle.core.NetworkDefaultJungle; import alice.jungle.persistent.AliceJournal; import alice.jungle.persistent.NetworkJournal; @@ -22,6 +24,7 @@ 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.store.impl.logger.DefaultOperationLog; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.LoggingNode; 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; @@ -32,6 +35,7 @@ import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.IterableConverter; +import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index.Logging; import junit.framework.Assert; public class NetworkJungleBulletinBoard implements NetworkBulletinBoard { @@ -186,13 +190,23 @@ NodeEditor e = new NodeEditor() { ByteBuffer tBuffer2 = ByteBuffer.allocate(16); - public Either edit(TreeNode node) { - 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(); + public Either edit(TreeNode node) { + Logging logNode = wrap(node , new DefaultOperationLog()); + logNode = logNode.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b(); + logNode = logNode.getAttributes().put("mes", ByteBuffer.wrap(_initMessage.getBytes())).b(); + logNode = logNode.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b(); tBuffer2.putLong(timestamp); - node = node.getAttributes().put("timestamp", tBuffer2).b(); - return DefaultEither.newB(node); + logNode = logNode.getAttributes().put("timestamp", tBuffer2).b(); + return DefaultEither.newB(logNode); + } + @Override + public Logging wrap(TreeNode node, OperationLog op) { + return new LoggingNode(node, op); + } + @Override + public TreeMap>> getIndex() { + // TODO Auto-generated method stub + return null; } }; @@ -250,10 +264,22 @@ NodeEditor e = new NodeEditor() { - public Either edit(TreeNode node) { - node = node.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b(); - node = node.getAttributes().put("timestamp", tBuffer).b(); - return DefaultEither.newB(node); + public Either edit(TreeNode node) { + Logging logNode = wrap(node , new DefaultOperationLog()); + logNode = logNode.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b(); + logNode = logNode.getAttributes().put("timestamp", tBuffer).b(); + return DefaultEither.newB(logNode); + } + + @Override + public Logging wrap(TreeNode node, OperationLog op) { + return new LoggingNode(node, op); + } + + @Override + public TreeMap>> getIndex() { + // TODO Auto-generated method stub + return null; } }; @@ -293,12 +319,24 @@ editor = either.b(); NodeEditor e = new NodeEditor() { - public Either edit(TreeNode node) { - 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); + public Either edit(TreeNode node) { + Logging logNode = wrap(node , new DefaultOperationLog()); + logNode = logNode.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b(); + logNode = logNode.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b(); + logNode = logNode.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b(); + logNode = logNode.getAttributes().put("timestamp", tBuffer).b(); + return DefaultEither.newB(logNode); + } + + @Override + public Logging wrap(TreeNode node, OperationLog op) { + return new LoggingNode(node, op); + } + + @Override + public TreeMap>> getIndex() { + // TODO Auto-generated method stub + return null; } }; @@ -332,14 +370,26 @@ } JungleTreeEditor editor = tree.getTreeEditor(); NodeEditor e = new NodeEditor() { - public Either edit(TreeNode node) { + public Either edit(TreeNode node) { + Logging logNode = wrap(node , new DefaultOperationLog()); + System.out.println(new String(node.getAttributes().get("mes").array())); + logNode = logNode.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b(); + logNode = logNode.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b(); + logNode = logNode.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b(); + logNode = logNode.getAttributes().put("timestamp", tBuffer).b(); 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); + return DefaultEither.newB(logNode); + } + + @Override + public Logging wrap(TreeNode node, OperationLog op) { + return new LoggingNode(node, op); + } + + @Override + public TreeMap>> getIndex() { + // TODO Auto-generated method stub + return null; } }; @@ -375,15 +425,27 @@ NodeEditor e = new NodeEditor() { String str; - public Either edit(TreeNode node) { + public Either edit(TreeNode node) { + Logging logNode = wrap(node , new DefaultOperationLog()); str = "0"; int count = 0; - for (; node.getAttributes().get("mes" + String.valueOf(count)) != null; count++) { + for (; logNode.getAttributes().get("mes" + String.valueOf(count)) != null; count++) { } str = String.valueOf(count); - node = node.getAttributes().put("mes" + str,ByteBuffer.wrap(_message.getBytes())).b(); - node = node.getAttributes().put("timestamp" + str, tBuffer).b(); - return DefaultEither.newB(node); + logNode = logNode.getAttributes().put("mes" + str,ByteBuffer.wrap(_message.getBytes())).b(); + logNode = logNode.getAttributes().put("timestamp" + str, tBuffer).b(); + return DefaultEither.newB(logNode); + } + + @Override + public Logging wrap(TreeNode node, OperationLog op) { + return new LoggingNode(node, op); + } + + @Override + public TreeMap>> getIndex() { + // TODO Auto-generated method stub + return null; } }; @@ -416,11 +478,23 @@ JungleTreeEditor editor = tree.getTreeEditor(); NodeEditor e = new NodeEditor() { - public Either edit(TreeNode node) { + public Either edit(TreeNode node) { + Logging logNode = wrap(node , new DefaultOperationLog()); // EnableNodeWrapper node = _e.getWrap(); - node = node.getAttributes().put("mes" + id,ByteBuffer.wrap(_message.getBytes())).b(); - node = node.getAttributes().put("timestamp" + id, tBuffer).b(); - return DefaultEither.newB(node); + logNode = logNode.getAttributes().put("mes" + id,ByteBuffer.wrap(_message.getBytes())).b(); + logNode = logNode.getAttributes().put("timestamp" + id, tBuffer).b(); + return DefaultEither.newB(logNode); + } + + @Override + public Logging wrap(TreeNode node, OperationLog op) { + return new LoggingNode(node, op); + } + + @Override + public TreeMap>> getIndex() { + // TODO Auto-generated method stub + return null; } }; @@ -484,21 +558,33 @@ JungleTreeEditor editor = tree.getTreeEditor(); NodeEditor e = new NodeEditor() { - public Either edit(TreeNode node) { - node = node.getAttributes().delete("mes" + id).b(); - node = node.getAttributes().delete("timestamp" + id).b(); + public Either edit(TreeNode node) { + Logging logNode = wrap(node , new DefaultOperationLog()); + logNode = logNode.getAttributes().delete("mes" + id).b(); + logNode = logNode.getAttributes().delete("timestamp" + id).b(); int count = Integer.parseInt(id); - for (; node.getAttributes().get("mes" + String.valueOf(count + 1)) != null;) { - node = node.getAttributes().put("mes" + count,node.getAttributes().get("mes"+ String.valueOf(count + 1))).b(); - node = node.getAttributes().put("timestamp" + count, tBuffer).b(); + for (; logNode.getAttributes().get("mes" + String.valueOf(count + 1)) != null;) { + logNode = logNode.getAttributes().put("mes" + count,node.getAttributes().get("mes"+ String.valueOf(count + 1))).b(); + logNode = logNode.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(); + logNode = logNode.getAttributes().delete("timestamp" + count).b(); + logNode = logNode.getAttributes().delete("mes" + count).b(); } - return DefaultEither.newB(node); + return DefaultEither.newB(logNode); + } + + @Override + public Logging wrap(TreeNode node, OperationLog op) { + return new LoggingNode(node, op); + } + + @Override + public TreeMap>> getIndex() { + // TODO Auto-generated method stub + return null; } }; @@ -525,12 +611,24 @@ JungleTreeEditor editor = tree.getTreeEditor(); NodeEditor e = new NodeEditor() { - public Either edit(TreeNode node) { - 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); + public Either edit(TreeNode node) { + Logging logNode = wrap(node , new DefaultOperationLog()); + logNode = logNode.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b(); + logNode = logNode.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b(); + logNode = logNode.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b(); + logNode = logNode.getAttributes().put("timestamp", tBuffer).b(); + return DefaultEither.newB(logNode); + } + + @Override + public Logging wrap(TreeNode node, OperationLog op) { + return new LoggingNode(node, op); + } + + @Override + public TreeMap>> getIndex() { + // TODO Auto-generated method stub + return null; } }; either = editor.edit(path, e);