comparison src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteChildAt.java @ 96:bd82c20a6da0

LoggingNode repair
author one
date Sat, 06 Sep 2014 15:22:46 +0900
parents ef68358ed0e8
children bed3afd5c2e2
comparison
equal deleted inserted replaced
95:3653fb50fb22 96:bd82c20a6da0
1 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer; 1 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer;
2 2
3 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; 3 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
4 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultOperationLog; 4 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultOperationLog;
5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.LoggingNode;
5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.OperationLog; 6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.OperationLog;
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DeleteChildAtOperation; 7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DeleteChildAtOperation;
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation; 8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation;
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither; 9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither;
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; 10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; 11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
11 12
12 public class DeleteChildAt implements NodeEditor 13 public class DeleteChildAt implements NodeEditor
13 { 14 {
14 private final int pos; 15 private final int pos;
15 private OperationLog log;
16 public DeleteChildAt(int _pos) 16 public DeleteChildAt(int _pos)
17 { 17 {
18 pos = _pos; 18 pos = _pos;
19 log = new DefaultOperationLog();
20 } 19 }
21 20
22 @Override 21 @Override
23 public Either<Error,TreeNode> edit(TreeNode _e) 22 public Either<Error,LoggingNode> edit(LoggingNode _e)
24 { 23 {
25 NodeOperation deleteChildOperation = new DeleteChildAtOperation(pos); 24 Either<Error,LoggingNode> either = _e.getChildren().deleteChildAt(pos);
26 Either<Error,TreeNode> either = deleteChildOperation.invoke(_e);
27 if(either.isA()){ 25 if(either.isA()){
28 // error 26 // error
29 return either; 27 return either;
30 } 28 }
31 log = log.add(deleteChildOperation);
32 return DefaultEither.newB(either.b()); 29 return DefaultEither.newB(either.b());
33 } 30 }
34
35 @Override
36 public OperationLog getLog() {
37 return log;
38 }
39 } 31 }