in api-reference-examples/java/te-tag-query/com/facebook/threatexchange/TETagQuery.java [763:848]
public void handle(
String[] args,
int numIDsPerQuery,
boolean verbose,
boolean showURLs,
DescriptorFormatter descriptorFormatter
) {
IndicatorTypeFilterer indicatorTypeFilterer = IndicatorTypeFilterer.createAllFilterer();
int pageSize = 1000;
String since = null;
String until = null;
boolean includeIndicatorInOutput = true;
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("--list")) {
IndicatorTypeFilterer.list(System.out);
System.exit(0);
} else if (option.equals("--since")) {
if (args.length < 1) {
usage(1);
}
since = args[0];
args = Arrays.copyOfRange(args, 1, args.length);
} else if (option.equals("--until")) {
if (args.length < 1) {
usage(1);
}
until = args[0];
args = Arrays.copyOfRange(args, 1, args.length);
} else if (option.equals("--page-size")) {
if (args.length < 1) {
usage(1);
}
pageSize = Integer.valueOf(args[0]);
args = Arrays.copyOfRange(args, 1, args.length);
} else if (option.equals("--indicator-type")) {
if (args.length < 1) {
usage(1);
}
indicatorTypeFilterer = IndicatorTypeFilterer.create(args[0]);
if (indicatorTypeFilterer == null) {
System.err.printf("%s %s: unrecognized descriptor filter \"%s\".\n",
PROGNAME, _verb, args[0]);
usage(1);
}
args = Arrays.copyOfRange(args, 1, args.length);
} else if (option.equals("--no-print-indicator")) {
includeIndicatorInOutput = false;
} else {
System.err.printf("%s %s: unrecognized option \"%s\".\n",
PROGNAME, _verb, option);
usage(1);
}
}
if (since == null) {
System.err.printf("%s %s: --since is required.\n",
PROGNAME, _verb);
usage(1);
}
if (args.length != 1) {
usage(1);
}
String tagName = args[0];
// The 'type' field coming back from TE API requests has 'HASH_MD5' not
// 'md5', etc.
String uppercaseName = indicatorTypeFilterer.getUppercaseName();
Net.getIncremental(tagName, uppercaseName, since,
pageSize, verbose, showURLs, descriptorFormatter, includeIndicatorInOutput);
}