package com.formulasearchengine.mathosphere.mlp.cli;
import com.beust.jcommander.JCommander;
import com.beust.jcommander.Parameters;
import com.formulasearchengine.mathosphere.mathpd.cli.FlinkPdCommandConfig;
import java.io.Serializable;
public class CliParams implements Serializable {
public static final String COUNT = "count";
public static final String LIST = "list";
public static final String EXTRACT = "extract";
public static final String MLP = "mlp";
public static final String EVAL = "eval";
public static final String ML = "ml";
public static final String CLASSIFY = "classify";
public static final String PD = "pd";
public static final String HELP = "help";
private EvalCommandConfig evalCommand;
private JCommander jc;
private CountCommandConfig countCommand;
private ListCommandConfig listCommand;
private MlpCommandConfig extractCommand;
private MachineLearningDefinienExtractionConfig mlCommand;
private FlinkMlpCommandConfig mlpCommand;
private MachineLearningDefinienClassifierConfig classifyCommand;
private FlinkPdCommandConfig pdCommand;
private String command;
private CliParams() {
}
public static CliParams from(String[] args) {
JCommander jc = new JCommander();
CliParams params = new CliParams();
params.countCommand = new CountCommandConfig();
params.listCommand = new ListCommandConfig();
params.mlpCommand = new FlinkMlpCommandConfig();
params.extractCommand = new MlpCommandConfig();
params.mlCommand = new MachineLearningDefinienExtractionConfig();
params.classifyCommand = new MachineLearningDefinienClassifierConfig();
params.evalCommand = new EvalCommandConfig();
params.pdCommand = new FlinkPdCommandConfig();
jc.addCommand(COUNT, params.countCommand);
jc.addCommand(LIST, params.listCommand);
jc.addCommand(EXTRACT, params.extractCommand);
jc.addCommand(MLP, params.mlpCommand);
jc.addCommand(EVAL, params.evalCommand);
jc.addCommand(ML, params.mlCommand);
jc.addCommand(CLASSIFY, params.classifyCommand);
jc.addCommand(PD, params.pdCommand);
jc.addCommand(HELP, new HelpCommand());
jc.parse(args);
params.command = jc.getParsedCommand();
params.jc = jc;
return params;
}
public void printHelp() {
jc.usage();
}
public String getCommand() {
return command;
}
public CountCommandConfig getCount() {
return countCommand;
}
public ListCommandConfig getListCommandConfig() {
return listCommand;
}
public FlinkMlpCommandConfig getMlpCommandConfig() {
return mlpCommand;
}
public MlpCommandConfig getExtractCommandConfig() {
return extractCommand;
}
public EvalCommandConfig getEvalCommandConfig() {
return evalCommand;
}
public MachineLearningDefinienExtractionConfig getMachineLearningCommand() {
return mlCommand;
}
public MachineLearningDefinienClassifierConfig getClassifyCommand() {
return classifyCommand;
}
public FlinkPdCommandConfig getPdCommandConfig() {
return pdCommand;
}
@Parameters(commandDescription = "Prints this help message")
static private class HelpCommand {
}
}