Class CommandLine

  • All Implemented Interfaces:
    java.io.Serializable

    public class CommandLine
    extends java.lang.Object
    implements java.io.Serializable
    Represents list of arguments parsed against a Options descriptor.

    It allows querying of a boolean hasOption(String opt), in addition to retrieving the getOptionValue(String opt) for options requiring arguments.

    Additionally, any left-over or unrecognized arguments, are available for further processing.

    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  CommandLine.Builder
      A nested builder class to create CommandLine instance using descriptive methods.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected CommandLine()
      Creates a command line.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      protected void addArg​(java.lang.String arg)
      Adds left-over unrecognized option/argument.
      protected void addOption​(Option opt)
      Adds an option to the command line.
      static CommandLine.Builder builder()
      Creates a new builder.
      java.util.List<java.lang.String> getArgList()
      Gets any left-over non-recognized options and arguments
      java.lang.String[] getArgs()
      Gets any left-over non-recognized options and arguments
      java.lang.Object getOptionObject​(char opt)
      Deprecated.
      due to System.err message.
      java.lang.Object getOptionObject​(java.lang.String opt)
      Deprecated.
      due to System.err message.
      java.util.Properties getOptionProperties​(java.lang.String opt)
      Gets the map of values associated to the option.
      java.util.Properties getOptionProperties​(Option option)
      Gets the map of values associated to the option.
      Option[] getOptions()
      Gets an array of the processed Options.
      java.lang.String getOptionValue​(char opt)
      Gets the first argument, if any, of this option.
      java.lang.String getOptionValue​(char opt, java.lang.String defaultValue)
      Gets the argument, if any, of an option.
      java.lang.String getOptionValue​(char opt, java.util.function.Supplier<java.lang.String> defaultValue)
      Gets the argument, if any, of an option.
      java.lang.String getOptionValue​(java.lang.String opt)
      Gets the first argument, if any, of this option.
      java.lang.String getOptionValue​(java.lang.String opt, java.lang.String defaultValue)
      Gets the first argument, if any, of an option.
      java.lang.String getOptionValue​(java.lang.String opt, java.util.function.Supplier<java.lang.String> defaultValue)
      Gets the first argument, if any, of an option.
      java.lang.String getOptionValue​(Option option)
      Gets the first argument, if any, of this option.
      java.lang.String getOptionValue​(OptionGroup optionGroup)
      Gets the first argument, if any, of this option group.
      java.lang.String getOptionValue​(OptionGroup optionGroup, java.lang.String defaultValue)
      Gets the first argument, if any, of an option group.
      java.lang.String getOptionValue​(OptionGroup optionGroup, java.util.function.Supplier<java.lang.String> defaultValue)
      Gets the first argument, if any, of an option group.
      java.lang.String getOptionValue​(Option option, java.lang.String defaultValue)
      Gets the first argument, if any, of an option.
      java.lang.String getOptionValue​(Option option, java.util.function.Supplier<java.lang.String> defaultValue)
      Gets the first argument, if any, of an option.
      java.lang.String[] getOptionValues​(char opt)
      Gets the array of values, if any, of an option.
      java.lang.String[] getOptionValues​(java.lang.String opt)
      Gets the array of values, if any, of an option.
      java.lang.String[] getOptionValues​(Option option)
      Gets the array of values, if any, of an option.
      java.lang.String[] getOptionValues​(OptionGroup optionGroup)
      Gets the array of values, if any, of an option group.
      <T> T getParsedOptionValue​(char opt)
      Gets a version of this Option converted to a particular type.
      <T> T getParsedOptionValue​(char opt, java.util.function.Supplier<T> defaultValue)
      Gets a version of this Option converted to a particular type.
      <T> T getParsedOptionValue​(char opt, T defaultValue)
      Gets a version of this Option converted to a particular type.
      <T> T getParsedOptionValue​(java.lang.String opt)
      Gets a version of this Option converted to a particular type.
      <T> T getParsedOptionValue​(java.lang.String opt, java.util.function.Supplier<T> defaultValue)
      Gets a version of this Option converted to a particular type.
      <T> T getParsedOptionValue​(java.lang.String opt, T defaultValue)
      Gets a version of this Option converted to a particular type.
      <T> T getParsedOptionValue​(Option option)
      Gets a version of this Option converted to a particular type.
      <T> T getParsedOptionValue​(OptionGroup optionGroup)
      Gets a version of this OptionGroup converted to a particular type.
      <T> T getParsedOptionValue​(OptionGroup optionGroup, java.util.function.Supplier<T> defaultValue)
      Gets a version of this OptionGroup converted to a particular type.
      <T> T getParsedOptionValue​(OptionGroup optionGroup, T defaultValue)
      Gets a version of this OptionGroup converted to a particular type.
      <T> T getParsedOptionValue​(Option option, java.util.function.Supplier<T> defaultValue)
      Gets a version of this Option converted to a particular type.
      <T> T getParsedOptionValue​(Option option, T defaultValue)
      Gets a version of this Option converted to a particular type.
      boolean hasOption​(char opt)
      Tests to see if an option has been set.
      boolean hasOption​(java.lang.String opt)
      Tests to see if an option has been set.
      boolean hasOption​(Option opt)
      Tests to see if an option has been set.
      boolean hasOption​(OptionGroup optionGroup)
      Tests to see if an option has been set.
      java.util.Iterator<Option> iterator()
      Returns an iterator over the Option members of CommandLine.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • CommandLine

        protected CommandLine()
        Creates a command line.
    • Method Detail

      • addArg

        protected void addArg​(java.lang.String arg)
        Adds left-over unrecognized option/argument.
        Parameters:
        arg - the unrecognized option/argument.
      • addOption

        protected void addOption​(Option opt)
        Adds an option to the command line. The values of the option are stored.
        Parameters:
        opt - the processed option.
      • getArgList

        public java.util.List<java.lang.String> getArgList()
        Gets any left-over non-recognized options and arguments
        Returns:
        remaining items passed in but not parsed as a List.
      • getArgs

        public java.lang.String[] getArgs()
        Gets any left-over non-recognized options and arguments
        Returns:
        remaining items passed in but not parsed as an array.
      • getOptionObject

        @Deprecated
        public java.lang.Object getOptionObject​(char opt)
        Deprecated.
        due to System.err message. Instead use getParsedOptionValue(char)
        Gets the Object type of this Option.
        Parameters:
        opt - the name of the option.
        Returns:
        the type of opt.
      • getOptionObject

        @Deprecated
        public java.lang.Object getOptionObject​(java.lang.String opt)
        Deprecated.
        due to System.err message. Instead use getParsedOptionValue(String)
        Gets the Object type of this Option.
        Parameters:
        opt - the name of the option.
        Returns:
        the type of this Option.
      • getOptionProperties

        public java.util.Properties getOptionProperties​(Option option)
        Gets the map of values associated to the option. This is convenient for options specifying Java properties like -Dparam1=value1 -Dparam2=value2. All odd numbered values are property keys and even numbered values are property values. If there are an odd number of values the last value is assumed to be a boolean flag and the value is "true".
        Parameters:
        option - name of the option.
        Returns:
        The Properties mapped by the option, never null even if the option doesn't exists.
        Since:
        1.5.0
      • getOptionProperties

        public java.util.Properties getOptionProperties​(java.lang.String opt)
        Gets the map of values associated to the option. This is convenient for options specifying Java properties like -Dparam1=value1 -Dparam2=value2. The first argument of the option is the key, and the 2nd argument is the value. If the option has only one argument (-Dfoo) it is considered as a boolean flag and the value is "true".
        Parameters:
        opt - name of the option.
        Returns:
        The Properties mapped by the option, never null even if the option doesn't exists.
        Since:
        1.2
      • getOptionValue

        public java.lang.String getOptionValue​(char opt)
        Gets the first argument, if any, of this option.
        Parameters:
        opt - the character name of the option.
        Returns:
        Value of the argument if option is set, and has an argument, otherwise null.
      • getOptionValue

        public java.lang.String getOptionValue​(char opt,
                                               java.lang.String defaultValue)
        Gets the argument, if any, of an option.
        Parameters:
        opt - character name of the option
        defaultValue - is the default value to be returned if the option is not specified.
        Returns:
        Value of the argument if option is set, and has an argument, otherwise defaultValue.
      • getOptionValue

        public java.lang.String getOptionValue​(char opt,
                                               java.util.function.Supplier<java.lang.String> defaultValue)
        Gets the argument, if any, of an option.
        Parameters:
        opt - character name of the option
        defaultValue - is a supplier for the default value to be returned if the option is not specified.
        Returns:
        Value of the argument if option is set, and has an argument, otherwise defaultValue.
        Since:
        1.7.0
      • getOptionValue

        public java.lang.String getOptionValue​(Option option)
        Gets the first argument, if any, of this option.
        Parameters:
        option - the option.
        Returns:
        Value of the argument if option is set, and has an argument, otherwise null.
        Since:
        1.5.0
      • getOptionValue

        public java.lang.String getOptionValue​(Option option,
                                               java.lang.String defaultValue)
        Gets the first argument, if any, of an option.
        Parameters:
        option - the option.
        defaultValue - is the default value to be returned if the option is not specified.
        Returns:
        Value of the argument if option is set, and has an argument, otherwise defaultValue.
        Since:
        1.5.0
      • getOptionValue

        public java.lang.String getOptionValue​(Option option,
                                               java.util.function.Supplier<java.lang.String> defaultValue)
        Gets the first argument, if any, of an option.
        Parameters:
        option - the option.
        defaultValue - is a supplier for the default value to be returned if the option is not specified.
        Returns:
        Value of the argument if option is set, and has an argument, otherwise defaultValue.
        Since:
        1.7.0
      • getOptionValue

        public java.lang.String getOptionValue​(OptionGroup optionGroup)
        Gets the first argument, if any, of this option group.
        Parameters:
        optionGroup - the option group.
        Returns:
        Value of the argument if option group is selected, and has an argument, otherwise null.
        Since:
        1.9.0
      • getOptionValue

        public java.lang.String getOptionValue​(OptionGroup optionGroup,
                                               java.lang.String defaultValue)
        Gets the first argument, if any, of an option group.
        Parameters:
        optionGroup - the option group.
        defaultValue - is the default value to be returned if the option group is not selected.
        Returns:
        Value of the argument if option group is selected, and has an argument, otherwise defaultValue.
        Since:
        1.9.0
      • getOptionValue

        public java.lang.String getOptionValue​(OptionGroup optionGroup,
                                               java.util.function.Supplier<java.lang.String> defaultValue)
        Gets the first argument, if any, of an option group.
        Parameters:
        optionGroup - the option group..
        defaultValue - is a supplier for the default value to be returned if the option group is not selected.
        Returns:
        Value of the argument if option group is selected, and has an argument, otherwise defaultValue.
        Since:
        1.9.0
      • getOptionValue

        public java.lang.String getOptionValue​(java.lang.String opt)
        Gets the first argument, if any, of this option.
        Parameters:
        opt - the name of the option.
        Returns:
        Value of the argument if option is set, and has an argument, otherwise null.
      • getOptionValue

        public java.lang.String getOptionValue​(java.lang.String opt,
                                               java.lang.String defaultValue)
        Gets the first argument, if any, of an option.
        Parameters:
        opt - name of the option.
        defaultValue - is the default value to be returned if the option is not specified.
        Returns:
        Value of the argument if option is set, and has an argument, otherwise defaultValue.
      • getOptionValue

        public java.lang.String getOptionValue​(java.lang.String opt,
                                               java.util.function.Supplier<java.lang.String> defaultValue)
        Gets the first argument, if any, of an option.
        Parameters:
        opt - name of the option.
        defaultValue - is a supplier for the default value to be returned if the option is not specified.
        Returns:
        Value of the argument if option is set, and has an argument, otherwise defaultValue.
        Since:
        1.7.0
      • getOptionValues

        public java.lang.String[] getOptionValues​(char opt)
        Gets the array of values, if any, of an option.
        Parameters:
        opt - character name of the option.
        Returns:
        Values of the argument if option is set, and has an argument, otherwise null.
      • getOptionValues

        public java.lang.String[] getOptionValues​(Option option)
        Gets the array of values, if any, of an option.
        Parameters:
        option - the option.
        Returns:
        Values of the argument if option is set, and has an argument, otherwise null.
        Since:
        1.5.0
      • getOptionValues

        public java.lang.String[] getOptionValues​(OptionGroup optionGroup)
        Gets the array of values, if any, of an option group.
        Parameters:
        optionGroup - the option group.
        Returns:
        Values of the argument if option group is selected, and has an argument, otherwise null.
        Since:
        1.9.0
      • getOptionValues

        public java.lang.String[] getOptionValues​(java.lang.String opt)
        Gets the array of values, if any, of an option.
        Parameters:
        opt - string name of the option.
        Returns:
        Values of the argument if option is set, and has an argument, otherwise null.
      • getParsedOptionValue

        public <T> T getParsedOptionValue​(char opt)
                                   throws ParseException
        Gets a version of this Option converted to a particular type.
        Type Parameters:
        T - The return type for the method.
        Parameters:
        opt - the name of the option.
        Returns:
        the value parsed into a particular object.
        Throws:
        ParseException - if there are problems turning the option value into the desired type
        Since:
        1.5.0
        See Also:
        PatternOptionBuilder
      • getParsedOptionValue

        public <T> T getParsedOptionValue​(char opt,
                                          java.util.function.Supplier<T> defaultValue)
                                   throws ParseException
        Gets a version of this Option converted to a particular type.
        Type Parameters:
        T - The return type for the method.
        Parameters:
        opt - the name of the option.
        defaultValue - the default value to return if opt is not set.
        Returns:
        the value parsed into a particular object.
        Throws:
        ParseException - if there are problems turning the option value into the desired type
        Since:
        1.7.0
        See Also:
        PatternOptionBuilder
      • getParsedOptionValue

        public <T> T getParsedOptionValue​(char opt,
                                          T defaultValue)
                                   throws ParseException
        Gets a version of this Option converted to a particular type.
        Type Parameters:
        T - The return type for the method.
        Parameters:
        opt - the name of the option.
        defaultValue - the default value to return if opt is not set.
        Returns:
        the value parsed into a particular object.
        Throws:
        ParseException - if there are problems turning the option value into the desired type
        Since:
        1.7.0
        See Also:
        PatternOptionBuilder
      • getParsedOptionValue

        public <T> T getParsedOptionValue​(Option option)
                                   throws ParseException
        Gets a version of this Option converted to a particular type.
        Type Parameters:
        T - The return type for the method.
        Parameters:
        option - the option.
        Returns:
        the value parsed into a particular object.
        Throws:
        ParseException - if there are problems turning the option value into the desired type
        Since:
        1.5.0
        See Also:
        PatternOptionBuilder
      • getParsedOptionValue

        public <T> T getParsedOptionValue​(Option option,
                                          java.util.function.Supplier<T> defaultValue)
                                   throws ParseException
        Gets a version of this Option converted to a particular type.
        Type Parameters:
        T - The return type for the method.
        Parameters:
        option - the option.
        defaultValue - the default value to return if opt is not set.
        Returns:
        the value parsed into a particular object.
        Throws:
        ParseException - if there are problems turning the option value into the desired type
        Since:
        1.7.0
        See Also:
        PatternOptionBuilder
      • getParsedOptionValue

        public <T> T getParsedOptionValue​(Option option,
                                          T defaultValue)
                                   throws ParseException
        Gets a version of this Option converted to a particular type.
        Type Parameters:
        T - The return type for the method.
        Parameters:
        option - the option.
        defaultValue - the default value to return if opt is not set.
        Returns:
        the value parsed into a particular object.
        Throws:
        ParseException - if there are problems turning the option value into the desired type
        Since:
        1.7.0
        See Also:
        PatternOptionBuilder
      • getParsedOptionValue

        public <T> T getParsedOptionValue​(OptionGroup optionGroup)
                                   throws ParseException
        Gets a version of this OptionGroup converted to a particular type.
        Type Parameters:
        T - The return type for the method.
        Parameters:
        optionGroup - the option group.
        Returns:
        the value parsed into a particular object.
        Throws:
        ParseException - if there are problems turning the selected option value into the desired type
        Since:
        1.9.0
        See Also:
        PatternOptionBuilder
      • getParsedOptionValue

        public <T> T getParsedOptionValue​(OptionGroup optionGroup,
                                          java.util.function.Supplier<T> defaultValue)
                                   throws ParseException
        Gets a version of this OptionGroup converted to a particular type.
        Type Parameters:
        T - The return type for the method.
        Parameters:
        optionGroup - the option group.
        defaultValue - the default value to return if opt is not set.
        Returns:
        the value parsed into a particular object.
        Throws:
        ParseException - if there are problems turning the selected option value into the desired type
        Since:
        1.9.0
        See Also:
        PatternOptionBuilder
      • getParsedOptionValue

        public <T> T getParsedOptionValue​(OptionGroup optionGroup,
                                          T defaultValue)
                                   throws ParseException
        Gets a version of this OptionGroup converted to a particular type.
        Type Parameters:
        T - The return type for the method.
        Parameters:
        optionGroup - the option group.
        defaultValue - the default value to return if an option is not selected.
        Returns:
        the value parsed into a particular object.
        Throws:
        ParseException - if there are problems turning the option value into the desired type
        Since:
        1.9.0
        See Also:
        PatternOptionBuilder
      • getParsedOptionValue

        public <T> T getParsedOptionValue​(java.lang.String opt)
                                   throws ParseException
        Gets a version of this Option converted to a particular type.
        Type Parameters:
        T - The return type for the method.
        Parameters:
        opt - the name of the option.
        Returns:
        the value parsed into a particular object.
        Throws:
        ParseException - if there are problems turning the option value into the desired type
        Since:
        1.2
        See Also:
        PatternOptionBuilder
      • getParsedOptionValue

        public <T> T getParsedOptionValue​(java.lang.String opt,
                                          java.util.function.Supplier<T> defaultValue)
                                   throws ParseException
        Gets a version of this Option converted to a particular type.
        Type Parameters:
        T - The return type for the method.
        Parameters:
        opt - the name of the option.
        defaultValue - the default value to return if opt is not set.
        Returns:
        the value parsed into a particular object.
        Throws:
        ParseException - if there are problems turning the option value into the desired type
        Since:
        1.7.0
        See Also:
        PatternOptionBuilder
      • getParsedOptionValue

        public <T> T getParsedOptionValue​(java.lang.String opt,
                                          T defaultValue)
                                   throws ParseException
        Gets a version of this Option converted to a particular type.
        Type Parameters:
        T - The return type for the method.
        Parameters:
        opt - the name of the option.
        defaultValue - the default value to return if opt is not set.
        Returns:
        the value parsed into a particular object.
        Throws:
        ParseException - if there are problems turning the option value into the desired type
        Since:
        1.7.0
        See Also:
        PatternOptionBuilder
      • hasOption

        public boolean hasOption​(char opt)
        Tests to see if an option has been set.
        Parameters:
        opt - character name of the option.
        Returns:
        true if set, false if not.
      • hasOption

        public boolean hasOption​(Option opt)
        Tests to see if an option has been set.
        Parameters:
        opt - the option to check.
        Returns:
        true if set, false if not.
        Since:
        1.5.0
      • hasOption

        public boolean hasOption​(OptionGroup optionGroup)
        Tests to see if an option has been set.
        Parameters:
        optionGroup - the option group to check.
        Returns:
        true if set, false if not.
        Since:
        1.9.0
      • hasOption

        public boolean hasOption​(java.lang.String opt)
        Tests to see if an option has been set.
        Parameters:
        opt - Short name of the option.
        Returns:
        true if set, false if not.
      • iterator

        public java.util.Iterator<Optioniterator()
        Returns an iterator over the Option members of CommandLine.
        Returns:
        an Iterator over the processed Option members of this CommandLine.