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() {

Reply via email to