/** * Prints the argument: * * <ul> * <li>Single valued arguments use the "$arg" pattern.</li> * <li>Multi valued arguments use the "... $arg" pattern.</li> * </ul> * * Where $arg is the value "arg" or the argument name when it is not null. * * @param writer the writer to print to * @throws IOException any io exception */ public void printUsage(Appendable writer) throws IOException { writer.append('<'); writer.append((name == null || name.length() == 0) ? "arg" : name); writer.append('>'); if (getMultiplicity() == Multiplicity.MULTI) { writer.append("... "); } }
public void assertArgument(String name, String... values) { Event.Argument event = (Event.Argument)parser.next(); assertEquals(name, event.getParameter().getName()); assertEquals(Arrays.asList(values), event.getStrings()); }
int index = 0; for (ArgumentDescriptor argument : arguments) { Multiplicity multiplicity = argument.getMultiplicity(); if (multiplicity == Multiplicity.SINGLE) { if (argument.isRequired()) { if (oneCount + 1 > wordCount) { break; for (ArgumentDescriptor argument : arguments) { int size; switch (argument.getMultiplicity()) { case SINGLE: if (argument.isRequired()) { size = 1; } else {
@Override public Object parse(List<String> values) throws SyntaxException { if (getMultiplicity() == Multiplicity.SINGLE) { if (values.size() > 1) { throw new SyntaxException("Too many option values " + values); } String value = values.get(0); try { return parse(value); } catch (Exception e) { throw new SyntaxException("Could not parse " + value); } } else { List<Object> v = new ArrayList<Object>(values.size()); for (String value : values) { try { v.add(parse(value)); } catch (Exception e) { throw new SyntaxException("Could not parse " + value); } } return v; } }
public void testArgument1() throws IntrospectionException { class A { @Argument() private int i; } CommandDescriptor<Instance<A>> c = CommandFactory.DEFAULT.create(A.class); assertEquals(1, c.getArguments().size()); ArgumentDescriptor i = c.getArguments().get(0); assertEquals(ValueType.INTEGER, i.getType()); assertEquals(Multiplicity.SINGLE, i.getMultiplicity()); assertEquals(false, i.isRequired()); }
public void printUsageSection(CommandDescriptor<?> command, Appendable stream) throws IOException { stream.append("usage: "); printFQNWithOptions(command, stream); if (command.getSubordinates().size() > 0) { stream.append(" COMMAND [ARGS]"); } else { for (ArgumentDescriptor argument : command.getArguments()) { stream.append(' '); argument.printUsage(stream); } } stream.append("\n\n"); }
return new ArgumentDescriptor( binding, argumentAnn.name(),
public void testArgument2() throws IntrospectionException { class A { @Argument private int i; @Argument private List<Integer> j; } CommandDescriptor<Instance<A>> c = CommandFactory.DEFAULT.create(A.class); assertEquals(2, c.getArguments().size()); ArgumentDescriptor i = c.getArguments().get(0); assertEquals(ValueType.INTEGER, i.getType()); assertEquals(Multiplicity.SINGLE, i.getMultiplicity()); assertEquals(false, i.isRequired()); ArgumentDescriptor j = c.getArguments().get(1); assertEquals(ValueType.INTEGER, j.getType()); assertEquals(Multiplicity.MULTI, j.getMultiplicity()); }
@Override public Object parse(List<String> values) throws SyntaxException { if (getMultiplicity() == Multiplicity.SINGLE) { if (values.size() > 1) { throw new SyntaxException("Too many option values " + values); } String value = values.get(0); try { return parse(value); } catch (Exception e) { throw new SyntaxException("Could not parse " + value); } } else { List<Object> v = new ArrayList<Object>(values.size()); for (String value : values) { try { v.add(parse(value)); } catch (Exception e) { throw new SyntaxException("Could not parse " + value); } } return v; } }
public void printSynopsisSection(CommandDescriptor<?> command, Appendable stream) throws IOException { stream.append("SYNOPSIS\n"); stream.append(Util.MAN_TAB); printFQNWithOptions(command, stream); if (command.getSubordinates().size() > 0) { stream.append(" COMMAND [ARGS]"); } else { for (ArgumentDescriptor argument : command.getArguments()) { stream.append(' '); argument.printUsage(stream); } } stream.append("\n\n"); }
} else if (parameter instanceof ArgumentDescriptor) { ArgumentDescriptor argument = (ArgumentDescriptor)parameter; if (argument.getMultiplicity() == Multiplicity.MULTI) { if (listArgument) { throw new IntrospectionException();
int index = 0; for (ArgumentDescriptor argument : arguments) { Multiplicity multiplicity = argument.getMultiplicity(); if (multiplicity == Multiplicity.SINGLE) { if (argument.isRequired()) { if (oneCount + 1 > wordCount) { break; for (ArgumentDescriptor argument : arguments) { int size; switch (argument.getMultiplicity()) { case SINGLE: if (argument.isRequired()) { size = 1; } else {
@Override public Object parse(List<String> values) throws SyntaxException { if (getMultiplicity() == Multiplicity.SINGLE) { if (values.size() > 1) { throw new SyntaxException("Too many option values " + values); } String value = values.get(0); try { return parse(value); } catch (Exception e) { throw new SyntaxException("Could not parse " + value); } } else { List<Object> v = new ArrayList<Object>(values.size()); for (String value : values) { try { v.add(parse(value)); } catch (Exception e) { throw new SyntaxException("Could not parse " + value); } } return v; } }
static void bind(InvocationMatch<?> match, Iterable<ParameterDescriptor> parameters, Object target, Object[] args) throws SyntaxException, InvocationException { for (ParameterDescriptor parameter : parameters) { ParameterMatch parameterMatch = match.getParameter(parameter); Object value = parameterMatch != null ? parameterMatch.computeValue() : null; if (value == null) { if (parameter.getDeclaredType().isPrimitive() || parameter.isRequired()) { if (parameter instanceof ArgumentDescriptor) { ArgumentDescriptor argument = (ArgumentDescriptor)parameter; throw new SyntaxException("Missing argument " + argument.getName()); } else { OptionDescriptor option = (OptionDescriptor)parameter; throw new SyntaxException("Missing option " + option.getNames()); } } } else { ((Binding)parameter).set(target, args, value); } } }
public void printUsageSection(CommandDescriptor<?> command, Appendable stream) throws IOException { stream.append("usage: "); printFQNWithOptions(command, stream); if (command.getSubordinates().size() > 0) { stream.append(" COMMAND [ARGS]"); } else { for (ArgumentDescriptor argument : command.getArguments()) { stream.append(' '); argument.printUsage(stream); } } stream.append("\n\n"); }
if (index < arguments.size()) { ArgumentDescriptor argument = arguments.get(index); switch (argument.getMultiplicity()) { case SINGLE: req.tokenizer.next();
int index = 0; for (ArgumentDescriptor argument : arguments) { Multiplicity multiplicity = argument.getMultiplicity(); if (multiplicity == Multiplicity.SINGLE) { if (argument.isRequired()) { if (oneCount + 1 > wordCount) { break; for (ArgumentDescriptor argument : arguments) { int size; switch (argument.getMultiplicity()) { case SINGLE: if (argument.isRequired()) { size = 1; } else {
static void bind(InvocationMatch<?> match, Iterable<ParameterDescriptor> parameters, Object target, Object[] args) throws SyntaxException, InvocationException { for (ParameterDescriptor parameter : parameters) { ParameterMatch parameterMatch = match.getParameter(parameter); Object value = parameterMatch != null ? parameterMatch.computeValue() : null; if (value == null) { if (parameter.getDeclaredType().isPrimitive() || parameter.isRequired()) { if (parameter instanceof ArgumentDescriptor) { ArgumentDescriptor argument = (ArgumentDescriptor)parameter; throw new SyntaxException("Missing argument " + argument.getName()); } else { OptionDescriptor option = (OptionDescriptor)parameter; throw new SyntaxException("Missing option " + option.getNames()); } } } else { ((Binding)parameter).set(target, args, value); } } }
public void printSynopsisSection(CommandDescriptor<?> command, Appendable stream) throws IOException { stream.append("SYNOPSIS\n"); stream.append(Util.MAN_TAB); printFQNWithOptions(command, stream); if (command.getSubordinates().size() > 0) { stream.append(" COMMAND [ARGS]"); } else { for (ArgumentDescriptor argument : command.getArguments()) { stream.append(' '); argument.printUsage(stream); } } stream.append("\n\n"); }
ArgumentDescriptor argument = eventArgument.getParameter(); if (separator != null) { switch (argument.getMultiplicity()) { case SINGLE: List<? extends ArgumentDescriptor> arguments = eventArgument.getCommand().getArguments();