Class DefaultParser

    • Field Detail

      • 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.
      • 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()
        Creates a new DefaultParser instance with partial matching enabled. By "partial matching" we mean that given the following code:
             
                  final Options options = new Options();
              options.addOption(new Option("d", "debug", false, "Turn on debug."));
              options.addOption(new Option("e", "extract", false, "Turn on extract."));
              options.addOption(new Option("o", "option", true, "Turn on option with argument."));
              
         
        with "partial matching" turned on, -de only matches the "debug" option. However, with "partial matching" disabled, -de would enable both debug as well as extract options.
      • DefaultParser

        public DefaultParser​(boolean allowPartialMatching)
        Create a new DefaultParser instance with the specified partial matching policy. By "partial matching" we mean that given the following code:
             
                  final Options options = new Options();
              options.addOption(new Option("d", "debug", false, "Turn on debug."));
              options.addOption(new Option("e", "extract", false, "Turn on extract."));
              options.addOption(new Option("o", "option", true, "Turn on option with argument."));
              
         
        with "partial matching" turned on, -de only matches the "debug" option. However, with "partial matching" disabled, -de would enable both debug as well as extract options.
        Parameters:
        allowPartialMatching - if partial matching of long options shall be enabled
    • 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.