List of usage examples for org.apache.commons.cli2.builder ArgumentBuilder withConsumeRemaining
public final ArgumentBuilder withConsumeRemaining(final String newConsumeRemaining)
From source file:org.apache.mahout.classifier.mlp.RunMultilayerPerceptron.java
/** * Parse the arguments.// w w w . ja va2s. c o m * * @param args The input arguments. * @param parameters The parameters need to be filled. * @return true or false * @throws Exception */ private static boolean parseArgs(String[] args, Parameters parameters) throws Exception { // build the options log.info("Validate and parse arguments..."); DefaultOptionBuilder optionBuilder = new DefaultOptionBuilder(); GroupBuilder groupBuilder = new GroupBuilder(); ArgumentBuilder argumentBuilder = new ArgumentBuilder(); Option inputFileFormatOption = optionBuilder .withLongName("format").withShortName("f").withArgument(argumentBuilder.withName("file type") .withDefault("csv").withMinimum(1).withMaximum(1).create()) .withDescription("type of input file, currently support 'csv'").create(); List<Integer> columnRangeDefault = Lists.newArrayList(); columnRangeDefault.add(0); columnRangeDefault.add(Integer.MAX_VALUE); Option skipHeaderOption = optionBuilder.withLongName("skipHeader").withShortName("sh").withRequired(false) .withDescription("whether to skip the first row of the input file").create(); Option inputColumnRangeOption = optionBuilder.withLongName("columnRange").withShortName("cr") .withDescription("the column range of the input file, start from 0").withArgument(argumentBuilder .withName("range").withMinimum(2).withMaximum(2).withDefaults(columnRangeDefault).create()) .create(); Group inputFileTypeGroup = groupBuilder.withOption(skipHeaderOption).withOption(inputColumnRangeOption) .withOption(inputFileFormatOption).create(); Option inputOption = optionBuilder.withLongName("input").withShortName("i").withRequired(true) .withArgument(argumentBuilder.withName("file path").withMinimum(1).withMaximum(1).create()) .withDescription("the file path of unlabelled dataset").withChildren(inputFileTypeGroup).create(); Option modelOption = optionBuilder.withLongName("model").withShortName("mo").withRequired(true) .withArgument(argumentBuilder.withName("model file").withMinimum(1).withMaximum(1).create()) .withDescription("the file path of the model").create(); Option labelsOption = optionBuilder.withLongName("labels").withShortName("labels") .withArgument(argumentBuilder.withName("label-name").withMinimum(2).create()) .withDescription("an ordered list of label names").create(); Group labelsGroup = groupBuilder.withOption(labelsOption).create(); Option outputOption = optionBuilder.withLongName("output").withShortName("o").withRequired(true) .withArgument( argumentBuilder.withConsumeRemaining("file path").withMinimum(1).withMaximum(1).create()) .withDescription("the file path of labelled results").withChildren(labelsGroup).create(); // parse the input Parser parser = new Parser(); Group normalOption = groupBuilder.withOption(inputOption).withOption(modelOption).withOption(outputOption) .create(); parser.setGroup(normalOption); CommandLine commandLine = parser.parseAndHelp(args); if (commandLine == null) { return false; } // obtain the arguments parameters.inputFilePathStr = TrainMultilayerPerceptron.getString(commandLine, inputOption); parameters.inputFileFormat = TrainMultilayerPerceptron.getString(commandLine, inputFileFormatOption); parameters.skipHeader = commandLine.hasOption(skipHeaderOption); parameters.modelFilePathStr = TrainMultilayerPerceptron.getString(commandLine, modelOption); parameters.outputFilePathStr = TrainMultilayerPerceptron.getString(commandLine, outputOption); List<?> columnRange = commandLine.getValues(inputColumnRangeOption); parameters.columnStart = Integer.parseInt(columnRange.get(0).toString()); parameters.columnEnd = Integer.parseInt(columnRange.get(1).toString()); return true; }