Class CommandLine

java.lang.Object
edu.umd.cs.findbugs.config.CommandLine
Direct Known Subclasses:
FindBugsCommandLine

public abstract class CommandLine extends Object
Helper class for parsing command line arguments.
  • Constructor Details

    • CommandLine

      protected CommandLine()
  • Method Details

    • startOptionGroup

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

      public void addSwitch(String option, 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(String option, String optionExtraPartSynopsis, 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(String option, String argumentDesc, 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(String option)
      Don't list this option when printing Usage information
      Parameters:
      option -
    • expandOptionFiles

      public String[] expandOptionFiles(String[] argv, boolean ignoreComments, boolean ignoreBlankLines) throws 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:
      IOException
      CommandLine.HelpRequestedException
    • getAnalysisOptionProperties

      public static ArrayList<String> getAnalysisOptionProperties(boolean ignoreComments, boolean ignoreBlankLines)
    • parse

      public int parse(String[] argv, int minArgs, int maxArgs, 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(String[] argv) throws 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
      IOException
    • handleOption

      protected abstract void handleOption(String option, String optionExtraPart) throws 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:
      IOException
    • handleOptionWithArgument

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

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