@CommandDefinition(name = "test", description = "testing multiple values") public class Parser4Test<CI extends CommandInvocation> extends TestingCommand<CI> { @OptionList(shortName = 'o', name="option", valueSeparator = ',') private List<String> option; @OptionList private List<Integer> bar; @OptionList(shortName = 'h', valueSeparator = ':') private List<String> help; @OptionList(shortName = 'e', valueSeparator = ' ') private List<String> help2; @Arguments private List<String> arguments; }
private static void processField(Set<String> deprecated, Field field) { Deprecated dep; if ((dep = field.getAnnotation(Deprecated.class)) != null) { Option o; if ((o = field.getAnnotation(Option.class)) != null) { String name = o.name(); if (name == null || name.isEmpty()) { name = field.getName(); } deprecated.add(name); } else { OptionList ol; if ((ol = field.getAnnotation(OptionList.class)) != null) { String name = ol.name(); if (name == null || name.isEmpty()) { name = field.getName(); } deprecated.add(name); } else { if (field.getAnnotation(Argument.class) != null || field.getAnnotation(Arguments.class) != null) { deprecated.add(""); } } } } }
.shortName(ol.shortName()) .name(ol.name().length() < 1 ? field.getName() : ol.name()) .description(ol.description()) .required(ol.required()) .valueSeparator(ol.valueSeparator()) .askIfNotSet(ol.askIfNotSet()) .addAllDefaultValues(ol.defaultValue()) .type(type) .fieldName(field.getName()) .optionType(OptionType.LIST) .converter(ol.converter()) .completer(ol.completer()) .validator(ol.validator()) .activator(ol.activator()) .renderer(ol.renderer()) .parser(ol.parser()) .build());
@CommandDefinition(name = "test", description = "a simple test") public class TestPopulator2<CI extends CommandInvocation> implements Command<CI> { @OptionList(shortName = 'b') private Set<String> basicSet; @OptionList(shortName = 'a') private List<Integer> basicList; @OptionList(shortName = 'i') private ArrayList<Short> implList;
private static void processField(Set<String> deprecated, Field field) { Deprecated dep; if ((dep = field.getAnnotation(Deprecated.class)) != null) { Option o; if ((o = field.getAnnotation(Option.class)) != null) { String name = o.name(); if (name == null || name.isEmpty()) { name = field.getName(); } deprecated.add(name); } else { OptionList ol; if ((ol = field.getAnnotation(OptionList.class)) != null) { String name = ol.name(); if (name == null || name.isEmpty()) { name = field.getName(); } deprecated.add(name); } else { if (field.getAnnotation(Argument.class) != null || field.getAnnotation(Arguments.class) != null) { deprecated.add(""); } } } } }
@CommandDefinition(name = "test", description = "testing multiple values") public class Parser5Test<CI extends CommandInvocation> extends TestingCommand<CI> { @OptionList(shortName = 'f', name="foo", valueSeparator=' ') private List<String> foo; @Option(shortName = 'b', name="bar", hasValue = false) private Boolean bar; @Option(shortName = 'z', name="baz", hasValue = false) private Boolean baz; @OptionList(shortName = 'q', name="qux", valueSeparator=' ') private List<String> qux; @Arguments private List<String> arguments; }
private Long veryLong; @OptionList private Set<String> basicSet; private Currency currency; @OptionList(validator = LongOptionValidator.class, valueSeparator = ';') private List<Long> longs; @OptionList(name = "strings") private List<String> strings;
private String less; @OptionList(defaultValue = "/tmp", description = "file location", valueSeparator = ':', validator = DirectoryValidator.class, activator = BarActivator.class)
@CommandDefinition(name = "test", description = "a simple test3") public class ParseCompleteTest3<CI extends CommandInvocation> extends TestCommand<CI> { @Option(shortName = 'X', description = "enable X") private String X; @OptionList(shortName = 'v', name = "value", description = "enable equal", completer = ValueTestCompleter.class) private List<String> values; @Option(shortName = 'b', hasValue = false) private boolean bool; @Option(shortName = 'D', description = "define properties", required = true) private String define; @Argument(completer = ArgTestCompleter.class) private String arg; }
@CommandDefinition(name = "test", description = "a simple test3") public class ParseCompleteTest5<CI extends CommandInvocation> extends TestCommand<CI> { @Option(shortName = 'X', description = "enable X") private String X; @OptionList(shortName = 'v', name = "value", valueSeparator = ':') private List<String> values; @Option(shortName = 'b', hasValue = false) private boolean bool; @Option(shortName = 'D', description = "define properties", required = true) private String define; @Argument(completer = ArgTestCompleter.class) private String arg; }
private Long veryLong; @OptionList private Set<String> basicSet;
@CommandDefinition(name="ls", description = "[OPTION]... [FILE]...") public class LsCommand implements Command { @Option(hasValue = false, description = "set foo to true/false") private Boolean foo; @Option(hasValue = false, description = "set the bar") private boolean bar; @Option(defaultValue = {"MORE"}, argument = "SIZE") private String less; @OptionList(defaultValue = "/tmp", description = "file location", valueSeparator = ':', validator = DirectoryValidator.class) List<File> files; @Option(hasValue = false, description = "display this help and exit") private boolean help; @Arguments private java.util.List<File> arguments; @Override public CommandResult execute(CommandInvocation commandInvocation) throws CommandException, InterruptedException { assertEquals(2, files.size()); return CommandResult.SUCCESS; } }