diff src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTreeEditor.java @ 31:418088ca2b30

added Generics parameters to EditableNode framework
author Shoshi TAMAKI
date Wed, 16 Jan 2013 03:23:57 +0900
parents 53090dc21231
children dd7776c8b6d5
line wrap: on
line diff
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTreeEditor.java	Tue Jan 15 23:39:44 2013 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/impl/DefaultTreeEditor.java	Wed Jan 16 03:23:57 2013 +0900
@@ -74,7 +74,7 @@
 	}
 
 	@Override
-	public Either<Error,TreeEditor> edit(NodePath _path, NodeEditor _editor)
+	public Either<Error,TreeEditor> edit(NodePath _path,NodeEditor _editor)
 	{
 		DefaultTree tree = tip.getTree();
 		DefaultNode root = tree.getRoot();
@@ -103,7 +103,12 @@
 		
 		// target
 		Direction<DefaultNode> targetDirection = path.head();
-		LoggingNode loggingNode = (LoggingNode)_editor.edit(new LoggingNode(targetDirection.getTarget()));
+		Either<Error,LoggingNode<DefaultNode>> either = _editor.edit(new LoggingNode<DefaultNode>(targetDirection.getTarget()));
+		if(either.isA()){
+			return DefaultEither.newA(either.a());
+		}
+		
+		LoggingNode<DefaultNode> loggingNode = either.b();
 		Logger logger = loggingNode.getLogger();
 		DefaultNode newNode = (DefaultNode)loggingNode.getWrapper();
 		
@@ -113,12 +118,12 @@
 		for(Direction<DefaultNode> parentDirection : path.tail()){
 			DefaultNode parent = parentDirection.getTarget();
 			DefaultChildren chs = parent.getChildren();
-			Either<Error,DefaultNode> either = chs.replaceNode(child,pos);
-			if(either.isA()){
-				return DefaultEither.newA(either.a());
+			Either<Error,DefaultNode> ret = chs.replaceNode(child,pos);
+			if(ret.isA()){
+				return DefaultEither.newA(ret.a());
 			}
 			
-			DefaultNode newParent = either.b();
+			DefaultNode newParent = ret.b();
 			child = newParent;
 			pos = parentDirection.getPosition();
 		}
@@ -131,7 +136,7 @@
 	protected Either<Error,TreeEditor> newEditor(Logger _logger,DefaultNode _newRoot)
 	{
 		List<Logger> logs = List.list(_logger);
-		TreeEditor newEditor = new DefaultModifiedTreeEditor(logs,
+		TreeEditor newEditor = null;
 		return DefaultEither.newB(_theB);
 	}
 }
\ No newline at end of file