package tw.com.ant;
import java.io.File;
import java.io.IOException;
import java.util.Collection;
import org.apache.commons.cli.MissingArgumentException;
import org.apache.tools.ant.BuildException;
import tw.com.FacadeFactory;
import tw.com.commandline.CommandLineAction;
import tw.com.commandline.CommandLineException;
import tw.com.commandline.actions.RollbackLegacyAction;
import tw.com.entity.ProjectAndEnv;
import tw.com.exceptions.CfnAssistException;
import com.amazonaws.services.cloudformation.model.Parameter;
public class RollbackElement implements ActionElement {
private File target;
public RollbackElement() {
}
public void setTarget(File target) {
this.target = target;
}
public void execute(FacadeFactory factory, ProjectAndEnv projectAndEnv, Collection<Parameter> cfnParams, Collection<Parameter> artifacts)
throws IOException, InterruptedException, CfnAssistException, CommandLineException, MissingArgumentException {
String absolutePath = target.getAbsolutePath();
if (!target.isDirectory()) {
throw new BuildException("Rollback only meaningful for a directory");
}
CommandLineAction actionToInvoke = new RollbackLegacyAction();
actionToInvoke.validate(projectAndEnv, cfnParams, artifacts, absolutePath);
actionToInvoke.invoke(factory, projectAndEnv, cfnParams, artifacts, absolutePath);
}
}