@Override
    public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
        if (annotations == null || annotations.isEmpty()) {
            return false;
        }
        annotations.forEach(annotation -> processAnnotation(annotation, roundEnv));
        propertiesMap.forEach((className, properties) -> {
            try {
                writeProperties(className, properties);
            } catch (IOException e) {
                final StringWriter writer = new StringWriter();
                e.printStackTrace(new PrintWriter(writer));
                processingEnv.getMessager().printMessage(
                        Kind.ERROR,
                        String.format("Could not write properties for: %s" + System.lineSeparator() + "%s",
                                      className, writer));
            }
        });
        return false;
    }
Processor that creates a properties file based on the JavaDoc/KDoc description of parameters for interfaces.
This file can be later used if the {@link Description} annotation does not exist for parameters or methods.
annotation-processor/src/main/java/com/linecorp/armeria/server/annotation/processor/DocumentationProcessor.java