All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opencds.cqf.tooling.utilities.ArgUtils Maven / Gradle / Ivy

package org.opencds.cqf.tooling.utilities;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import joptsimple.OptionParser;
import joptsimple.OptionSet;

public class ArgUtils {
    public static final String[] HELP_OPTIONS = {"h", "help", "?"};

    public static OptionSet parse(String[] args, OptionParser parser) {
        OptionSet options = parser.parse(args);
        if (options.has(HELP_OPTIONS[0])) {
            try {
                parser.printHelpOn(System.out);
            }
            catch (Exception e) {
            }

            System.exit(0);
        }

        return options;
    }

    public static void ensure(String option, OptionSet options) {
        if (!options.has(option)) {
            throw new IllegalArgumentException(String.format("%s is a required option.", option));
        }
    }

    public static String defaultValue(OptionSet optionSet, String option, String value) {
        return optionSet.valueOf(option) == null ? value : (String)optionSet.valueOf(option); 
    }

    public static List getOptionValues(OptionSet options, String name) {
        List argValues = options.valuesOf(name);
        List stringArgValues = new ArrayList<>();
        for (Object argValue : argValues) {
          stringArgValues.add(argValue.toString());
        }
        if (stringArgValues.isEmpty()) {
          return (options.has(name) ? Collections.emptyList() : null);
        }
        return Collections.unmodifiableList(stringArgValues);
      }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy