[#7016] Add option to disable the generation of all Javadoc

This commit is contained in:
lukaseder 2018-01-09 15:55:41 +01:00
parent 06f14b1f91
commit eec46ca083
7 changed files with 91 additions and 21 deletions

View File

@ -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;

View File

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

View File

@ -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.
*/

View File

@ -309,6 +309,7 @@ public class JavaGenerator extends AbstractGenerator {
log.info(" interfaces", generateInterfaces()
+ ((!generateInterfaces && generateImmutableInterfaces) ? " (forced to true because of <immutableInterfaces/>)" : ""));
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) {

View File

@ -31,6 +31,7 @@ public class JavaWriter extends GeneratorWriter<JavaWriter> {
private static final String IMPORT_STATEMENT = "__IMPORT_STATEMENT__";
private final Pattern fullyQualifiedTypes;
private final boolean javadoc;
private final Set<String> qualifiedTypes = new TreeSet<String>();
private final Map<String, String> unqualifiedTypes = new TreeMap<String, String>();
private final String className;
@ -42,12 +43,17 @@ public class JavaWriter extends GeneratorWriter<JavaWriter> {
}
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<JavaWriter> {
}
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;
}

View File

@ -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;

View File

@ -968,6 +968,10 @@ jOOQ version used for source code]]></jxb:javadoc></jxb:property></appinfo></ann
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Turn off generation of global key references.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="javadoc" type="boolean" default="true" minOccurs="0" maxOccurs="1">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Turn off generation of Javadoc on all objects.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>
<element name="comments" type="boolean" default="true" minOccurs="0" maxOccurs="1">
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[Turn off generation of all SQL comments as Javadoc on all objects.]]></jxb:javadoc></jxb:property></appinfo></annotation>
</element>