package com.eactive.eai.agent.cron;

import com.eactive.eai.agent.command.Command;
import com.eactive.eai.agent.command.CommandException;
import com.eactive.eai.common.scheduler.SchedulerManager;
import com.eactive.eai.common.util.Logger;

public class UpdateCronCommand extends Command{
	private static final long serialVersionUID = 1L;
	
	public UpdateCronCommand() {
		super();
	}
	
	public UpdateCronCommand(String name) {
		super(name);
	}
	
	public Object execute() throws CommandException
	{
		Logger logger = Logger.getLogger(Logger.LOGGER_SCHEDULER);
		logger.info(this.name + " Agent 가 호출되었습니다.");
		
		if ( args == null || !(args instanceof String)) {
			String msg = makeException("BECEAICAG001", null);
		}
		
		try {
			SchedulerManager schmng = SchedulerManager.getInstance();
			
			schmng.stop();
			schmng.start();
			
			logger.info(this.name + " Agent 가 성공적으로 완료되었습니다.");
			return "success";
		}catch(Exception e)
		{
			String msg = makeException("BECEAICAG002", e);
			logger.error(msg, e);
			throw new CommandException(msg);
		}
	}
}
