changeset 96:bd82c20a6da0

LoggingNode repair
author one
date Sat, 06 Sep 2014 15:22:46 +0900
parents 3653fb50fb22
children a1e20a440ddd
files src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTreeEditor.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/AppendChildAtOperation.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/DeleteAttributeOperation.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/DeleteChildAtOperation.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/operations/PutAttributeOperation.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/AppendChildAt.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteAttribute.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteChildAt.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/NodeEditor.java src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/PutAttribute.java
diffstat 10 files changed, 24 insertions(+), 50 deletions(-) [+]
line wrap: on
line diff
--- 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<TreeNode> targetDirection = path.head();
 		TreeNode target = targetDirection.getTarget();
 		//EditableNodeWrapper<T> wrapper = new EditableNodeWrapper<T>(target);
-		Either<Error,TreeNode> either = _editor.edit(target);
+		LoggingNode Logging = new LoggingNode(target);
+		Either<Error,LoggingNode> 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<TreeNode> 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
--- 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;
 
--- 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<Error, TreeNode> invoke(TreeNode _target)
 	{
-		DeleteAttribute deleteAttribute = new DeleteAttribute(key);
-		return deleteAttribute.edit(_target);
+		return _target.getAttributes().delete(key);
 	}
 	
 	@Override
--- 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<Error, TreeNode> invoke(TreeNode _target) 
 	{
-		DeleteChildAt deleteChildAt = new DeleteChildAt(pos);
-		return deleteChildAt.edit(_target);
+		return _target.getChildren().deleteChildAt(pos);
 	}
 
 	@Override
--- 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;
--- 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<Error, TreeNode> edit(TreeNode _e) 
+	public Either<Error, LoggingNode> edit(LoggingNode _e) 
 	{
-		NodeOperation addNewChildOperation = new AppendChildAtOperation(pos);
-		Either<Error,TreeNode> either = addNewChildOperation.invoke(_e);
+		Either<Error,LoggingNode> 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;
-	}
-
 }
--- 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<Error,TreeNode> edit(TreeNode _e)
+	public Either<Error,LoggingNode> edit(LoggingNode _e)
 	{
-		DeleteAttributeOperation deleteAttributeOperation = new DeleteAttributeOperation(key);
-		Either<Error,TreeNode> either = deleteAttributeOperation.invoke(_e);
+		Either<Error,LoggingNode> 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;
-	}
 }
--- 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<Error,TreeNode> edit(TreeNode _e)
+	public Either<Error,LoggingNode> edit(LoggingNode _e)
 	{
-		NodeOperation deleteChildOperation = new DeleteChildAtOperation(pos);
-		Either<Error,TreeNode> either = deleteChildOperation.invoke(_e);
+		Either<Error,LoggingNode> 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;
-	}
 }
--- 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<Error,TreeNode> edit(TreeNode _e);
-	public OperationLog getLog();
+	public Either<Error,LoggingNode> edit(LoggingNode _e);
 }
\ No newline at end of file
--- 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<Error,TreeNode> edit(TreeNode _e)
+	public Either<Error,LoggingNode> edit(LoggingNode _e)
 	{
-		NodeOperation putAttributeOperation = new PutAttributeOperation(key,value);
-		Either<Error,TreeNode> either = putAttributeOperation.invoke(_e);
+		Either<Error,LoggingNode> 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;
-	}
 }