public @Override final boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) { if (roundEnv.errorRaised()) { debug("roundEnv.errorRaised(true)"); return false; } if (roundEnv.processingOver()) { writeFiles(); debug("writeFiles()"); return true; } else { debug("handleProcess()"); return handleProcess(annotations, roundEnv); } }
private void writeFiles() { String file = null; try { for (String filePath : fileContents.keySet()) { debug("writing to file " + filePath); file = filePath; FileObject out = processingEnv.getFiler().createResource( StandardLocation.CLASS_OUTPUT, "", filePath, (Element[]) null); OutputStream os = out.openOutputStream(); try { PrintWriter w = new PrintWriter(new OutputStreamWriter(os, "UTF-8")); for (String line : fileContents.get(filePath)) { w.write(line); w.write("\r\n"); } w.flush(); w.close(); } finally { os.close(); } } } catch (IOException x) { processingEnv.getMessager().printMessage(Kind.ERROR, "Failed to write to " + file + ": " + x.toString()); } }