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.CommandLineException;
import tw.com.commandline.actions.CreateDiagramAction;
import tw.com.entity.ProjectAndEnv;
import tw.com.exceptions.CfnAssistException;
import tw.com.exceptions.InvalidStackParameterException;
import com.amazonaws.services.cloudformation.model.Parameter;
public class DiagramsElement implements ActionElement {
private File target;
public DiagramsElement() {
}
public void setTarget(File target) {
this.target = target;
}
@Override
public void execute(FacadeFactory factory, ProjectAndEnv projectAndEnv,
Collection<Parameter> cfnParams, Collection<Parameter> artifacts)
throws IOException, InterruptedException,
CfnAssistException, CommandLineException, MissingArgumentException {
String path = target.getAbsolutePath();
if (!target.isDirectory()) {
throw new BuildException(
String.format("Target %s was not a directory, please provide a directory for the diagrams to be saved into", path));
}
CreateDiagramAction action = new CreateDiagramAction();
action.validate(projectAndEnv, cfnParams, artifacts, path);
action.invoke(factory, projectAndEnv, cfnParams, artifacts, path);
}
}