package tw.com.commandline; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Collection; import org.apache.commons.cli.MissingArgumentException; import org.apache.commons.cli.Option; import com.amazonaws.services.cloudformation.model.Parameter; import tw.com.FacadeFactory; import tw.com.entity.ProjectAndEnv; import tw.com.exceptions.CfnAssistException; import tw.com.exceptions.InvalidStackParameterException; public interface CommandLineAction { Option getOption(); String getArgName(); void invoke(FacadeFactory factory, ProjectAndEnv projectAndEnv, Collection<Parameter> cfnParams, Collection<Parameter> artifacts, String... argument) throws InvalidStackParameterException, FileNotFoundException, IOException, InterruptedException, CfnAssistException, MissingArgumentException; void validate(ProjectAndEnv projectAndEnv, Collection<Parameter> cfnParams, Collection<Parameter> artifacts, String... argumentForAction) throws CommandLineException; boolean usesProject(); boolean usesComment(); boolean usesSNS(); }