public static AnnotationProcessorConfiguration parse()

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);
  }