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

delete <T extends TreeNode>
author one
date Wed, 03 Sep 2014 23:44:23 +0900
parents 715a9fbf02fc
children 4c6b915302a8 14ce7a0dedca
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.Either;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;

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

	@Override
	public Either<Error,TreeNode> edit(TreeNode _e)
	{
		return _e.getAttributes().delete(key);
	}

	@Override
	public OperationLog getLog() {
		OperationLog op = new DefaultOperationLog();
		DeleteAttributeOperation deleteAttribute = new DeleteAttributeOperation(key);
		return op.add(deleteAttribute);
	}
}