Mercurial > hg > Members > tatsuki > bench > jungle-core
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