Package edu.umd.cs.findbugs.config
Class CommandLine
- java.lang.Object
-
- edu.umd.cs.findbugs.config.CommandLine
-
- Direct Known Subclasses:
FindBugsCommandLine
public abstract class CommandLine extends java.lang.Object
Helper class for parsing command line arguments.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
CommandLine.HelpRequestedException
-
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 informationint
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.
-
-
-
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 informationdescription
- 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 argumentdescription
- 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 lineignoreComments
- 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 argumentsminArgs
- allowed minimum number of arguments remaining after switches/options are parsedmaxArgs
- allowed maximum number of arguments remaining after switches/options are parsedusage
- 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 optionoptionExtraPart
- 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 optionargument
- 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
-
-