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 4e56b2f87e..7f10fdeac3 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/util/AbstractGenerator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/util/AbstractGenerator.java @@ -52,22 +52,26 @@ import java.util.Set; */ abstract class AbstractGenerator implements Generator { - boolean generateDeprecated = true; - boolean generateRelations = true; - boolean generateInstanceFields = true; - boolean generateGeneratedAnnotation = true; - boolean useSchemaVersionProvider = false; - boolean generateRecords = true; - boolean generatePojos = false; - boolean generatePojosEqualsAndHashCode = false; - boolean generateImmutablePojos = false; - boolean generateInterfaces = false; - boolean generateDaos = false; - boolean generateJPAAnnotations = false; - boolean generateValidationAnnotations = false; - boolean generateGlobalObjectReferences = true; - boolean fluentSetters = false; - String fullyQualifiedTypes = ""; + boolean generateDeprecated = true; + boolean generateRelations = true; + boolean generateInstanceFields = true; + boolean generateGeneratedAnnotation = true; + boolean useSchemaVersionProvider = false; + boolean generateRecords = true; + boolean generatePojos = false; + boolean generatePojosEqualsAndHashCode = false; + boolean generateImmutablePojos = false; + boolean generateInterfaces = false; + boolean generateDaos = false; + boolean generateJPAAnnotations = false; + boolean generateValidationAnnotations = false; + boolean generateGlobalObjectReferences = true; + boolean generateGlobalRoutineReferences = true; + boolean generateGlobalSequenceReferences = true; + boolean generateGlobalTableReferences = true; + boolean generateGlobalUDTReferences = true; + boolean fluentSetters = false; + String fullyQualifiedTypes = ""; protected GeneratorStrategyWrapper strategy; @@ -220,6 +224,46 @@ abstract class AbstractGenerator implements Generator { this.generateGlobalObjectReferences = generateGlobalObjectReferences; } + @Override + public boolean generateGlobalRoutineReferences() { + return generateGlobalRoutineReferences; + } + + @Override + public void setGenerateGlobalRoutineReferences(boolean generateGlobalRoutineReferences) { + this.generateGlobalRoutineReferences = generateGlobalRoutineReferences; + } + + @Override + public boolean generateGlobalSequenceReferences() { + return generateGlobalSequenceReferences; + } + + @Override + public void setGenerateGlobalSequenceReferences(boolean generateGlobalSequenceReferences) { + this.generateGlobalSequenceReferences = generateGlobalSequenceReferences; + } + + @Override + public boolean generateGlobalTableReferences() { + return generateGlobalTableReferences; + } + + @Override + public void setGenerateGlobalTableReferences(boolean generateGlobalTableReferences) { + this.generateGlobalTableReferences = generateGlobalTableReferences; + } + + @Override + public boolean generateGlobalUDTReferences() { + return generateGlobalUDTReferences; + } + + @Override + public void setGenerateGlobalUDTReferences(boolean generateGlobalUDTReferences) { + this.generateGlobalUDTReferences = generateGlobalUDTReferences; + } + @Override public boolean fluentSetters() { return fluentSetters; 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 f732efc395..b13b2e92ae 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/util/GenerationTool.java +++ b/jOOQ-codegen/src/main/java/org/jooq/util/GenerationTool.java @@ -393,6 +393,14 @@ public class GenerationTool { generator.setGenerateValidationAnnotations(g.getGenerate().isValidationAnnotations()); if (g.getGenerate().isGlobalObjectReferences() != null) generator.setGenerateGlobalObjectReferences(g.getGenerate().isGlobalObjectReferences()); + if (g.getGenerate().isGlobalRoutineReferences() != null) + generator.setGenerateGlobalRoutineReferences(g.getGenerate().isGlobalRoutineReferences()); + if (g.getGenerate().isGlobalSequenceReferences() != null) + generator.setGenerateGlobalSequenceReferences(g.getGenerate().isGlobalSequenceReferences()); + if (g.getGenerate().isGlobalTableReferences() != null) + generator.setGenerateGlobalTableReferences(g.getGenerate().isGlobalTableReferences()); + if (g.getGenerate().isGlobalUDTReferences() != null) + generator.setGenerateGlobalUDTReferences(g.getGenerate().isGlobalUDTReferences()); if (g.getGenerate().isFluentSetters() != null) generator.setFluentSetters(g.getGenerate().isFluentSetters()); if (g.getGenerate().isPojosEqualsAndHashCode() != 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 eacf2aa96e..2b8d5661f0 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/util/Generator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/util/Generator.java @@ -192,6 +192,46 @@ public interface Generator { */ void setGenerateGlobalObjectReferences(boolean generateGlobalObjectReferences); + /** + * Whether global routine references should be generated + */ + boolean generateGlobalRoutineReferences(); + + /** + * Whether global routine references should be generated + */ + void setGenerateGlobalRoutineReferences(boolean globalRoutineReferences); + + /** + * Whether global sequence references should be generated + */ + boolean generateGlobalSequenceReferences(); + + /** + * Whether global sequence references should be generated + */ + void setGenerateGlobalSequenceReferences(boolean globalSequenceReferences); + + /** + * Whether global table references should be generated + */ + boolean generateGlobalTableReferences(); + + /** + * Whether global table references should be generated + */ + void setGenerateGlobalTableReferences(boolean globalTableReferences); + + /** + * Whether global UDT references should be generated + */ + boolean generateGlobalUDTReferences(); + + /** + * Whether global UDT references should be generated + */ + void setGenerateGlobalUDTReferences(boolean globalUDTReferences); + /** * Whether fluent setters should be generated */ 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 436469b888..fb50fbaa1f 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java @@ -282,7 +282,7 @@ public class JavaGenerator extends AbstractGenerator { // ---------------------------------------------------------------------- generateSchema(schema); - if (generateGlobalObjectReferences() && database.getSequences(schema).size() > 0) { + if (generateGlobalObjectReferences() && generateGlobalSequenceReferences() && database.getSequences(schema).size() > 0) { generateSequences(schema); } @@ -298,7 +298,7 @@ public class JavaGenerator extends AbstractGenerator { generateDaos(schema); } - if (generateGlobalObjectReferences() && database.getTables(schema).size() > 0) { + if (generateGlobalObjectReferences() && generateGlobalTableReferences() && database.getTables(schema).size() > 0) { generateTableReferences(schema); } @@ -334,7 +334,7 @@ public class JavaGenerator extends AbstractGenerator { generateUDTRoutines(schema); } - if (generateGlobalObjectReferences() && database.getUDTs(schema).size() > 0) { + if (generateGlobalObjectReferences() && generateGlobalUDTReferences() && database.getUDTs(schema).size() > 0) { generateUDTReferences(schema); } @@ -346,7 +346,7 @@ public class JavaGenerator extends AbstractGenerator { generateEnums(schema); } - if (database.getRoutines(schema).size() > 0 || hasTableValuedFunctions(schema)) { + if (generateGlobalObjectReferences() && generateGlobalRoutineReferences() && database.getRoutines(schema).size() > 0 || hasTableValuedFunctions(schema)) { generateRoutines(schema); } @@ -2367,7 +2367,7 @@ public class JavaGenerator extends AbstractGenerator { out.tab(1).println("}"); // [#2255] Avoid referencing sequence literals, if they're not generated - if (generateGlobalObjectReferences()) { + if (generateGlobalObjectReferences() && generateGlobalSequenceReferences()) { printSchemaReferences(out, database.getSequences(schema), Sequence.class, true); } diff --git a/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.6.0.xsd b/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.6.0.xsd index d3aa4fa165..7eb18991ef 100644 --- a/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.6.0.xsd +++ b/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.6.0.xsd @@ -677,19 +677,47 @@ + + + + + + + + + + + +