in tools/maven-plugin/src/main/java/org/apache/batchee/tools/maven/doc/ComponentDocumentationGenerator.java [146:223]
private Formatter createFormatter() {
if (formatter == null || formatter.startsWith("adoc")) {
final int level = "adoc".equals(formatter) || formatter == null ? 1 : Integer.parseInt(formatter.substring("adoc".length()));
final String prefix = buildPrefix('=', level);
return new Formatter() {
@Override
public void begin(final Writer writer) throws IOException {
// no-op
}
@Override
public void beginClass(final Writer writer, final String className, final String doc) throws IOException {
writer.append(prefix).append(" ").append(className).append("\n\n");
if (doc != null) {
writer.append(doc).append("\n\n");
}
writer.append("|===\n|Name|Description\n");
}
@Override
public void add(final Writer writer, final FieldDoc doc) throws IOException {
writer.append("|").append(doc.getName()).append("|").append(doc.getDoc() == null ? "-" : doc.getDoc()).append("\n");
}
@Override
public void endClass(final Writer writer) throws IOException {
writer.append("|===\n\n");
}
@Override
public void end(final Writer writer) throws IOException {
// no-op
}
};
} else if (formatter.startsWith("md")) {
final String prefix = buildPrefix('#', "md".equals(formatter) ? 1 : Integer.parseInt(formatter.substring("md".length())));
return new Formatter() {
@Override
public void begin(final Writer writer) throws IOException {
// no-op
}
@Override
public void beginClass(final Writer writer, final String className, final String doc) throws IOException {
writer.append(prefix).append(" ").append(className).append("\n\n");
if (doc != null) {
writer.append(doc).append("\n\n");
}
}
@Override
public void add(final Writer writer, final FieldDoc doc) throws IOException {
writer.append("* `").append(doc.getName()).append('`').append(doc.getDoc() == null ? "" : ": " + doc.getDoc()).append("\n");
}
@Override
public void endClass(final Writer writer) throws IOException {
writer.append('\n');
}
@Override
public void end(final Writer writer) throws IOException {
// no-op
}
};
}
try {
return Formatter.class.cast(Thread.currentThread().getContextClassLoader().loadClass(formatter.trim()).newInstance());
} catch (final InstantiationException e) {
throw new IllegalArgumentException(e);
} catch (final IllegalAccessException e) {
throw new IllegalArgumentException(e);
} catch (final ClassNotFoundException e) {
throw new IllegalArgumentException(e);
}
}