public HelpPrinter(final CliProcessor processor) { assert processor != null; this.processor = processor; // Add messages from the processor MessageSource messages = processor.getMessages(); if (messages != null) { addMessages(messages); } }
private Opt(final OptionDescriptor opt) throws IllegalArgumentException { super(opt.getName(), opt.getDescription()); this.desc = opt; setLongOpt(opt.getLongName()); setArgName(opt.getToken()); setRequired(opt.isRequired()); setValueSeparator(opt.getSeparator()); setArgs(opt.getArgs()); setOptionalArg(opt.isArgumentOptional()); }
public void addBean(final Object bean) { discoverDescriptors(bean); if (bean instanceof CliProcessorAware) { ((CliProcessorAware) bean).setProcessor(this); } }
@Override public void handle(final String arg) throws Exception { if (getDescriptor().isArgument()) { set(arg); } else { OptionDescriptor opt = (OptionDescriptor) getDescriptor(); if (opt.isArgumentOptional() && arg != null) { set(arg); } else { set(true); } } }
@SuppressWarnings("unused") public String getOptions() { if (clp.getOptionDescriptors().isEmpty()) { return ""; } PrintBuffer buff = new PrintBuffer(); printHeader(buff, "section.options"); printer.printOptions(buff, clp.getOptionDescriptors()); return buff.toString(); }
@Override public String getDefaultToken() { if (getDescriptor().isArgument() || ((OptionDescriptor)getDescriptor()).getArgs() > 0) { return "FLAG"; // TODO: i18n } return null; } }
public String renderSyntax(final MessageSource messages) { String str = isArgument() ? "" : getSyntax(); String token = renderToken(messages); if (token != null) { if (str.length() > 0) { str += " "; } str += token; } return str; }
/** * @since 2.4 */ public void printOptions(final PrintWriter out, final List<OptionDescriptor> options) { int len = 0; for (OptionDescriptor opt : options) { len = Math.max(len, opt.renderSyntax(messages).length()); } printOptions(out, options, len); }
/** * @since 2.4 */ public void printArguments(final PrintWriter out, final List<ArgumentDescriptor> arguments) { int len = 0; for (ArgumentDescriptor arg : arguments) { len = Math.max(len, arg.renderSyntax(messages).length()); } printArguments(out, arguments, len); }
public String getMessageCode() { if (isArgument()) { return String.format("argument.%s", getId()); } else { return String.format("option.%s", getId()); } }
public void setProcessor(final CliProcessor processor) { assert processor != null; processor.setStopAtNonOption(true); }
public void printUsage(final PrintWriter writer) { printUsage(writer, null); }
/** * @since 2.4 */ private void printOptions(final PrintWriter out, final List<OptionDescriptor> options, final int len) { for (OptionDescriptor opt : options) { printDescriptor(out, opt, len); } }
public char getSeparator() { return spec.separator(); }
public boolean getOverride() { return spec.override(); }
public int getIndex() { return spec.index(); }
@Override public String getSyntax() { String tmp = getToken(); if (tmp != null && tmp.length() != 0) { return tmp; } return "ARG"; } }
private Options createOptions() { Options opts = new Options(); for (OptionDescriptor opt : optionDescriptors) { opts.addOption(new Opt(opt)); } return opts; }
public String getTokenCode() { if (isArgument()) { return String.format("argument.%s.token", getId()); } else { return String.format("option.%s.token", getId()); } }
/** * @since 2.4 */ private void printArguments(final PrintWriter out, final List<ArgumentDescriptor> arguments, final int len) { for (ArgumentDescriptor arg : arguments) { printDescriptor(out, arg, len); } }