Repository: camel Updated Branches: refs/heads/master 9b61389d4 -> 6bbb9bc78
CAMEL-7999: Add enum values to html doc Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/fc3a01cb Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/fc3a01cb Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/fc3a01cb Branch: refs/heads/master Commit: fc3a01cba908db721e2e3fcebf79d636bc218272 Parents: 9b61389 Author: Claus Ibsen <davscl...@apache.org> Authored: Sun Nov 9 14:21:23 2014 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Sun Nov 9 14:21:23 2014 +0100 ---------------------------------------------------------------------- .../tools/apt/EndpointAnnotationProcessor.java | 24 +++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/fc3a01cb/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java ---------------------------------------------------------------------- diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java index c825bf4..ca85271 100644 --- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java +++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java @@ -58,6 +58,7 @@ import static org.apache.camel.tools.apt.Strings.isNullOrEmpty; @SupportedAnnotationTypes({"org.apache.camel.spi.*"}) @SupportedSourceVersion(SourceVersion.RELEASE_7) public class EndpointAnnotationProcessor extends AbstractProcessor { + public boolean process(Set<? extends TypeElement> annotations, final RoundEnvironment roundEnv) { if (roundEnv.processingOver()) { return true; @@ -150,7 +151,8 @@ public class EndpointAnnotationProcessor extends AbstractProcessor { classDoc = JsonSchemaHelper.sanitizeDescription(classDoc); } - // TODO: add some top details about component scheme name, and documentation + // TODO: include component meta-data such as scheme name, java class, mvn coordinate etc. + // also component summary, eg grab <description> from mvn pom.xml Set<EndpointOption> endpointOptions = new LinkedHashSet<>(); findClassProperties(roundEnv, endpointOptions, classElement, ""); @@ -194,6 +196,7 @@ public class EndpointAnnotationProcessor extends AbstractProcessor { writer.println(" <th>Name</th>"); writer.println(" <th>Type</th>"); writer.println(" <th>Default Value</th>"); + writer.println(" <th>Enum Values</th>"); writer.println(" <th>Description</th>"); writer.println(" </tr>"); for (EndpointOption option : endpointOptions) { @@ -201,6 +204,7 @@ public class EndpointAnnotationProcessor extends AbstractProcessor { writer.println(" <td>" + option.getName() + "</td>"); writer.println(" <td>" + option.getType() + "</td>"); writer.println(" <td>" + option.getDefaultValue() + "</td>"); + writer.println(" <td>" + option.getEnumValuesAsHtml() + "</td>"); writer.println(" <td>" + option.getDocumentationWithNotes() + "</td>"); writer.println(" </tr>"); } @@ -415,11 +419,25 @@ public class EndpointAnnotationProcessor extends AbstractProcessor { return documentation; } + public String getEnumValuesAsHtml() { + CollectionStringBuffer csb = new CollectionStringBuffer("<br/>"); + if (enums != null && enums.size() > 0) { + for (String e : enums) { + csb.append(e); + } + } + return csb.toString(); + } + public String getDocumentationWithNotes() { + StringBuilder sb = new StringBuilder(); + sb.append(documentation); + if (!isNullOrEmpty(defaultValueNote)) { - return documentation + ". Default value notice: " + defaultValueNote; + sb.append(". Default value notice: ").append(defaultValueNote); } - return documentation; + + return sb.toString(); } public boolean isEnumType() {