Class ArgumentParserImpl

  • All Implemented Interfaces:
    ArgumentParser

    public final class ArgumentParserImpl
    extends java.lang.Object
    implements ArgumentParser
    The application code must not use this class directly.
    • Constructor Detail

      • ArgumentParserImpl

        public ArgumentParserImpl​(java.lang.String prog)
      • ArgumentParserImpl

        public ArgumentParserImpl​(java.lang.String prog,
                                  boolean addHelp)
      • ArgumentParserImpl

        public ArgumentParserImpl​(java.lang.String prog,
                                  boolean addHelp,
                                  java.lang.String prefixChars)
      • ArgumentParserImpl

        public ArgumentParserImpl​(java.lang.String prog,
                                  boolean addHelp,
                                  java.lang.String prefixChars,
                                  java.lang.String fromFilePrefix)
      • ArgumentParserImpl

        public ArgumentParserImpl​(java.lang.String prog,
                                  boolean addHelp,
                                  java.lang.String prefixChars,
                                  java.lang.String fromFilePrefix,
                                  TextWidthCounter textWidthCounter)
      • ArgumentParserImpl

        public ArgumentParserImpl​(java.lang.String prog,
                                  boolean addHelp,
                                  java.lang.String prefixChars,
                                  java.lang.String fromFilePrefix,
                                  TextWidthCounter textWidthCounter,
                                  java.lang.String command,
                                  ArgumentParserImpl mainParser)
    • Method Detail

      • addArgument

        public ArgumentImpl addArgument​(java.lang.String... nameOrFlags)
        Description copied from interface: ArgumentParser

        Creates new Argument object and adds to this parser and returns the object.

        The nameOrFlags is either a single name of positional argument or a list of option strings for optional argument, e.g. foo or -f, --foo.

        Specified by:
        addArgument in interface ArgumentParser
        Parameters:
        nameOrFlags - A name or a list of option strings of new Argument.
        Returns:
        Argument object.
      • addArgumentGroup

        public ArgumentGroup addArgumentGroup​(java.lang.String title)
        Description copied from interface: ArgumentParser

        Creates new ArgumentGroup object and adds to this parser and returns the object.

        The title is printed in help message as a title of this group. ArgumentGroup provides a way to conceptually group up command line arguments.

        Specified by:
        addArgumentGroup in interface ArgumentParser
        Parameters:
        title - The title printed in help message.
        Returns:
        ArgumentGroup object.
      • addMutuallyExclusiveGroup

        public MutuallyExclusiveGroup addMutuallyExclusiveGroup​(java.lang.String title)
        Description copied from interface: ArgumentParser

        Creates new mutually exclusive group, MutuallyExclusiveGroup object, and adds to this parser and returns the object.

        The arguments added to this group are mutually exclusive; if more than one argument belong to the group are specified, an error will be reported. The title is printed in help message as a title of this group.

        Specified by:
        addMutuallyExclusiveGroup in interface ArgumentParser
        Parameters:
        title - The title printed in help message.
        Returns:
        The MutuallyExclusiveGroup object.
      • usage

        public ArgumentParserImpl usage​(java.lang.String usage)
        Description copied from interface: ArgumentParser

        Sets the text to display as usage line. By default, the usage line is calculated from the arguments this object contains.

        If the given usage contains ${prog} string, it will be replaced with the program name given in ArgumentParsers.newArgumentParser(String).

        Specified by:
        usage in interface ArgumentParser
        Parameters:
        usage - usage text
        Returns:
        this
      • description

        public ArgumentParserImpl description​(java.lang.String description)
        Set text to display before the argument help.
        Specified by:
        description in interface ArgumentParser
        Parameters:
        description - text to display before the argument help
        Returns:
        this
      • epilog

        public ArgumentParserImpl epilog​(java.lang.String epilog)
        Description copied from interface: ArgumentParser
        Sets the text to display after the argument help.
        Specified by:
        epilog in interface ArgumentParser
        Parameters:
        epilog - The text to display after the argument help.
        Returns:
        this
      • defaultHelp

        public ArgumentParserImpl defaultHelp​(boolean defaultHelp)
        Description copied from interface: ArgumentParser

        If defaultHelp is true, the default values of arguments are printed in help message.

        By default, the default values are not printed in help message.

        Specified by:
        defaultHelp in interface ArgumentParser
        Parameters:
        defaultHelp - Switch to display the default value in help message.
        Returns:
        this
      • isDefaultHelp

        public boolean isDefaultHelp()
      • printHelp

        public void printHelp​(java.io.PrintWriter writer)
        Description copied from interface: ArgumentParser
        Prints help message in writer.
        Specified by:
        printHelp in interface ArgumentParser
        Parameters:
        writer - Writer to print message.
      • formatHelp

        public java.lang.String formatHelp()
        Description copied from interface: ArgumentParser
        Returns help message.
        Specified by:
        formatHelp in interface ArgumentParser
        Returns:
        The help message.
      • printUsage

        public void printUsage()
        Description copied from interface: ArgumentParser
        Print a brief description of how the program should be invoked on the command line in stdout.
        Specified by:
        printUsage in interface ArgumentParser
      • printUsage

        public void printUsage​(java.io.PrintWriter writer)
        Description copied from interface: ArgumentParser
        Print a brief description of how the program should be invoked on the command line in writer.
        Specified by:
        printUsage in interface ArgumentParser
        Parameters:
        writer - Writer to print message.
      • formatUsage

        public java.lang.String formatUsage()
        Description copied from interface: ArgumentParser
        Returns a brief description of how the program should be invoked on the command line.
        Specified by:
        formatUsage in interface ArgumentParser
        Returns:
        Usage text.
      • setDefault

        public ArgumentParserImpl setDefault​(java.lang.String dest,
                                             java.lang.Object value)
        Description copied from interface: ArgumentParser

        Sets parser-level default value of attribute dest.

        The parser-level defaults always override argument-level defaults.

        Specified by:
        setDefault in interface ArgumentParser
        Parameters:
        dest - The attribute name.
        value - The default value.
        Returns:
        this
      • setDefaults

        public ArgumentParserImpl setDefaults​(java.util.Map<java.lang.String,​java.lang.Object> attrs)
        Description copied from interface: ArgumentParser

        Sets parser-level default values from attrs.

        All key-value pair in attrs are registered to parser-level defaults. The parser-level defaults always override argument-level defaults.

        Specified by:
        setDefaults in interface ArgumentParser
        Parameters:
        attrs - The parser-level default values to add.
        Returns:
        this
      • getDefault

        public java.lang.Object getDefault​(java.lang.String dest)
        Returns default value set by ArgumentImpl.setDefault(Object) or setDefault(String, Object). Please note that while parser-level defaults always override argument-level defaults while parsing, this method examines argument-level defaults first. If no default value is found, then check parser-level defaults.
        Specified by:
        getDefault in interface ArgumentParser
        Parameters:
        dest - attribute name of default value to get.
        Returns:
        default value of given dest.
      • parseArgs

        public void parseArgs​(java.lang.String[] args,
                              java.lang.Object userData)
                       throws ArgumentParserException
        Description copied from interface: ArgumentParser

        Parses command line arguments.

        Unlike ArgumentParser.parseArgs(String[]), which returns Namespace object, this method stores attributes in given userData. The location to store value is designated using Arg annotations. User don't have to specify Arg for all attributes: the missing attributes are just skipped. This method performs simple List to generic array conversion. For example, user can assign List<Integer> attribute to generic array int[].

        Specified by:
        parseArgs in interface ArgumentParser
        Parameters:
        args - Command line arguments.
        userData - Object to store attributes.
        Throws:
        ArgumentParserException - If an error occurred.
      • getProg

        public java.lang.String getProg()
      • printVersion

        public void printVersion​(java.io.PrintWriter writer)
        Description copied from interface: ArgumentParser
        Prints version string in writer.
        Specified by:
        printVersion in interface ArgumentParser
        Parameters:
        writer - Writer to print version string.
      • formatVersion

        public java.lang.String formatVersion()
        Description copied from interface: ArgumentParser
        Returns version string.
        Specified by:
        formatVersion in interface ArgumentParser
        Returns:
        The version string.
      • getCommand

        public java.lang.String getCommand()
      • getPrefixChars

        public java.lang.String getPrefixChars()
      • getFromFilePrefixChars

        public java.lang.String getFromFilePrefixChars()
      • getMainParser

        public ArgumentParserImpl getMainParser()
        Returns main (parent) parser.
        Returns:
        The main (parent) parser. null if this object is a root parser.