throw new IllegalArgumentException("Command " + clazz.getName() + " is not annotated with @Command"); Object command = new ActionCommand(this, (Class<? extends Action>) clazz); synchronized (instances) { instances.put(clazz, command);
@Override public Object execute(Session session, List<Object> arguments) throws Exception { Action action = createNewAction(session); try { if (new DefaultActionPreparator().prepare(action, session, arguments)) { return action.execute(); } } finally { releaseAction(action); } return null; }
public static ActionMaskingCallback build(ActionCommand command) { Set<String> booleanOptions = new HashSet<>(); Map<String, Option> typedOptions = new HashMap<>(); List<Argument> arguments = new ArrayList<>(); boolean censor = false; for (Class<?> type = command.getActionClass(); type != null; type = type.getSuperclass()) { for (Field field : type.getDeclaredFields()) { Option option = field.getAnnotation(Option.class); if (option != null) { if (field.getType() == boolean.class || field.getType() == Boolean.class) { booleanOptions.add(option.name()); booleanOptions.addAll(Arrays.asList(option.aliases())); } else { typedOptions.put(option.name(), option); Arrays.asList(option.aliases()).forEach(action -> typedOptions.put(option.name(), option)); censor |= option.censor(); } } Argument argument = field.getAnnotation(Argument.class); if (argument != null) { arguments.add(argument); censor |= argument.censor(); } } } arguments.sort(Comparator.comparing(Argument::index)); return censor ? new ActionMaskingCallback(command, booleanOptions, typedOptions, arguments) : null; }
@SuppressWarnings("rawtypes") public ArgumentCompleter(ActionCommand command, boolean scoped) { this.command = command; Class<?> actionClass = command.getActionClass(); completer = new StringsCompleter(Arrays.asList(value), ann.caseSensitive()); } else { completer = command.getCompleter(clazz); completer = new StringsCompleter(Arrays.asList(value), ann.caseSensitive()); } else { completer = command.getCompleter(clazz);
@SuppressWarnings("rawtypes") public ArgumentCompleter(ActionCommand command, boolean scoped) { this.command = command; Class<?> actionClass = command.getActionClass(); completer = new StringsCompleter(Arrays.asList(value), ann.caseSensitive()); } else { completer = command.getCompleter(clazz); completer = new StringsCompleter(Arrays.asList(value), ann.caseSensitive()); } else { completer = command.getCompleter(clazz);
@Override public Object execute(Session session, List<Object> arguments) throws Exception { Action action = createNewAction(session); try { if (new DefaultActionPreparator().prepare(action, session, arguments)) { return action.execute(); } } finally { releaseAction(action); } return null; }
public static ActionMaskingCallback build(ActionCommand command) { Set<String> booleanOptions = new HashSet<>(); Map<String, Option> typedOptions = new HashMap<>(); List<Argument> arguments = new ArrayList<>(); boolean censor = false; for (Class<?> type = command.getActionClass(); type != null; type = type.getSuperclass()) { for (Field field : type.getDeclaredFields()) { Option option = field.getAnnotation(Option.class); if (option != null) { if (field.getType() == boolean.class || field.getType() == Boolean.class) { booleanOptions.add(option.name()); booleanOptions.addAll(Arrays.asList(option.aliases())); } else { typedOptions.put(option.name(), option); Arrays.asList(option.aliases()).forEach(action -> typedOptions.put(option.name(), option)); censor |= option.censor(); } } Argument argument = field.getAnnotation(Argument.class); if (argument != null) { arguments.add(argument); censor |= argument.censor(); } } } arguments.sort(Comparator.comparing(Argument::index)); return censor ? new ActionMaskingCallback(command, booleanOptions, typedOptions, arguments) : null; }
throw new IllegalArgumentException("Command " + clazz.getName() + " is not annotated with @Command"); Object command = new ActionCommand(this, (Class<? extends Action>) clazz); synchronized (instances) { instances.put(clazz, command);
for (Command command : commands) { if (command instanceof ActionCommand) { Class<? extends Action> action = ((ActionCommand) command).getActionClass(); bundles.add(FrameworkUtil.getBundle(action));
for (Command command : commands) { if (command instanceof ActionCommand) { Class<? extends Action> action = ((ActionCommand) command).getActionClass(); bundles.add(FrameworkUtil.getBundle(action));