public static void main()

in api-reference-examples/java/te-tag-query/com/facebook/threatexchange/TETagQuery.java [75:159]


  public static void main(String[] args) throws IOException {

    // Set defaults
    String appTokenEnvName = DEFAULT_APP_TOKEN_ENV_NAME;
    boolean verbose = false;
    boolean showURLs = false;
    int numIDsPerQuery = MAX_IDS_PER_QUERY;
    DescriptorFormatter descriptorFormatter = new JSONDescriptorFormatter();

    // Override defaults
    while (args.length > 0 && args[0].startsWith("-")) {
      String option = args[0];
      args = Arrays.copyOfRange(args, 1, args.length);

      if (option.equals("-h") || option.equals("--help")) {
        usage(0);

      } else if (option.equals("-v") || option.equals("--verbose")) {
        verbose = true;

      } else if (option.equals("-q") || option.equals("--quiet")) {
        verbose = false;

      } else if (option.equals("-s") || option.equals("--show-urls")) {
        showURLs = true;

      } else if (option.equals("-l") || option.equals("--list-verbs")) {
        CommandHandlerFactory.list(System.out);
        System.exit(0);

      } else if (option.equals("--ids-per-query")) {
        if (args.length < 1) {
          usage(1);
        }
        String svalue = args[0];
        args = Arrays.copyOfRange(args, 1, args.length);
        try {
          numIDsPerQuery = Integer.valueOf(svalue);
        } catch (NumberFormatException e) {
          System.err.printf("%s: could not parse \"%s\" as integer.\n",
            PROGNAME, svalue);
          System.exit(1);
        }
        if (numIDsPerQuery < 1 || numIDsPerQuery > MAX_IDS_PER_QUERY) {
          System.err.printf("%s: num IDs per query must be in the range 1..%d; got %d.\n",
            PROGNAME, MAX_IDS_PER_QUERY, numIDsPerQuery);
          System.exit(1);
        }

      } else if (option.equals("-a") || option.equals("--app-token-env-name")) {
        if (args.length < 1) {
          usage(1);
        }
        appTokenEnvName = args[0];
        args = Arrays.copyOfRange(args, 1, args.length);

      } else if (option.equals("-b") || option.equals("--te-base-url")) {
        if (args.length < 1) {
          usage(1);
        }
        Net.setTEBaseURL(args[0]);
        args = Arrays.copyOfRange(args, 1, args.length);

      } else {
        System.err.printf("%s: unrecognized option \"%s\".\n", PROGNAME, option);
        usage(1);
      }
    }

    Net.setAppToken(appTokenEnvName);

    if (args.length < 1) {
      usage(1);
    }
    String verb = args[0];
    args = Arrays.copyOfRange(args, 1, args.length);

    CommandHandler commandHandler = CommandHandlerFactory.create(verb);
    if (commandHandler == null) {
      System.err.printf("%s: verb \"%s\" not found.\n", PROGNAME, verb);
      System.exit(1);
    }
    commandHandler.handle(args, numIDsPerQuery, verbose, showURLs,
      descriptorFormatter);
  }