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