private static Map<String, String> getAnnotationProcessorOptionsFromCompilerConfig(Element compilerConfig) {
    Map<String, String> res = new LinkedHashMap<>();

    String compilerArgument = compilerConfig.getChildText("compilerArgument");
    addAnnotationProcessorOptionFromParameterString(compilerArgument, res);

    Element compilerArgs = compilerConfig.getChild("compilerArgs");
    if (compilerArgs != null) {
      for (Element e : compilerArgs.getChildren()) {
        if (!StringUtil.equals(e.getName(), "arg")) continue;
        String arg = e.getTextTrim();
        addAnnotationProcessorOption(arg, res);
      }
    }

    Element compilerArguments = compilerConfig.getChild("compilerArguments");
    if (compilerArguments != null) {
      for (Element e : compilerArguments.getChildren()) {
        String name = e.getName();
        name = StringUtil.trimStart(name, "-");

        if (name.length() > 1 && name.charAt(0) == 'A') {
          res.put(name.substring(1), e.getTextTrim());
        }
      }
    }
    return res;
  }
private static Map<String, String> getAnnotationProcessorOptionsFromCompilerConfig(Element compilerConfig)