You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by oa...@apache.org on 2020/11/05 11:40:07 UTC

[camel] branch master updated: CAMEL-15817: Add comment support to srcgen Field (#4569)

This is an automated email from the ASF dual-hosted git repository.

oalsafi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new 63f7d8a  CAMEL-15817: Add comment support to srcgen Field (#4569)
63f7d8a is described below

commit 63f7d8aeaae563632cec39ee7b031ac37b4c4378
Author: Omar Al-Safi <om...@gmail.com>
AuthorDate: Thu Nov 5 12:39:54 2020 +0100

    CAMEL-15817: Add comment support to srcgen Field (#4569)
---
 .../apache/camel/tooling/util/srcgen/Field.java    |  6 ++++
 .../camel/tooling/util/srcgen/JavaClass.java       | 34 ++++++++++++++++++----
 2 files changed, 34 insertions(+), 6 deletions(-)

diff --git a/tooling/camel-tooling-util/src/main/java/org/apache/camel/tooling/util/srcgen/Field.java b/tooling/camel-tooling-util/src/main/java/org/apache/camel/tooling/util/srcgen/Field.java
index 6bf870c..3f4f10c 100644
--- a/tooling/camel-tooling-util/src/main/java/org/apache/camel/tooling/util/srcgen/Field.java
+++ b/tooling/camel-tooling-util/src/main/java/org/apache/camel/tooling/util/srcgen/Field.java
@@ -31,6 +31,7 @@ public class Field {
     boolean isFinal;
     String name;
     GenericType type;
+    String comment;
 
     public Field setPublic() {
         isPublic = true;
@@ -76,6 +77,11 @@ public class Field {
         return this;
     }
 
+    public Field setComment(String comment) {
+        this.comment = comment;
+        return this;
+    }
+
     public String getLiteralInitializer() {
         return literalInit;
     }
diff --git a/tooling/camel-tooling-util/src/main/java/org/apache/camel/tooling/util/srcgen/JavaClass.java b/tooling/camel-tooling-util/src/main/java/org/apache/camel/tooling/util/srcgen/JavaClass.java
index c2698c9..59031ce 100644
--- a/tooling/camel-tooling-util/src/main/java/org/apache/camel/tooling/util/srcgen/JavaClass.java
+++ b/tooling/camel-tooling-util/src/main/java/org/apache/camel/tooling/util/srcgen/JavaClass.java
@@ -572,6 +572,9 @@ public class JavaClass {
         if (field.javadoc.text != null) {
             printJavadoc(sb, indent, field.javadoc);
         }
+        if (field.comment != null) {
+            printComment(sb, indent, field.comment);
+        }
         printAnnotations(sb, indent, field.annotations);
         sb.append(indent);
         if (field.isPublic) {
@@ -596,9 +599,31 @@ public class JavaClass {
     }
 
     private void printJavadoc(StringBuilder sb, String indent, Javadoc doc) {
+        List<String> lines = formatJavadocOrCommentStringAsList(doc.text, indent);
+        if (!lines.isEmpty()) {
+            sb.append(indent).append("/**\n");
+            for (String line : lines) {
+                sb.append(indent).append(" * ").append(line).append("\n");
+            }
+            sb.append(indent).append(" */\n");
+        }
+    }
+
+    private void printComment(StringBuilder stringBuilder, String indent, String comment) {
+        List<String> lines = formatJavadocOrCommentStringAsList(comment, indent);
+        if (!lines.isEmpty()) {
+            for (String line : lines) {
+                stringBuilder.append(indent).append("// ").append(line).append("\n");
+            }
+        }
+    }
+
+    private List<String> formatJavadocOrCommentStringAsList(String text, String indent) {
         List<String> lines = new ArrayList<>();
         int len = 78 - indent.length();
-        String rem = doc.text;
+
+        String rem = text;
+
         if (rem != null) {
             while (rem.length() > 0) {
                 int idx = rem.length() >= len ? rem.substring(0, len).lastIndexOf(' ') : -1;
@@ -622,12 +647,9 @@ public class JavaClass {
                     rem = "";
                 }
             }
-            sb.append(indent).append("/**\n");
-            for (String line : lines) {
-                sb.append(indent).append(" * ").append(line).append("\n");
-            }
-            sb.append(indent).append(" */\n");
         }
+
+        return lines;
     }
 
     private void printAnnotations(StringBuilder sb, String indent, List<Annotation> anns) {