Java 类org.kohsuke.args4j.spi.SubCommand 实例源码

项目:Pinot    文件:PinotAdministrator.java   
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.");
}
项目:gaffer    文件:Commands.java   
@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;
}
项目:pinot    文件:PinotAdministrator.java   
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.");
}
项目:pinot    文件:PinotToolLauncher.java   
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.");
        }
      }
    }
  }
}
项目:buck    文件:BuckCommand.java   
/**
 * @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());
    }
  }
}
项目:canvas-data-tools    文件:CanvasDataCli.java   
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();
  }
}
项目:buck    文件:AdditionalOptionsSubCommandHandler.java   
@Override
protected CmdLineParser configureParser(Object subCmd, SubCommand c) {
  return new AdditionalOptionsCmdLineParser(subCmd);
}