public class DefaultUsageFormatter extends java.lang.Object implements IUsageFormatter
Modifier and Type | Field and Description |
---|---|
private JCommander |
commander |
Constructor and Description |
---|
DefaultUsageFormatter(JCommander commander) |
Modifier and Type | Method and Description |
---|---|
void |
appendAllParametersDetails(java.lang.StringBuilder out,
int indentCount,
java.lang.String indent,
java.util.List<ParameterDescription> sortedParameters)
Appends the details of all parameters in the given order to the argument string builder, indenting every
line with indentCount-many indent.
|
void |
appendCommands(java.lang.StringBuilder out,
int indentCount,
int descriptionIndent,
java.lang.String indent)
Appends the details of all commands to the argument string builder, indenting every line with
indentCount-many indent.
|
void |
appendMainLine(java.lang.StringBuilder out,
boolean hasOptions,
boolean hasCommands,
int indentCount,
java.lang.String indent)
Appends the main line segment of the usage to the argument string builder, indenting every
line with indentCount-many indent.
|
java.lang.String |
getCommandDescription(java.lang.String commandName)
Returns the description of the command corresponding to the argument command name.
|
static java.lang.String |
getI18nString(java.util.ResourceBundle bundle,
java.lang.String key,
java.lang.String def)
Returns the internationalized version of the string if available, otherwise it returns def.
|
private static java.lang.String |
newLineAndIndent(int indent)
Returns new line followed by indent-many spaces.
|
static java.lang.String |
s(int count)
Returns count-many spaces.
|
void |
usage(java.lang.String commandName)
Prints the usage to
JCommander.getConsole() on the underlying commander instance. |
void |
usage(java.lang.StringBuilder out)
Store the usage in the argument string builder.
|
void |
usage(java.lang.StringBuilder out,
java.lang.String indent)
Stores the usage in the argument string builder, with the argument indentation.
|
void |
usage(java.lang.String commandName,
java.lang.StringBuilder out)
Store the usage for the argument command in the argument string builder.
|
void |
usage(java.lang.String commandName,
java.lang.StringBuilder out,
java.lang.String indent)
Store the usage for the command in the argument string builder, indenting every line with the
value of indent.
|
void |
wrapDescription(java.lang.StringBuilder out,
int indent,
int currentLineIndent,
java.lang.String description)
Wrap a potentially long line to the value obtained by calling
JCommander.getColumnSize() on the
underlying commander instance. |
void |
wrapDescription(java.lang.StringBuilder out,
int indent,
java.lang.String description)
Wrap a potentially long line to { @link #commander#getColumnSize()}.
|
private final JCommander commander
public DefaultUsageFormatter(JCommander commander)
public final void usage(java.lang.String commandName)
JCommander.getConsole()
on the underlying commander instance.usage
in interface IUsageFormatter
public final void usage(java.lang.String commandName, java.lang.StringBuilder out)
usage
in interface IUsageFormatter
public final void usage(java.lang.StringBuilder out)
usage
in interface IUsageFormatter
public final void usage(java.lang.String commandName, java.lang.StringBuilder out, java.lang.String indent)
usage
in interface IUsageFormatter
public void usage(java.lang.StringBuilder out, java.lang.String indent)
usage
in interface IUsageFormatter
public void appendMainLine(java.lang.StringBuilder out, boolean hasOptions, boolean hasCommands, int indentCount, java.lang.String indent)
out
- the builder to append tohasOptions
- if the options section should be appendedhasCommands
- if the comments section should be appendedindentCount
- the amount of indentation to applyindent
- the indentationpublic void appendAllParametersDetails(java.lang.StringBuilder out, int indentCount, java.lang.String indent, java.util.List<ParameterDescription> sortedParameters)
out
- the builder to append toindentCount
- the amount of indentation to applyindent
- the indentationsortedParameters
- the parameters to append to the builderpublic void appendCommands(java.lang.StringBuilder out, int indentCount, int descriptionIndent, java.lang.String indent)
JCommander.getRawCommands()
and the commands are resolved using
JCommander.findCommandByAlias(String)
on the underlying commander instance.out
- the builder to append toindentCount
- the amount of indentation to applydescriptionIndent
- the indentation for the descriptionindent
- the indentationpublic java.lang.String getCommandDescription(java.lang.String commandName)
JCommander.findCommandByAlias(String)
, and the default resource bundle used from
JCommander.getBundle()
on the underlying commander instance.getCommandDescription
in interface IUsageFormatter
commandName
- the name of the command to get the description forpublic void wrapDescription(java.lang.StringBuilder out, int indent, int currentLineIndent, java.lang.String description)
JCommander.getColumnSize()
on the
underlying commander instance.out
- the outputindent
- the indentation in spaces for lines after the first line.currentLineIndent
- the length of the indentation of the initial linedescription
- the text to wrap. No extra spaces are inserted before description
. If the first line needs to be indented prepend the
correct number of spaces to description
.public void wrapDescription(java.lang.StringBuilder out, int indent, java.lang.String description)
out
- the outputindent
- the indentation in spaces for lines after the first line.description
- the text to wrap. No extra spaces are inserted before description
. If the first line needs to be indented prepend the
correct number of spaces to description
.wrapDescription(StringBuilder, int, int, String)
public static java.lang.String getI18nString(java.util.ResourceBundle bundle, java.lang.String key, java.lang.String def)
public static java.lang.String s(int count)
private static java.lang.String newLineAndIndent(int indent)