comparison src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTreeNodeChildren.java @ 97:a1e20a440ddd

add BruteForceTraverser
author one
date Mon, 08 Sep 2014 17:03:08 +0900
parents 4c6b915302a8
children ef183969bf31
comparison
equal deleted inserted replaced
96:bd82c20a6da0 97:a1e20a440ddd
59 return DefaultEither.newA(NodeEditorError.INDEX_OUT_OF_BOUNDS); 59 return DefaultEither.newA(NodeEditorError.INDEX_OUT_OF_BOUNDS);
60 } 60 }
61 61
62 P2<List<TreeNode>,List<TreeNode>> split = children.splitAt(_pos); 62 P2<List<TreeNode>,List<TreeNode>> split = children.splitAt(_pos);
63 List<TreeNode> newChildren = split._1().snoc(new DefaultTreeNode()).append(split._2()); 63 List<TreeNode> newChildren = split._1().snoc(new DefaultTreeNode()).append(split._2());
64 OperationLog op = new DefaultOperationLog(); 64 TreeNode newNode = new DefaultTreeNode(newChildren,attrs);
65 TreeNode newNode = new DefaultTreeNode(newChildren,attrs,op.add(new AppendChildAtOperation(_pos)));
66
67 return DefaultEither.newB(newNode); 65 return DefaultEither.newB(newNode);
68 } 66 }
69 67
70 @Override 68 @Override
71 public Either<Error,TreeNode> deleteChildAt(int _pos) 69 public Either<Error,TreeNode> deleteChildAt(int _pos)
74 return DefaultEither.newA(NodeEditorError.INDEX_OUT_OF_BOUNDS); 72 return DefaultEither.newA(NodeEditorError.INDEX_OUT_OF_BOUNDS);
75 } 73 }
76 74
77 P2<List<TreeNode>,List<TreeNode>> split = children.splitAt(_pos); 75 P2<List<TreeNode>,List<TreeNode>> split = children.splitAt(_pos);
78 List<TreeNode> newChildren = split._1().append(split._2().tail()); 76 List<TreeNode> newChildren = split._1().append(split._2().tail());
79 77 TreeNode newNode = new DefaultTreeNode(newChildren,attrs);
80 OperationLog op = new DefaultOperationLog();
81 TreeNode newNode = new DefaultTreeNode(newChildren,attrs,op.add(new DeleteChildAtOperation(_pos)));
82 78
83 return DefaultEither.newB(newNode); 79 return DefaultEither.newB(newNode);
84 } 80 }
85 81
86 @Override 82 @Override