public void printUsage() { LOGGER.info("Usage: pinot-admin.sh <subCommand>"); LOGGER.info("Valid subCommands are:"); Class<PinotAdministrator> obj = PinotAdministrator.class; for (Field f : obj.getDeclaredFields()) { if (f.isAnnotationPresent(SubCommands.class)) { SubCommands subCommands = f.getAnnotation(SubCommands.class); for (SubCommand subCommand : subCommands.value()) { Class<?> subCommandClass = subCommand.impl(); Command command = null; try { command = (Command) subCommandClass.newInstance(); LOGGER.info("\t" + subCommand.name() + "\t<" + command.description() + ">"); } catch (Exception e) { LOGGER.info("Internal Error: Error instantiating class."); } } } } LOGGER.info("For other crud operations, please refer to ${ControllerAddress}/help."); }
@SuppressWarnings("unchecked") public static Map<String, Command> all() { if (ALL == null) { try { ALL = new HashMap<String, Command>(); Field cmdField = Gaffer.class.getDeclaredField("cmd"); SubCommands subCommands = cmdField.getAnnotation(SubCommands.class); for (SubCommand sub : subCommands.value()) { if (Command.class.isAssignableFrom(sub.impl())) { Class<Command> clazz = (Class<Command>) sub.impl(); ALL.put(sub.name(), clazz.newInstance()); } } } catch (Exception e) { throw new RuntimeException(e); } } return ALL; }
public void printUsage() { LOGGER.info("Usage: pinot-tools.sh <subCommand>"); LOGGER.info("Valid subCommands are:"); Class<PinotToolLauncher> obj = PinotToolLauncher.class; for (Field f : obj.getDeclaredFields()) { if (f.isAnnotationPresent(SubCommands.class)) { SubCommands subCommands = f.getAnnotation(SubCommands.class); for (SubCommand subCommand : subCommands.value()) { Class<?> subCommandClass = subCommand.impl(); Command command = null; try { command = (Command) subCommandClass.newInstance(); LOGGER.info("\t" + subCommand.name() + "\t<" + command.description() + ">"); } catch (Exception e) { LOGGER.info("Internal Error: Error instantiating class."); } } } } }
/** * @return The name that was used to invoke the subcommand, as declared in the annotations above */ String getDeclaredSubCommandName() { if (subcommand == null) { return "no_sub_command"; } else { final Class<? extends Command> subcommandClass = subcommand.getClass(); try { final SubCommands subCommands = this.getClass() .getDeclaredField(getSubcommandsFieldName()) .getAnnotation(SubCommands.class); for (SubCommand c : subCommands.value()) { if (c.impl().equals(subcommandClass)) { return c.name(); } } return "unknown_sub_command"; } catch (NoSuchFieldException e) { throw new HumanReadableException(e.getMessage()); } } }
private static void printUsage(final PrintStream out, final CmdLineParser cli) { try { out.println("\nUsage: canvas <global options> <command> <sub-command> <options>\n"); cli.printUsage(out); out.println( "\n*****************************************************************************"); final SubCommands commands = CanvasDataCli.class.getField("cmd") .getAnnotation(SubCommands.class); for (final SubCommand command : commands.value()) { out.println("\n" + command.name() + " commands: "); final Command c = (Command) command.impl().newInstance(); new CmdLineParser(c).printUsage(out); final SubCommands subCommands = c.getClass().getField("cmd") .getAnnotation(SubCommands.class); for (final SubCommand subCommand : subCommands.value()) { final Command sc = (Command) subCommand.impl().newInstance(); out.println("\n" + command.name() + " " + subCommand.name() + ": " + sc.getDescription()); new CmdLineParser(sc).printUsage(out); } out.println( "\n*****************************************************************************"); } out.println(); } catch (NoSuchFieldException | SecurityException | InstantiationException | IllegalAccessException e) { e.printStackTrace(); } }
@Override protected CmdLineParser configureParser(Object subCmd, SubCommand c) { return new AdditionalOptionsCmdLineParser(subCmd); }