# HG changeset patch # User one # Date 1409984566 -32400 # Node ID bd82c20a6da096d8d8ea7cc2ddba86566c275bad # Parent 3653fb50fb227fcc3a36370715d0a0413a27a787 LoggingNode repair diff -r 3653fb50fb22 -r bd82c20a6da0 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTreeEditor.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTreeEditor.java Sat Sep 06 10:35:19 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTreeEditor.java Sat Sep 06 15:22:46 2014 +0900 @@ -52,16 +52,17 @@ Direction targetDirection = path.head(); TreeNode target = targetDirection.getTarget(); //EditableNodeWrapper wrapper = new EditableNodeWrapper(target); - Either either = _editor.edit(target); + LoggingNode Logging = new LoggingNode(target); + Either either = _editor.edit(Logging); if(either.isA()){ return DefaultEither.newA(either.a()); } - TreeNode newWrap = either.b(); + LoggingNode newWrap = either.b(); // top int pos = targetDirection.getPosition(); - TreeNode child = newWrap; + TreeNode child = newWrap.getWrap(); for(Direction parentDirection : path.tail()){ TreeNodeChildren chs = parentDirection.getTarget().getChildren(); @@ -76,6 +77,6 @@ } TreeNode newRoot = child; - return DefaultEither.newB(new LoggingNode(newRoot,_editor.getLog())); + return DefaultEither.newB(new LoggingNode(newRoot,newWrap.getOperationLog())); } } \ No newline at end of file diff -r 3653fb50fb22 -r bd82c20a6da0 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/AppendChildAtOperation.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/AppendChildAtOperation.java Sat Sep 06 10:35:19 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/AppendChildAtOperation.java Sat Sep 06 15:22:46 2014 +0900 @@ -4,6 +4,7 @@ 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.impl.logger.LoggingNode; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; diff -r 3653fb50fb22 -r bd82c20a6da0 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/DeleteAttributeOperation.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/DeleteAttributeOperation.java Sat Sep 06 10:35:19 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/DeleteAttributeOperation.java Sat Sep 06 15:22:46 2014 +0900 @@ -4,6 +4,7 @@ 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.impl.logger.LoggingNode; 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; @@ -26,8 +27,7 @@ @Override public Either invoke(TreeNode _target) { - DeleteAttribute deleteAttribute = new DeleteAttribute(key); - return deleteAttribute.edit(_target); + return _target.getAttributes().delete(key); } @Override diff -r 3653fb50fb22 -r bd82c20a6da0 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/DeleteChildAtOperation.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/DeleteChildAtOperation.java Sat Sep 06 10:35:19 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/DeleteChildAtOperation.java Sat Sep 06 15:22:46 2014 +0900 @@ -4,6 +4,7 @@ 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.impl.logger.LoggingNode; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.DeleteChildAt; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; @@ -26,8 +27,7 @@ @Override public Either invoke(TreeNode _target) { - DeleteChildAt deleteChildAt = new DeleteChildAt(pos); - return deleteChildAt.edit(_target); + return _target.getChildren().deleteChildAt(pos); } @Override diff -r 3653fb50fb22 -r bd82c20a6da0 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/PutAttributeOperation.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/PutAttributeOperation.java Sat Sep 06 10:35:19 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/PutAttributeOperation.java Sat Sep 06 15:22:46 2014 +0900 @@ -4,6 +4,7 @@ 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.impl.logger.LoggingNode; 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; diff -r 3653fb50fb22 -r bd82c20a6da0 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/AppendChildAt.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/AppendChildAt.java Sat Sep 06 10:35:19 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/AppendChildAt.java Sat Sep 06 15:22:46 2014 +0900 @@ -2,6 +2,7 @@ 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.AppendChildAtOperation; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation; @@ -21,21 +22,13 @@ } @Override - public Either edit(TreeNode _e) + public Either edit(LoggingNode _e) { - NodeOperation addNewChildOperation = new AppendChildAtOperation(pos); - Either either = addNewChildOperation.invoke(_e); + Either either = _e.getChildren().addNewChildAt(pos); if(either.isA()){ // error return either; } - log = log.add(addNewChildOperation); return DefaultEither.newB(either.b()); } - - @Override - public OperationLog getLog() { - return log; - } - } diff -r 3653fb50fb22 -r bd82c20a6da0 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteAttribute.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteAttribute.java Sat Sep 06 10:35:19 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteAttribute.java Sat Sep 06 15:22:46 2014 +0900 @@ -2,6 +2,7 @@ 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.DeleteAttributeOperation; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither; @@ -19,20 +20,14 @@ } @Override - public Either edit(TreeNode _e) + public Either edit(LoggingNode _e) { - DeleteAttributeOperation deleteAttributeOperation = new DeleteAttributeOperation(key); - Either either = deleteAttributeOperation.invoke(_e); + Either either = _e.getAttributes().delete(key); if(either.isA()){ // error return either; } - log = log.add(deleteAttributeOperation); return DefaultEither.newB(either.b()); } - @Override - public OperationLog getLog() { - return log; - } } diff -r 3653fb50fb22 -r bd82c20a6da0 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteChildAt.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteChildAt.java Sat Sep 06 10:35:19 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteChildAt.java Sat Sep 06 15:22:46 2014 +0900 @@ -2,6 +2,7 @@ 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.DeleteChildAtOperation; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation; @@ -12,28 +13,19 @@ public class DeleteChildAt implements NodeEditor { private final int pos; - private OperationLog log; public DeleteChildAt(int _pos) { pos = _pos; - log = new DefaultOperationLog(); } @Override - public Either edit(TreeNode _e) + public Either edit(LoggingNode _e) { - NodeOperation deleteChildOperation = new DeleteChildAtOperation(pos); - Either either = deleteChildOperation.invoke(_e); + Either either = _e.getChildren().deleteChildAt(pos); if(either.isA()){ // error return either; } - log = log.add(deleteChildOperation); return DefaultEither.newB(either.b()); } - - @Override - public OperationLog getLog() { - return log; - } } diff -r 3653fb50fb22 -r bd82c20a6da0 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/NodeEditor.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/NodeEditor.java Sat Sep 06 10:35:19 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/NodeEditor.java Sat Sep 06 15:22:46 2014 +0900 @@ -9,6 +9,5 @@ public interface NodeEditor { - public Either edit(TreeNode _e); - public OperationLog getLog(); + public Either edit(LoggingNode _e); } \ No newline at end of file diff -r 3653fb50fb22 -r bd82c20a6da0 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/PutAttribute.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/PutAttribute.java Sat Sep 06 10:35:19 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/PutAttribute.java Sat Sep 06 15:22:46 2014 +0900 @@ -5,6 +5,7 @@ import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNodeAttributes; 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.DeleteChildAtOperation; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation; @@ -17,30 +18,21 @@ { private final String key; private final ByteBuffer value; - private OperationLog log; public PutAttribute(String _key,ByteBuffer _value) { key = _key; value = _value; - log = new DefaultOperationLog(); } @Override - public Either edit(TreeNode _e) + public Either edit(LoggingNode _e) { - NodeOperation putAttributeOperation = new PutAttributeOperation(key,value); - Either either = putAttributeOperation.invoke(_e); + Either either = _e.getAttributes().put(key,value); if(either.isA()){ // error return either; } - log = log.add(putAttributeOperation); return DefaultEither.newB(either.b()); } - - @Override - public OperationLog getLog() { - return log; - } }