package tw.com.ant; import java.io.File; import java.io.FileNotFoundException; 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.DeleteAction; import tw.com.entity.ProjectAndEnv; import tw.com.exceptions.CfnAssistException; import tw.com.exceptions.InvalidStackParameterException; import com.amazonaws.services.cloudformation.model.Parameter; public class DeleteElement implements ActionElement { private File target; public DeleteElement() { } 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.isFile()) { throw new BuildException("Cannot invoke delete for a directory, use Rollbackif you want to roll back all deltas in a folder"); } CommandLineAction actionToInvoke = new DeleteAction(); actionToInvoke.validate(projectAndEnv, cfnParams, artifacts, absolutePath); actionToInvoke.invoke(factory, projectAndEnv, cfnParams, artifacts, absolutePath); } }