
org.junit.gen5.console.options.JOptSimpleCommandLineOptionsParser Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of junit-console Show documentation
Show all versions of junit-console Show documentation
Module "junit-console" of JUnit 5.
The newest version!
/*
* Copyright 2015-2016 the original author or authors.
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
* accompanies this distribution and is available at
*
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.junit.gen5.console.options;
import static org.junit.gen5.commons.meta.API.Usage.Internal;
import java.io.IOException;
import java.io.Writer;
import java.util.LinkedHashSet;
import java.util.Map;
import joptsimple.BuiltinHelpFormatter;
import joptsimple.OptionDescriptor;
import joptsimple.OptionParser;
import joptsimple.OptionSet;
import org.junit.gen5.commons.JUnitException;
import org.junit.gen5.commons.meta.API;
@API(Internal)
public class JOptSimpleCommandLineOptionsParser implements CommandLineOptionsParser {
@Override
public CommandLineOptions parse(String... arguments) {
AvailableOptions availableOptions = getAvailableOptions();
OptionParser parser = availableOptions.getParser();
OptionSet detectedOptions = parser.parse(arguments);
return availableOptions.toCommandLineOptions(detectedOptions);
}
@Override
public void printHelp(Writer writer) {
OptionParser optionParser = getAvailableOptions().getParser();
optionParser.formatHelpWith(new OrderPreservingHelpFormatter());
try {
optionParser.printHelpOn(writer);
}
catch (IOException e) {
throw new JUnitException("Error printing help", e);
}
}
private AvailableOptions getAvailableOptions() {
return new AvailableOptions();
}
private static final class OrderPreservingHelpFormatter extends BuiltinHelpFormatter {
private OrderPreservingHelpFormatter() {
super(100, 4);
}
@Override
public String format(Map options) {
addRows(new LinkedHashSet<>(options.values()));
return formattedHelpOutput();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy