view src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/store/trasnformer/DeleteAttribute.java @ 93:ef68358ed0e8

Merge with 7058e85875a59d1951cc5eeaa049e4788ea96deb
author one
date Sat, 06 Sep 2014 10:18:47 +0900
parents 14ce7a0dedca c5095a354dfc
children bd82c20a6da0
line wrap: on
line source

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

import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultOperationLog;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.OperationLog;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DeleteAttributeOperation;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultEither;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;

public class DeleteAttribute implements NodeEditor
{
	private final String key;
	private OperationLog log;
	public DeleteAttribute(String _key)
	{
		key = _key;
		log = new DefaultOperationLog();
	}

	@Override
	public Either<Error,TreeNode> edit(TreeNode _e)
	{
		DeleteAttributeOperation deleteAttributeOperation = new DeleteAttributeOperation(key);
		Either<Error,TreeNode> either = deleteAttributeOperation.invoke(_e);
		if(either.isA()){
			// error
			return either;
		}
		log = log.add(deleteAttributeOperation);
		return DefaultEither.newB(either.b());
	}

	@Override
	public OperationLog getLog() {
		return log;
	}
}