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 <omars...@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) {