Class DefaultParser

  • All Implemented Interfaces:
    CommandLineParser

    public class DefaultParser
    extends Object
    implements CommandLineParser
    Default parser.
    Since:
    1.3
    Version:
    $Id: DefaultParser.java 1783175 2017-02-16 07:52:05Z britter $
    • Field Detail

      • cmd

        protected CommandLine cmd
        The command-line instance.
      • options

        protected Options options
        The current options.
      • stopAtNonOption

        protected boolean stopAtNonOption
        Flag indicating how unrecognized tokens are handled. true to stop the parsing and add the remaining tokens to the args list. false to throw an exception.
      • currentToken

        protected String currentToken
        The token currently processed.
      • currentOption

        protected Option currentOption
        The last option parsed.
      • skipParsing

        protected boolean skipParsing
        Flag indicating if tokens should no longer be analyzed and simply added as arguments of the command line.
      • expectedOpts

        protected List expectedOpts
        The required options and groups expected to be found when parsing the command line.
    • Constructor Detail

      • DefaultParser

        public DefaultParser()
    • Method Detail

      • parse

        public CommandLine parse​(Options options,
                                 String[] arguments)
                          throws ParseException
        Description copied from interface: CommandLineParser
        Parse the arguments according to the specified options.
        Specified by:
        parse in interface CommandLineParser
        Parameters:
        options - the specified Options
        arguments - the command line arguments
        Returns:
        the list of atomic option and value tokens
        Throws:
        ParseException - if there are any problems encountered while parsing the command line tokens.
      • parse

        public CommandLine parse​(Options options,
                                 String[] arguments,
                                 Properties properties)
                          throws ParseException
        Parse the arguments according to the specified options and properties.
        Parameters:
        options - the specified Options
        arguments - the command line arguments
        properties - command line option name-value pairs
        Returns:
        the list of atomic option and value tokens
        Throws:
        ParseException - if there are any problems encountered while parsing the command line tokens.
      • parse

        public CommandLine parse​(Options options,
                                 String[] arguments,
                                 boolean stopAtNonOption)
                          throws ParseException
        Description copied from interface: CommandLineParser
        Parse the arguments according to the specified options.
        Specified by:
        parse in interface CommandLineParser
        Parameters:
        options - the specified Options
        arguments - the command line arguments
        stopAtNonOption - if true an unrecognized argument stops the parsing and the remaining arguments are added to the CommandLines args list. If false an unrecognized argument triggers a ParseException.
        Returns:
        the list of atomic option and value tokens
        Throws:
        ParseException - if there are any problems encountered while parsing the command line tokens.
      • parse

        public CommandLine parse​(Options options,
                                 String[] arguments,
                                 Properties properties,
                                 boolean stopAtNonOption)
                          throws ParseException
        Parse the arguments according to the specified options and properties.
        Parameters:
        options - the specified Options
        arguments - the command line arguments
        properties - command line option name-value pairs
        stopAtNonOption - if true an unrecognized argument stops the parsing and the remaining arguments are added to the CommandLines args list. If false an unrecognized argument triggers a ParseException.
        Returns:
        the list of atomic option and value tokens
        Throws:
        ParseException - if there are any problems encountered while parsing the command line tokens.
      • handleConcatenatedOptions

        protected void handleConcatenatedOptions​(String token)
                                          throws ParseException
        Breaks token into its constituent parts using the following algorithm.
        • ignore the first character ("-")
        • for each remaining character check if an Option exists with that id.
        • if an Option does exist then add that character prepended with "-" to the list of processed tokens.
        • if the Option can have an argument value and there are remaining characters in the token then add the remaining characters as a token to the list of processed tokens.
        • if an Option does NOT exist AND stopAtNonOption IS set then add the special token "--" followed by the remaining characters and also the remaining tokens directly to the processed tokens list.
        • if an Option does NOT exist AND stopAtNonOption IS NOT set then add that character prepended with "-".
        Parameters:
        token - The current token to be burst at the first non-Option encountered.
        Throws:
        ParseException - if there are any problems encountered while parsing the command line token.