Class CommandLine

  • Direct Known Subclasses:
    FindBugsCommandLine

    public abstract class CommandLine
    extends java.lang.Object
    Helper class for parsing command line arguments.
    • Constructor Summary

      Constructors 
      Constructor Description
      CommandLine()  
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void addOption​(java.lang.String option, java.lang.String argumentDesc, java.lang.String description)
      Add an option requiring an argument.
      void addSwitch​(java.lang.String option, java.lang.String description)
      Add a command line switch.
      void addSwitchWithOptionalExtraPart​(java.lang.String option, java.lang.String optionExtraPartSynopsis, java.lang.String description)
      Add a command line switch that allows optional extra information to be specified as part of it.
      java.lang.String[] expandOptionFiles​(java.lang.String[] argv, boolean ignoreComments, boolean ignoreBlankLines)
      Expand option files in given command line.
      static java.util.ArrayList<java.lang.String> getAnalysisOptionProperties​(boolean ignoreComments, boolean ignoreBlankLines)  
      protected abstract void handleOption​(java.lang.String option, java.lang.String optionExtraPart)
      Callback method for handling an option.
      protected abstract void handleOptionWithArgument​(java.lang.String option, java.lang.String argument)
      Callback method for handling an option with an argument.
      void makeOptionUnlisted​(java.lang.String option)
      Don't list this option when printing Usage information
      int parse​(java.lang.String[] argv)
      Parse a command line.
      int parse​(java.lang.String[] argv, int minArgs, int maxArgs, java.lang.String usage)
      Parse switches/options, showing usage information if they can't be parsed, or if we have the wrong number of remaining arguments after parsing.
      void printUsage​(java.io.OutputStream os)
      Print command line usage information to given stream.
      void startOptionGroup​(java.lang.String description)
      Start a new group of related command-line options.
      • Methods inherited from class java.lang.Object

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

      • CommandLine

        public CommandLine()
    • Method Detail

      • startOptionGroup

        public void startOptionGroup​(java.lang.String description)
        Start a new group of related command-line options.
        Parameters:
        description - description of the group
      • addSwitch

        public void addSwitch​(java.lang.String option,
                              java.lang.String description)
        Add a command line switch. This method is for adding options that do not require an argument.
        Parameters:
        option - the option, must start with "-"
        description - single line description of the option
      • addSwitchWithOptionalExtraPart

        public void addSwitchWithOptionalExtraPart​(java.lang.String option,
                                                   java.lang.String optionExtraPartSynopsis,
                                                   java.lang.String description)
        Add a command line switch that allows optional extra information to be specified as part of it.
        Parameters:
        option - the option, must start with "-"
        optionExtraPartSynopsis - synopsis of the optional extra information
        description - single-line description of the option
      • addOption

        public void addOption​(java.lang.String option,
                              java.lang.String argumentDesc,
                              java.lang.String description)
        Add an option requiring an argument.
        Parameters:
        option - the option, must start with "-"
        argumentDesc - brief (one or two word) description of the argument
        description - single line description of the option
      • makeOptionUnlisted

        public void makeOptionUnlisted​(java.lang.String option)
        Don't list this option when printing Usage information
        Parameters:
        option -
      • expandOptionFiles

        public java.lang.String[] expandOptionFiles​(java.lang.String[] argv,
                                                    boolean ignoreComments,
                                                    boolean ignoreBlankLines)
                                             throws java.io.IOException,
                                                    CommandLine.HelpRequestedException
        Expand option files in given command line. Any token beginning with "@" is assumed to be an option file. Option files contain one command line option per line.
        Parameters:
        argv - the original command line
        ignoreComments - ignore comments (lines starting with "#")
        ignoreBlankLines - ignore blank lines
        Returns:
        the expanded command line
        Throws:
        java.io.IOException
        CommandLine.HelpRequestedException
      • getAnalysisOptionProperties

        public static java.util.ArrayList<java.lang.String> getAnalysisOptionProperties​(boolean ignoreComments,
                                                                                        boolean ignoreBlankLines)
      • parse

        public int parse​(java.lang.String[] argv,
                         int minArgs,
                         int maxArgs,
                         java.lang.String usage)
        Parse switches/options, showing usage information if they can't be parsed, or if we have the wrong number of remaining arguments after parsing. Calls parse(String[]).
        Parameters:
        argv - command line arguments
        minArgs - allowed minimum number of arguments remaining after switches/options are parsed
        maxArgs - allowed maximum number of arguments remaining after switches/options are parsed
        usage - usage synopsis
        Returns:
        number of arguments parsed
      • parse

        public int parse​(java.lang.String[] argv)
                  throws java.io.IOException,
                         CommandLine.HelpRequestedException
        Parse a command line. Calls down to handleOption() and handleOptionWithArgument() methods. Stops parsing when it reaches the end of the command line, or when a command line argument not starting with "-" is seen.
        Parameters:
        argv - the arguments
        Returns:
        the number of arguments parsed; if equal to argv.length, then the entire command line was parsed
        Throws:
        CommandLine.HelpRequestedException
        java.io.IOException
      • handleOption

        protected abstract void handleOption​(java.lang.String option,
                                             java.lang.String optionExtraPart)
                                      throws java.io.IOException
        Callback method for handling an option.
        Parameters:
        option - the option
        optionExtraPart - the "extra" part of the option (everything after the colon: e.g., "withMessages" in "-xml:withMessages"); the empty string if there was no extra part
        Throws:
        java.io.IOException
      • handleOptionWithArgument

        protected abstract void handleOptionWithArgument​(java.lang.String option,
                                                         java.lang.String argument)
                                                  throws java.io.IOException
        Callback method for handling an option with an argument.
        Parameters:
        option - the option
        argument - the argument
        Throws:
        java.io.IOException
      • printUsage

        public void printUsage​(java.io.OutputStream os)
        Print command line usage information to given stream.
        Parameters:
        os - the output stream