/** * Create a usage String representing the manager. * * <p>It will create a string like this : "Usage: enumArgumentTest [ -amvlps ] [ transactions num * ]" * * @param manager the current manager * @return the usage representation */ private String usage(CliArgumentManager manager) { StringBuilder result = new StringBuilder(); List<CliArgument> arguments = manager.getArguments(); CliArgument defaultArg = manager.getDefaultArgument(); if (usageShort) { // short version StringBuilder mandatory = new StringBuilder(); boolean flag = false; for (CliArgument argument : arguments) { if (argument.isUsageHidden() || argument == defaultArg) { continue; } if (argument.isMandatory()) { mandatory.append(argument.getShortName().charAt(1)); } else { if (!flag) { result.append("[ -"); flag = true; } result.append(argument.getShortName().charAt(1)); } } if (flag) { result.append(" ]"); } if (mandatory.length() != 0) { result.append(" -"); result.append(mandatory); } } else { // full version for (CliArgument argument : arguments) { if (argument.isUsageHidden() || argument == defaultArg) { continue; } result.append(argument.toString()); } } if (defaultArg != null) { result.append(' '); if (!defaultArg.isMandatory()) { result.append("[ "); } result.append(defaultArg.toStringArgument()); if (!defaultArg.isMandatory()) { result.append(" ]"); } } return result.toString(); }