From 602a200420f43ff530f60bc7fddc68b74ad9ef5e Mon Sep 17 00:00:00 2001 From: lukaseder Date: Thu, 31 Dec 2015 12:29:26 +0100 Subject: [PATCH] [#4879] Add generateGlobalCatalogReferences() and generateGlobalSchemaReferences() flags to code generator --- .../java/org/jooq/util/AbstractGenerator.java | 22 +++++++++++++++++++ .../java/org/jooq/util/GenerationTool.java | 4 ++++ .../main/java/org/jooq/util/Generator.java | 20 +++++++++++++++++ .../java/org/jooq/util/JavaGenerator.java | 6 ++--- .../main/resources/xsd/jooq-codegen-3.8.0.xsd | 12 +++++++++- 5 files changed, 60 insertions(+), 4 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 1e349ca52c..6fa984841b 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/util/AbstractGenerator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/util/AbstractGenerator.java @@ -69,6 +69,8 @@ abstract class AbstractGenerator implements Generator { boolean generateValidationAnnotations = false; boolean generateSpringAnnotations = false; boolean generateGlobalObjectReferences = true; + boolean generateGlobalCatalogReferences = true; + boolean generateGlobalSchemaReferences = true; boolean generateGlobalRoutineReferences = true; boolean generateGlobalSequenceReferences = true; boolean generateGlobalTableReferences = true; @@ -268,6 +270,26 @@ abstract class AbstractGenerator implements Generator { this.generateGlobalObjectReferences = generateGlobalObjectReferences; } + @Override + public boolean generateGlobalCatalogReferences() { + return generateGlobalCatalogReferences; + } + + @Override + public void setGenerateGlobalCatalogReferences(boolean globalCatalogReferences) { + this.generateGlobalCatalogReferences = globalCatalogReferences; + } + + @Override + public boolean generateGlobalSchemaReferences() { + return generateGlobalSchemaReferences; + } + + @Override + public void setGenerateGlobalSchemaReferences(boolean globalSchemaReferences) { + this.generateGlobalSchemaReferences = globalSchemaReferences; + } + @Override public boolean generateGlobalRoutineReferences() { return generateGlobalRoutineReferences; 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 1cf9367e8f..2bcf69e8d3 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/util/GenerationTool.java +++ b/jOOQ-codegen/src/main/java/org/jooq/util/GenerationTool.java @@ -424,6 +424,10 @@ public class GenerationTool { generator.setGenerateSpringAnnotations(g.getGenerate().isSpringAnnotations()); if (g.getGenerate().isGlobalObjectReferences() != null) generator.setGenerateGlobalObjectReferences(g.getGenerate().isGlobalObjectReferences()); + if (g.getGenerate().isGlobalCatalogReferences() != null) + generator.setGenerateGlobalCatalogReferences(g.getGenerate().isGlobalCatalogReferences()); + if (g.getGenerate().isGlobalSchemaReferences() != null) + generator.setGenerateGlobalSchemaReferences(g.getGenerate().isGlobalSchemaReferences()); if (g.getGenerate().isGlobalRoutineReferences() != null) generator.setGenerateGlobalRoutineReferences(g.getGenerate().isGlobalRoutineReferences()); if (g.getGenerate().isGlobalSequenceReferences() != 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 dbdc685f8f..4d9a57bd0f 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/util/Generator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/util/Generator.java @@ -216,6 +216,26 @@ public interface Generator { */ void setGenerateGlobalObjectReferences(boolean generateGlobalObjectReferences); + /** + * Whether global catalog references should be generated + */ + boolean generateGlobalCatalogReferences(); + + /** + * Whether global catalog references should be generated + */ + void setGenerateGlobalCatalogReferences(boolean globalCatalogReferences); + + /** + * Whether global schema references should be generated + */ + boolean generateGlobalSchemaReferences(); + + /** + * Whether global schema references should be generated + */ + void setGenerateGlobalSchemaReferences(boolean globalSchemaReferences); + /** * Whether global routine references 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 ee29660830..a1194ba361 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java @@ -3013,8 +3013,8 @@ public class JavaGenerator extends AbstractGenerator { printClassAnnotations(out, schema); if (scala) { - out.println("class %s(alias : String, aliased : %s[%s], parameters : Array[ %s[_] ]) extends %s[%s](alias, null, aliased, parameters, \"%s\")[[before= with ][separator= with ][%s]] {", - className, Table.class, recordType, Field.class, TableImpl.class, recordType, escapeString(comment), interfaces); + out.println("class %s(alias : String, aliased : %s[%s], parameters : Array[ %s[_] ]) extends %s[%s](alias, %s, aliased, parameters, \"%s\")[[before= with ][separator= with ][%s]] {", + className, Table.class, recordType, Field.class, TableImpl.class, recordType, schemaId, escapeString(comment), interfaces); } else { out.println("public class %s extends %s<%s>[[before= implements ][%s]] {", @@ -3480,7 +3480,7 @@ public class JavaGenerator extends AbstractGenerator { out.tab(1).println("public static final %s %s = new %s();", className, catalogId, className); } - if (generateGlobalObjectReferences() /* [#4879] TODO && generateGlobalSchemaReferences() */) { + if (generateGlobalObjectReferences() && generateGlobalSchemaReferences()) { for (SchemaDefinition schema : catalog.getSchemata()) { final String schemaClassName = out.ref(getStrategy().getFullJavaClassName(schema)); final String schemaId = getStrategy().getJavaIdentifier(schema); diff --git a/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.8.0.xsd b/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.8.0.xsd index 8a05c10599..8962b190b0 100644 --- a/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.8.0.xsd +++ b/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.8.0.xsd @@ -765,7 +765,17 @@ + + + + + +