From eec46ca0835bb5e5f433ad76adc75ed31fabb0bc Mon Sep 17 00:00:00 2001 From: lukaseder Date: Tue, 9 Jan 2018 15:55:41 +0100 Subject: [PATCH] [#7016] Add option to disable the generation of all Javadoc --- .../java/org/jooq/util/AbstractGenerator.java | 11 +++++++ .../java/org/jooq/util/GenerationTool.java | 2 ++ .../main/java/org/jooq/util/Generator.java | 10 ++++++ .../java/org/jooq/util/JavaGenerator.java | 21 +++++++----- .../main/java/org/jooq/util/JavaWriter.java | 33 ++++++++++++------- .../java/org/jooq/util/jaxb/Generate.java | 31 +++++++++++++++++ .../resources/xsd/jooq-codegen-3.11.0.xsd | 4 +++ 7 files changed, 91 insertions(+), 21 deletions(-) diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/AbstractGenerator.java b/jOOQ-codegen/src/main/java/org/jooq/util/AbstractGenerator.java index 502faab962..e359c1405a 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/util/AbstractGenerator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/util/AbstractGenerator.java @@ -94,6 +94,7 @@ abstract class AbstractGenerator implements Generator { boolean generateGlobalQueueReferences = true; boolean generateGlobalLinkReferences = true; boolean generateGlobalKeyReferences = true; + boolean generateJavadoc = true; boolean generateComments = true; boolean generateCommentsOnAttributes = true; boolean generateCommentsOnCatalogs = true; @@ -570,6 +571,16 @@ abstract class AbstractGenerator implements Generator { this.generateKeys = keys; } + @Override + public boolean generateJavadoc() { + return generateJavadoc; + } + + @Override + public void setGenerateJavadoc(boolean javadoc) { + this.generateJavadoc = javadoc; + } + @Override public boolean generateComments() { return generateComments; diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/GenerationTool.java b/jOOQ-codegen/src/main/java/org/jooq/util/GenerationTool.java index ce2b861bee..4f6f877d10 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/util/GenerationTool.java +++ b/jOOQ-codegen/src/main/java/org/jooq/util/GenerationTool.java @@ -642,6 +642,8 @@ public class GenerationTool { generator.setGenerateGlobalLinkReferences(g.getGenerate().isGlobalLinkReferences()); if (g.getGenerate().isGlobalKeyReferences() != null) generator.setGenerateGlobalKeyReferences(g.getGenerate().isGlobalKeyReferences()); + if (g.getGenerate().isJavadoc() != null) + generator.setGenerateJavadoc(g.getGenerate().isJavadoc()); if (g.getGenerate().isComments() != null) generator.setGenerateComments(g.getGenerate().isComments()); if (g.getGenerate().isCommentsOnAttributes() != null) diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/Generator.java b/jOOQ-codegen/src/main/java/org/jooq/util/Generator.java index 7a37368be8..6f2ae7f0cc 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/util/Generator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/util/Generator.java @@ -393,6 +393,16 @@ public interface Generator { */ void setGenerateGlobalKeyReferences(boolean globalKeyReferences); + /** + * Whether any Javadoc should be generated. + */ + boolean generateJavadoc(); + + /** + * Whether any Javadoc should be generated. + */ + void setGenerateJavadoc(boolean javadoc); + /** * Whether any SQL comments should be generated as Javadoc. */ diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java b/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java index 992967e556..d205325c33 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java @@ -309,6 +309,7 @@ public class JavaGenerator extends AbstractGenerator { log.info(" interfaces", generateInterfaces() + ((!generateInterfaces && generateImmutableInterfaces) ? " (forced to true because of )" : "")); log.info(" interfaces (immutable)", generateInterfaces()); + log.info(" javadoc", generateJavadoc()); log.info(" keys", generateKeys()); log.info(" links", generateLinks()); log.info(" pojos", generatePojos() @@ -5482,16 +5483,18 @@ public class JavaGenerator extends AbstractGenerator { } protected void printClassJavadoc(JavaWriter out, String comment) { - out.println("/**"); + if (generateJavadoc()) { + out.println("/**"); - if (comment != null && comment.length() > 0) { - printJavadocParagraph(out, comment, ""); - } - else { - out.println(" * This class is generated by jOOQ."); - } + if (comment != null && comment.length() > 0) { + printJavadocParagraph(out, comment, ""); + } + else { + out.println(" * This class is generated by jOOQ."); + } - out.println(" */"); + out.println(" */"); + } } protected void printClassAnnotations(JavaWriter out, SchemaDefinition schema) { @@ -6140,7 +6143,7 @@ public class JavaGenerator extends AbstractGenerator { // [#3880] Users may need to call this method protected JavaWriter newJavaWriter(File file) { file = fixSuffix(file); - return new JavaWriter(file, generateFullyQualifiedTypes(), targetEncoding); + return new JavaWriter(file, generateFullyQualifiedTypes(), targetEncoding, generateJavadoc()); } protected File getFile(Definition definition) { diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/JavaWriter.java b/jOOQ-codegen/src/main/java/org/jooq/util/JavaWriter.java index 3279d00455..f584172960 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/util/JavaWriter.java +++ b/jOOQ-codegen/src/main/java/org/jooq/util/JavaWriter.java @@ -31,6 +31,7 @@ public class JavaWriter extends GeneratorWriter { private static final String IMPORT_STATEMENT = "__IMPORT_STATEMENT__"; private final Pattern fullyQualifiedTypes; + private final boolean javadoc; private final Set qualifiedTypes = new TreeSet(); private final Map unqualifiedTypes = new TreeMap(); private final String className; @@ -42,12 +43,17 @@ public class JavaWriter extends GeneratorWriter { } public JavaWriter(File file, String fullyQualifiedTypes, String encoding) { + this(file, fullyQualifiedTypes, encoding, true); + } + + public JavaWriter(File file, String fullyQualifiedTypes, String encoding, boolean javadoc) { super(file, encoding); this.className = file.getName().replaceAll("\\.(java|scala)$", ""); this.isJava = file.getName().endsWith(".java"); this.isScala = file.getName().endsWith(".scala"); this.fullyQualifiedTypes = fullyQualifiedTypes == null ? null : Pattern.compile(fullyQualifiedTypes); + this.javadoc = javadoc; if (isJava) tabString(" "); @@ -66,19 +72,22 @@ public class JavaWriter extends GeneratorWriter { } public JavaWriter javadoc(String string, Object... args) { - final int t = tab(); - - // [#3450] [#4575] Must not print */ inside Javadoc - String escaped = escapeJavadoc(string); - Object[] escapedArgs = Arrays.copyOf(args, args.length); - for (int i = 0; i < escapedArgs.length; i++) - if (escapedArgs[i] instanceof String) - escapedArgs[i] = escapeJavadoc((String) escapedArgs[i]); - + int t = tab(); tab(t).println(); - tab(t).println("/**"); - tab(t).println(" * " + escaped, escapedArgs); - tab(t).println(" */"); + + if (javadoc) { + + // [#3450] [#4575] Must not print */ inside Javadoc + String escaped = escapeJavadoc(string); + Object[] escapedArgs = Arrays.copyOf(args, args.length); + for (int i = 0; i < escapedArgs.length; i++) + if (escapedArgs[i] instanceof String) + escapedArgs[i] = escapeJavadoc((String) escapedArgs[i]); + + tab(t).println("/**"); + tab(t).println(" * " + escaped, escapedArgs); + tab(t).println(" */"); + } return this; } diff --git a/jOOQ-meta/src/main/java/org/jooq/util/jaxb/Generate.java b/jOOQ-meta/src/main/java/org/jooq/util/jaxb/Generate.java index 1adda9ff59..a8cca43d33 100644 --- a/jOOQ-meta/src/main/java/org/jooq/util/jaxb/Generate.java +++ b/jOOQ-meta/src/main/java/org/jooq/util/jaxb/Generate.java @@ -107,6 +107,8 @@ public class Generate implements Serializable @XmlElement(defaultValue = "true") protected Boolean globalKeyReferences = true; @XmlElement(defaultValue = "true") + protected Boolean javadoc = true; + @XmlElement(defaultValue = "true") protected Boolean comments = true; @XmlElement(defaultValue = "true") protected Boolean commentsOnCatalogs = true; @@ -1020,6 +1022,30 @@ public class Generate implements Serializable this.globalKeyReferences = value; } + /** + * Turn off generation of Javadoc on all objects. + * + * @return + * possible object is + * {@link Boolean } + * + */ + public Boolean isJavadoc() { + return javadoc; + } + + /** + * Sets the value of the javadoc property. + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setJavadoc(Boolean value) { + this.javadoc = value; + } + /** * Turn off generation of all SQL comments as Javadoc on all objects. * @@ -1754,6 +1780,11 @@ public class Generate implements Serializable return this; } + public Generate withJavadoc(Boolean value) { + setJavadoc(value); + return this; + } + public Generate withComments(Boolean value) { setComments(value); return this; diff --git a/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.11.0.xsd b/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.11.0.xsd index f1dd7e8c82..93a9ac1d6b 100644 --- a/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.11.0.xsd +++ b/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.11.0.xsd @@ -968,6 +968,10 @@ jOOQ version used for source code]]> + + + +