in TransformCore/src/main/java/com/facebook/ads/injkit/AnnotationProcessorConfiguration.java [35:79]
public static AnnotationProcessorConfiguration parse(
File configurationFile, Iterable<Module<?>> modules)
throws IOException, InvalidAnnotationProcessorConfigurationException {
Set<ModuleHandler<?>> handlers = new HashSet<>();
for (Module<?> module : modules) {
handlers.add(new ModuleHandler<>(module));
}
ParseContext ctx = new ParseContext(configurationFile.getCanonicalPath());
try (FileReader configurationFileReader = new FileReader(configurationFile);
BufferedReader lineReader = new BufferedReader(configurationFileReader)) {
String line;
lineReading:
while ((line = lineReader.readLine()) != null) {
ctx.nextLine();
line = line.trim();
if (line.isEmpty() || line.startsWith("#")) {
continue;
}
LineDirectiveSplit directiveSplit = splitDirective(line);
for (ModuleHandler<?> moduleHandler : handlers) {
if (moduleHandler.getParser().parse(directiveSplit, ctx)) {
continue lineReading;
}
}
throw new InvalidAnnotationProcessorConfigurationException(
String.format(
Locale.US,
"%s: Unknown directive: '%s'",
ctx.lineDescription(),
directiveSplit.getDirective()));
}
}
for (ModuleHandler<?> moduleHandler : handlers) {
moduleHandler.finish(ctx);
}
return new AnnotationProcessorConfiguration(handlers);
}