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 59cb487ef8..bc194705cb 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/codegen/AbstractGenerator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/AbstractGenerator.java @@ -70,6 +70,7 @@ abstract class AbstractGenerator implements Generator { boolean useCatalogVersionProvider = false; boolean generateRoutines = true; boolean generateSequences = true; + boolean generateSequenceFlags = true; boolean generateUDTs = true; boolean generateTables = true; boolean generateEmbeddables = true; @@ -335,6 +336,16 @@ abstract class AbstractGenerator implements Generator { this.generateSequences = generateSequences; } + @Override + public boolean generateSequenceFlags() { + return generateSequenceFlags; + } + + @Override + public void setGenerateSequenceFlags(boolean generateSequenceFlags) { + this.generateSequenceFlags = generateSequenceFlags; + } + @Override public boolean generateUDTs() { return generateUDTs; 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 1cfbea3006..601dda8a9f 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/codegen/GenerationTool.java +++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/GenerationTool.java @@ -653,6 +653,8 @@ public class GenerationTool { generator.setGenerateRoutines(g.getGenerate().isRoutines()); if (g.getGenerate().isSequences() != null) generator.setGenerateSequences(g.getGenerate().isSequences()); + if (g.getGenerate().isSequenceFlags() != null) + generator.setGenerateSequenceFlags(g.getGenerate().isSequenceFlags()); if (g.getGenerate().isUdts() != null) generator.setGenerateUDTs(g.getGenerate().isUdts()); if (g.getGenerate().isTables() != null) 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 1fff111744..737d4b4353 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/codegen/Generator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/Generator.java @@ -182,6 +182,16 @@ public interface Generator { */ void setGenerateSequences(boolean generateSequences); + /** + * Whether sequence flags should be generated. + */ + boolean generateSequenceFlags(); + + /** + * Whether sequence flags should be generated. + */ + void setGenerateSequenceFlags(boolean generateSequenceFlags); + /** * Whether UDTs should be generated. */ diff --git a/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java b/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java index 49919f41e9..8a043549d3 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java @@ -357,6 +357,7 @@ public class JavaGenerator extends AbstractGenerator { + ((!generateRecords && generateDaos) ? " (forced to true because of )" : "")); log.info(" routines", generateRoutines()); log.info(" sequences", generateSequences()); + log.info(" sequenceFlags", generateSequenceFlags()); log.info(" table-valued functions", generateTableValuedFunctions()); log.info(" tables", generateTables() + ((!generateTables && generateRecords) ? " (forced to true because of )" : @@ -4623,6 +4624,8 @@ public class JavaGenerator extends AbstractGenerator { if (!printDeprecationIfUnknownType(out, seqTypeFull)) out.tab(1).javadoc("The sequence %s", sequence.getQualifiedOutputName()); + boolean flags = generateSequenceFlags(); + if (scala) out.tab(1).println("val %s : %s[%s] = %s.createSequence(\"%s\", %s, %s, %s, %s, %s, %s, %s, %s)", seqId, @@ -4632,12 +4635,12 @@ public class JavaGenerator extends AbstractGenerator { seqName, schemaId, typeRef, - sequence.getStartWith() != null ? sequence.getStartWith() + "L" : "null", - sequence.getIncrementBy() != null ? sequence.getIncrementBy() + "L" : "null", - sequence.getMinvalue() != null ? sequence.getMinvalue() + "L" : "null", - sequence.getMaxvalue() != null ? sequence.getMaxvalue() + "L" : "null", - sequence.getCycle(), - sequence.getCache() != null ? sequence.getCache() + "L" : "null"); + flags && sequence.getStartWith() != null ? sequence.getStartWith() + "L" : "null", + flags && sequence.getIncrementBy() != null ? sequence.getIncrementBy() + "L" : "null", + flags && sequence.getMinvalue() != null ? sequence.getMinvalue() + "L" : "null", + flags && sequence.getMaxvalue() != null ? sequence.getMaxvalue() + "L" : "null", + flags && sequence.getCycle(), + flags && sequence.getCache() != null ? sequence.getCache() + "L" : "null"); else out.tab(1).println("public static final %s<%s> %s = %s.<%s> createSequence(\"%s\", %s, %s, %s, %s, %s, %s, %s, %s);", Sequence.class, @@ -4648,12 +4651,12 @@ public class JavaGenerator extends AbstractGenerator { seqName, schemaId, typeRef, - sequence.getStartWith() != null ? sequence.getStartWith() + "L" : "null", - sequence.getIncrementBy() != null ? sequence.getIncrementBy() + "L" : "null", - sequence.getMinvalue() != null ? sequence.getMinvalue() + "L" : "null", - sequence.getMaxvalue() != null ? sequence.getMaxvalue() + "L" : "null", - sequence.getCycle(), - sequence.getCache() != null ? sequence.getCache() + "L" : "null" + flags && sequence.getStartWith() != null ? sequence.getStartWith() + "L" : "null", + flags && sequence.getIncrementBy() != null ? sequence.getIncrementBy() + "L" : "null", + flags && sequence.getMinvalue() != null ? sequence.getMinvalue() + "L" : "null", + flags && sequence.getMaxvalue() != null ? sequence.getMaxvalue() + "L" : "null", + flags && sequence.getCycle(), + flags && sequence.getCache() != null ? sequence.getCache() + "L" : "null" ); } 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 419e7a3709..b49fa213a1 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 @@ -35,6 +35,8 @@ public class Generate implements Serializable, XMLAppendable @XmlElement(defaultValue = "true") protected Boolean relations = true; @XmlElement(defaultValue = "true") + protected Boolean sequenceFlags = true; + @XmlElement(defaultValue = "true") protected Boolean implicitJoinPathsToOne = true; @XmlElement(defaultValue = "true") protected Boolean deprecated = true; @@ -215,6 +217,30 @@ public class Generate implements Serializable, XMLAppendable this.relations = value; } + /** + * Sequence flags should be generated and used. + * + * @return + * possible object is + * {@link Boolean } + * + */ + public Boolean isSequenceFlags() { + return sequenceFlags; + } + + /** + * Sets the value of the sequenceFlags property. + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setSequenceFlags(Boolean value) { + this.sequenceFlags = value; + } + /** * Generate implicit join path constructors on generated tables for outgoing foreign key relationships (to-one relationships) * @@ -1758,6 +1784,11 @@ public class Generate implements Serializable, XMLAppendable return this; } + public Generate withSequenceFlags(Boolean value) { + setSequenceFlags(value); + return this; + } + public Generate withImplicitJoinPathsToOne(Boolean value) { setImplicitJoinPathsToOne(value); return this; @@ -2107,6 +2138,7 @@ public class Generate implements Serializable, XMLAppendable public final void appendTo(XMLBuilder builder) { builder.append("indexes", indexes); builder.append("relations", relations); + builder.append("sequenceFlags", sequenceFlags); builder.append("implicitJoinPathsToOne", implicitJoinPathsToOne); builder.append("deprecated", deprecated); builder.append("deprecationOnUnknownTypes", deprecationOnUnknownTypes); @@ -2210,6 +2242,15 @@ public class Generate implements Serializable, XMLAppendable return false; } } + if (sequenceFlags == null) { + if (other.sequenceFlags!= null) { + return false; + } + } else { + if (!sequenceFlags.equals(other.sequenceFlags)) { + return false; + } + } if (implicitJoinPathsToOne == null) { if (other.implicitJoinPathsToOne!= null) { return false; @@ -2795,6 +2836,7 @@ public class Generate implements Serializable, XMLAppendable int result = 1; result = ((prime*result)+((indexes == null)? 0 :indexes.hashCode())); result = ((prime*result)+((relations == null)? 0 :relations.hashCode())); + result = ((prime*result)+((sequenceFlags == null)? 0 :sequenceFlags.hashCode())); result = ((prime*result)+((implicitJoinPathsToOne == null)? 0 :implicitJoinPathsToOne.hashCode())); result = ((prime*result)+((deprecated == null)? 0 :deprecated.hashCode())); result = ((prime*result)+((deprecationOnUnknownTypes == null)? 0 :deprecationOnUnknownTypes.hashCode())); diff --git a/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.13.0.xsd b/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.13.0.xsd index 5ca8e966c0..aa8a4ed30e 100644 --- a/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.13.0.xsd +++ b/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.13.0.xsd @@ -1096,6 +1096,10 @@ type. If provided, both "includeExpression" and "includeTypes" must match.]]> + + + +