view src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/store/trasnformer/MoveChild.java @ 329:2a0cb1f0ba4e

rename Error package
author kono
date Sat, 08 Jul 2017 21:05:55 +0900
parents 5da8a19dbe76
children
line wrap: on
line source

package jp.ac.u_ryukyu.ie.cr.jungle.store.trasnformer;


import jp.ac.u_ryukyu.ie.cr.jungle.transaction.node.TreeNode;
import jp.ac.u_ryukyu.ie.cr.jungle.store.logger.LoggingNode;
import jp.ac.u_ryukyu.ie.cr.jungle.store.logger.OperationLog;
import jp.ac.u_ryukyu.ie.cr.jungle.util.DefaultEither;
import jp.ac.u_ryukyu.ie.cr.jungle.util.Either;
import jp.ac.u_ryukyu.ie.cr.jungle.util.jungleError.Error;

public class MoveChild implements NodeEditor
{
	private final String move;
	private final int childNum;
	public MoveChild(String move, int childNum)
	{
		this.childNum = childNum;
		this.move = move;
	}

	public Either<Error,LoggingNode> _edit(LoggingNode logNode)
	{
		Either<Error,LoggingNode> either = logNode.getChildren().moveChild(move, childNum);
		if(either.isA()){
			// error
			return either;
		}
		return DefaultEither.newB(either.b());
	}

	@Override
	public Either<Error, LoggingNode> edit(TreeNode _e) {
		LoggingNode logNode = wrap(_e);
		return _edit(logNode);
	}

	public LoggingNode wrap(TreeNode node) {
		return new LoggingNode(node);
	}

	@Override
	public LoggingNode wrap(TreeNode newRoot, TreeNode editedNode, OperationLog operationLog) {
		return new LoggingNode(newRoot,editedNode, operationLog);
	}
}