package com.eactive.eai.agent.rule.ruleinfo;

import com.eactive.eai.agent.command.Command;
import com.eactive.eai.agent.command.CommandException;
import com.eactive.eai.batch.rule.ruleinfo.RuleInfoManager;
import com.eactive.eai.common.util.Logger;

public class RemoveRuleInfoCommand extends Command
{
    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;


	public RemoveRuleInfoCommand() {
        super("RemoveRuleInfoCommand");
    }


    public Object execute() throws CommandException
    {
        Logger logger = Logger.getLogger(Logger.LOGGER_DEFAULT);
        logger.info(this.name + " Agent 가 호출되었습니다.");

        if ( args == null || !(args instanceof String) ) {
            String msg = makeException("BECEAICAG001", null);
            logger.error(this.name+" "+ msg);
            throw new CommandException(msg);
        }

        try {
            String strRuleCode = (String)args;
            logger.info(this.name +": (Agent Argument) RuleCode=["+strRuleCode+"]");

            RuleInfoManager.getInstance().removeRuleCodeArray(strRuleCode);

			logger.info(this.name + " Agent 가 성공적으로 완료되었습니다.");
            return "success";

        } catch (Exception ex) {
            String msg = makeException("BECEAICAG002", ex);
            logger.error(msg, ex);
            throw new CommandException(msg);
        }
    }
}
