diff --git a/jOOQ-codegen/src/main/java/org/jooq/codegen/AbstractGenerator.java b/jOOQ-codegen/src/main/java/org/jooq/codegen/AbstractGenerator.java index 1d0b1a8380..ca611d83b5 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/codegen/AbstractGenerator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/AbstractGenerator.java @@ -51,6 +51,7 @@ import java.util.stream.Stream; import org.jooq.meta.Database; import org.jooq.meta.jaxb.GeneratedAnnotationType; import org.jooq.meta.jaxb.GeneratedSerialVersionUID; +import org.jooq.meta.jaxb.GeneratedTextBlocks; import org.jooq.meta.jaxb.VisibilityModifier; import org.jooq.tools.JooqLogger; @@ -168,6 +169,7 @@ abstract class AbstractGenerator implements Generator { String generateNewline = "\n"; String generateIndentation; int generatePrintMarginForBlockComment = 80; + GeneratedTextBlocks generateTextBlocks = GeneratedTextBlocks.DETECT_FROM_JDK; protected GeneratorStrategyWrapper strategy; protected String targetEncoding = "UTF-8"; @@ -1337,6 +1339,16 @@ abstract class AbstractGenerator implements Generator { this.generatePrintMarginForBlockComment = printMarginForBlockComment; } + @Override + public GeneratedTextBlocks generateTextBlocks() { + return generateTextBlocks; + } + + @Override + public void setGenerateTextBlocks(GeneratedTextBlocks textBlocks) { + this.generateTextBlocks = textBlocks; + } + // ---- @Override diff --git a/jOOQ-codegen/src/main/java/org/jooq/codegen/GenerationTool.java b/jOOQ-codegen/src/main/java/org/jooq/codegen/GenerationTool.java index e49a60decb..756c17fa39 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/codegen/GenerationTool.java +++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/GenerationTool.java @@ -914,6 +914,8 @@ public class GenerationTool { generator.setGenerateIndentation(g.getGenerate().getIndentation()); if (g.getGenerate().getPrintMarginForBlockComment() != null) generator.setGeneratePrintMarginForBlockComment(g.getGenerate().getPrintMarginForBlockComment()); + if (g.getGenerate().getTextBlocks() != null) + generator.setGenerateTextBlocks(g.getGenerate().getTextBlocks()); if (!isBlank(d.getSchemaVersionProvider())) diff --git a/jOOQ-codegen/src/main/java/org/jooq/codegen/Generator.java b/jOOQ-codegen/src/main/java/org/jooq/codegen/Generator.java index b4eda1a9b5..6dcbeff481 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/codegen/Generator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/Generator.java @@ -53,6 +53,7 @@ import org.jooq.meta.ForeignKeyDefinition; import org.jooq.meta.TableDefinition; import org.jooq.meta.jaxb.GeneratedAnnotationType; import org.jooq.meta.jaxb.GeneratedSerialVersionUID; +import org.jooq.meta.jaxb.GeneratedTextBlocks; import org.jooq.meta.jaxb.VisibilityModifier; import org.jooq.types.Interval; @@ -1254,6 +1255,16 @@ public interface Generator { */ void setGeneratePrintMarginForBlockComment(int printMarginForBlockComment); + /** + * Whether to generate String in text block format. + */ + GeneratedTextBlocks generateTextBlocks(); + + /** + * Whether to generate String in text block format. + */ + void setGenerateTextBlocks(GeneratedTextBlocks textBlocks); + /** * The target directory */ diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/Generate.java b/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/Generate.java index 22e7d9cafc..40a0a8af46 100644 --- a/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/Generate.java +++ b/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/Generate.java @@ -237,6 +237,9 @@ public class Generate implements Serializable, XMLAppendable protected String indentation; @XmlElement(defaultValue = "80") protected Integer printMarginForBlockComment = 80; + @XmlElement(defaultValue = "DETECT_FROM_JDK") + @XmlSchemaType(name = "string") + protected GeneratedTextBlocks textBlocks = GeneratedTextBlocks.DETECT_FROM_JDK; /** * Generate index information. @@ -2634,6 +2637,22 @@ public class Generate implements Serializable, XMLAppendable this.printMarginForBlockComment = value; } + /** + * Whether to generate String in text block format. + * + */ + public GeneratedTextBlocks getTextBlocks() { + return textBlocks; + } + + /** + * Whether to generate String in text block format. + * + */ + public void setTextBlocks(GeneratedTextBlocks value) { + this.textBlocks = value; + } + public Generate withIndexes(Boolean value) { setIndexes(value); return this; @@ -3188,6 +3207,15 @@ public class Generate implements Serializable, XMLAppendable return this; } + /** + * Whether to generate String in text block format. + * + */ + public Generate withTextBlocks(GeneratedTextBlocks value) { + setTextBlocks(value); + return this; + } + @Override public final void appendTo(XMLBuilder builder) { builder.append("indexes", indexes); @@ -3291,6 +3319,7 @@ public class Generate implements Serializable, XMLAppendable builder.append("newline", newline); builder.append("indentation", indentation); builder.append("printMarginForBlockComment", printMarginForBlockComment); + builder.append("textBlocks", textBlocks); } @Override @@ -4221,6 +4250,15 @@ public class Generate implements Serializable, XMLAppendable return false; } } + if (textBlocks == null) { + if (other.textBlocks!= null) { + return false; + } + } else { + if (!textBlocks.equals(other.textBlocks)) { + return false; + } + } return true; } @@ -4329,6 +4367,7 @@ public class Generate implements Serializable, XMLAppendable result = ((prime*result)+((newline == null)? 0 :newline.hashCode())); result = ((prime*result)+((indentation == null)? 0 :indentation.hashCode())); result = ((prime*result)+((printMarginForBlockComment == null)? 0 :printMarginForBlockComment.hashCode())); + result = ((prime*result)+((textBlocks == null)? 0 :textBlocks.hashCode())); return result; } diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/GeneratedTextBlocks.java b/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/GeneratedTextBlocks.java new file mode 100644 index 0000000000..661ba02825 --- /dev/null +++ b/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/GeneratedTextBlocks.java @@ -0,0 +1,39 @@ + +package org.jooq.meta.jaxb; + +import jakarta.xml.bind.annotation.XmlEnum; +import jakarta.xml.bind.annotation.XmlType; + + +/** + *

Java class for GeneratedTextBlocks. + * + *

The following schema fragment specifies the expected content contained within this class. + *

+ * <simpleType name="GeneratedTextBlocks">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <enumeration value="DETECT_FROM_JDK"/>
+ *     <enumeration value="ON"/>
+ *     <enumeration value="OFF"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "GeneratedTextBlocks") +@XmlEnum +public enum GeneratedTextBlocks { + + DETECT_FROM_JDK, + ON, + OFF; + + public String value() { + return name(); + } + + public static GeneratedTextBlocks fromValue(String v) { + return valueOf(v); + } + +} diff --git a/jOOQ-meta/src/main/resources/org/jooq/meta/xsd/jooq-codegen-3.17.0.xsd b/jOOQ-meta/src/main/resources/org/jooq/meta/xsd/jooq-codegen-3.17.0.xsd index efab7439db..8230509290 100644 --- a/jOOQ-meta/src/main/resources/org/jooq/meta/xsd/jooq-codegen-3.17.0.xsd +++ b/jOOQ-meta/src/main/resources/org/jooq/meta/xsd/jooq-codegen-3.17.0.xsd @@ -2278,6 +2278,10 @@ This flag is ignored in the commercial Java 6 distribution of jOOQ 3.9+ ]]> 0.]]> + + + + @@ -2362,6 +2366,14 @@ e.g. org.jooq.generated.schema1, org.jooq.generated.schema2]]> + + + + + + + +