in tools/maven-plugin/src/main/java/org/apache/batchee/tools/maven/doc/ComponentDocumentationGenerator.java [70:126]
public void execute() {
if (classes == null || !classes.isDirectory()) {
warn((classes != null ? classes.getAbsolutePath() : "null") + " is not a directory, skipping");
return;
}
// instantiate the formatter now to avoid to scan for nothing if we can't instantiate it
final Formatter formatterInstance = createFormatter();
// find meta
final Map<String, ClassDoc> configByComponent = new TreeMap<String, ClassDoc>();
try {
scan(configByComponent, classes);
} catch (final IOException e) {
throw new IllegalStateException(e.getMessage(), e);
}
if (configByComponent.isEmpty()) {
warn("Nothing found, maybe adjust <classes>, skipping.");
return;
}
handleParents(configByComponent);
// format what we found
if (!output.getParentFile().isDirectory() && !output.getParentFile().mkdirs()) {
throw new IllegalStateException("Can't create " + output.getAbsolutePath());
}
FileWriter writer = null;
try {
writer = new FileWriter(output);
formatterInstance.begin(writer);
for (final Map.Entry<String, ClassDoc> component : configByComponent.entrySet()) {
final ClassDoc value = component.getValue();
if (!value.leaf) {
continue;
}
formatterInstance.beginClass(writer, value.name, value.doc);
for (final FieldDoc doc : value.configuration) {
formatterInstance.add(writer, doc);
}
formatterInstance.endClass(writer);
}
formatterInstance.end(writer);
} catch (final IOException e) {
throw new IllegalStateException(e.getMessage(), e);
} finally {
if (writer != null) {
try {
writer.close();
} catch (final IOException e) {
// no-op
}
}
}
}