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 312efff54b..ef232a3bd3 100644
--- a/jOOQ-codegen/src/main/java/org/jooq/util/AbstractGenerator.java
+++ b/jOOQ-codegen/src/main/java/org/jooq/util/AbstractGenerator.java
@@ -67,6 +67,7 @@ abstract class AbstractGenerator implements Generator {
boolean useCatalogVersionProvider = false;
boolean generateRoutines = true;
boolean generateSequences = true;
+ boolean generateUDTs = true;
boolean generateTables = true;
boolean generateRecords = true;
boolean generatePojos = false;
@@ -261,6 +262,16 @@ abstract class AbstractGenerator implements Generator {
this.generateSequences = generateSequences;
}
+ @Override
+ public boolean generateUDTs() {
+ return generateUDTs;
+ }
+
+ @Override
+ public void setGenerateUDTs(boolean generateUDTs) {
+ this.generateUDTs = generateUDTs;
+ }
+
@Override
public boolean generateTables() {
@@ -380,7 +391,7 @@ abstract class AbstractGenerator implements Generator {
@Override
public boolean generateGlobalCatalogReferences() {
- return generateGlobalCatalogReferences;
+ return generateGlobalObjectReferences() && generateGlobalCatalogReferences;
}
@Override
@@ -390,7 +401,7 @@ abstract class AbstractGenerator implements Generator {
@Override
public boolean generateGlobalSchemaReferences() {
- return generateGlobalSchemaReferences;
+ return generateGlobalObjectReferences() && generateGlobalSchemaReferences;
}
@Override
@@ -400,7 +411,7 @@ abstract class AbstractGenerator implements Generator {
@Override
public boolean generateGlobalRoutineReferences() {
- return generateGlobalRoutineReferences;
+ return generateRoutines() && generateGlobalObjectReferences() && generateGlobalRoutineReferences;
}
@Override
@@ -410,7 +421,7 @@ abstract class AbstractGenerator implements Generator {
@Override
public boolean generateGlobalSequenceReferences() {
- return generateGlobalSequenceReferences;
+ return generateSequences() && generateGlobalObjectReferences() && generateGlobalSequenceReferences;
}
@Override
@@ -420,7 +431,7 @@ abstract class AbstractGenerator implements Generator {
@Override
public boolean generateGlobalTableReferences() {
- return generateGlobalTableReferences;
+ return generateTables() && generateGlobalObjectReferences() && generateGlobalTableReferences;
}
@Override
@@ -430,7 +441,7 @@ abstract class AbstractGenerator implements Generator {
@Override
public boolean generateGlobalUDTReferences() {
- return generateGlobalUDTReferences;
+ return generateUDTs() && generateGlobalObjectReferences() && generateGlobalUDTReferences;
}
@Override
@@ -440,7 +451,7 @@ abstract class AbstractGenerator implements Generator {
@Override
public boolean generateGlobalQueueReferences() {
- return generateQueues && generateGlobalQueueReferences;
+ return generateQueues() && generateGlobalObjectReferences() && generateGlobalQueueReferences;
}
@Override
@@ -450,7 +461,7 @@ abstract class AbstractGenerator implements Generator {
@Override
public boolean generateGlobalLinkReferences() {
- return generateLinks && generateGlobalLinkReferences;
+ return generateLinks() && generateGlobalObjectReferences() && generateGlobalLinkReferences;
}
@Override
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 ee5506e4af..1a2c3a9211 100644
--- a/jOOQ-codegen/src/main/java/org/jooq/util/GenerationTool.java
+++ b/jOOQ-codegen/src/main/java/org/jooq/util/GenerationTool.java
@@ -465,6 +465,8 @@ public class GenerationTool {
generator.setGenerateRoutines(g.getGenerate().isRoutines());
if (g.getGenerate().isSequences() != null)
generator.setGenerateSequences(g.getGenerate().isSequences());
+ if (g.getGenerate().isUdts() != null)
+ generator.setGenerateUDTs(g.getGenerate().isUdts());
if (g.getGenerate().isTables() != null)
generator.setGenerateTables(g.getGenerate().isTables());
if (g.getGenerate().isRecords() != 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 ec235092a9..f188e26075 100644
--- a/jOOQ-codegen/src/main/java/org/jooq/util/Generator.java
+++ b/jOOQ-codegen/src/main/java/org/jooq/util/Generator.java
@@ -140,6 +140,16 @@ public interface Generator {
*/
void setGenerateSequences(boolean generateSequences);
+ /**
+ * Whether UDTs should be generated.
+ */
+ boolean generateUDTs();
+
+ /**
+ * Whether UDTs should be generated.
+ */
+ void setGenerateUDTs(boolean generateUDTs);
+
/**
* Whether Tables 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 89a8233bef..27384ced17 100644
--- a/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java
+++ b/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java
@@ -218,6 +218,7 @@ public class JavaGenerator extends AbstractGenerator {
log.info(" validation annotations", generateValidationAnnotations());
log.info(" instance fields", generateInstanceFields());
log.info(" sequences", generateSequences());
+ log.info(" udts", generateUDTs());
log.info(" routines", generateRoutines());
log.info(" tables", generateTables()
+ ((!generateTables && generateRecords) ? " (forced to true because of )" :
@@ -364,7 +365,7 @@ public class JavaGenerator extends AbstractGenerator {
// ----------------------------------------------------------------------
generateSchema(schema);
- if (generateSequences() && generateGlobalObjectReferences() && generateGlobalSequenceReferences() && database.getSequences(schema).size() > 0) {
+ if (generateGlobalSequenceReferences() && database.getSequences(schema).size() > 0) {
generateSequences(schema);
}
@@ -380,7 +381,7 @@ public class JavaGenerator extends AbstractGenerator {
generateDaos(schema);
}
- if (generateTables() && generateGlobalObjectReferences() && generateGlobalTableReferences() && database.getTables(schema).size() > 0) {
+ if (generateGlobalTableReferences() && database.getTables(schema).size() > 0) {
generateTableReferences(schema);
}
@@ -396,7 +397,7 @@ public class JavaGenerator extends AbstractGenerator {
generateInterfaces(schema);
}
- if (database.getUDTs(schema).size() > 0) {
+ if (generateUDTs() && database.getUDTs(schema).size() > 0) {
generateUDTs(schema);
}
@@ -404,7 +405,7 @@ public class JavaGenerator extends AbstractGenerator {
generateUDTPojos(schema);
}
- if (database.getUDTs(schema).size() > 0) {
+ if (generateUDTs() && generateRecords() && database.getUDTs(schema).size() > 0) {
generateUDTRecords(schema);
}
@@ -412,23 +413,23 @@ public class JavaGenerator extends AbstractGenerator {
generateUDTInterfaces(schema);
}
- if (generateRoutines() && database.getUDTs(schema).size() > 0) {
+ if (generateUDTs() && generateRoutines() && database.getUDTs(schema).size() > 0) {
generateUDTRoutines(schema);
}
- if (generateGlobalObjectReferences() && generateGlobalUDTReferences() && database.getUDTs(schema).size() > 0) {
+ if (generateGlobalUDTReferences() && database.getUDTs(schema).size() > 0) {
generateUDTReferences(schema);
}
- if (database.getArrays(schema).size() > 0) {
+ if (generateUDTs() && database.getArrays(schema).size() > 0) {
generateArrays(schema);
}
- if (database.getEnums(schema).size() > 0) {
+ if (generateUDTs() && database.getEnums(schema).size() > 0) {
generateEnums(schema);
}
- if (database.getDomains(schema).size() > 0) {
+ if (generateUDTs() && database.getDomains(schema).size() > 0) {
generateDomains(schema);
}
@@ -2101,7 +2102,7 @@ public class JavaGenerator extends AbstractGenerator {
protected void generateRoutines(SchemaDefinition schema) {
log.info("Generating routines and table-valued functions");
- if (generateGlobalObjectReferences() && generateGlobalRoutineReferences()) {
+ if (generateGlobalRoutineReferences()) {
JavaWriter out = newJavaWriter(new File(getStrategy().getFile(schema).getParentFile(), "Routines.java"));
printPackage(out, schema);
printClassJavadoc(out, "Convenience access to all stored procedures and functions in " + schema.getOutputName());
@@ -3588,7 +3589,7 @@ public class JavaGenerator extends AbstractGenerator {
}
List schemas = new ArrayList();
- if (generateGlobalObjectReferences() && generateGlobalSchemaReferences()) {
+ if (generateGlobalSchemaReferences()) {
for (SchemaDefinition schema : catalog.getSchemata()) {
if (generateSchemaIfEmpty(schema)) {
schemas.add(schema);
@@ -3675,7 +3676,7 @@ public class JavaGenerator extends AbstractGenerator {
out.tab(1).javadoc("The reference instance of %s", schemaName);
out.tab(1).println("public static final %s %s = new %s();", className, schemaId, className);
- if (generateTables() && generateGlobalObjectReferences() && generateGlobalTableReferences()) {
+ if (generateGlobalTableReferences()) {
for (TableDefinition table : schema.getTables()) {
final String tableClassName = out.ref(getStrategy().getFullJavaClassName(table));
final String tableId = getStrategy().getJavaIdentifier(table);
@@ -3716,13 +3717,14 @@ public class JavaGenerator extends AbstractGenerator {
}
// [#2255] Avoid referencing sequence literals, if they're not generated
- if (generateGlobalObjectReferences() && generateGlobalSequenceReferences())
+ if (generateGlobalSequenceReferences())
printReferences(out, database.getSequences(schema), Sequence.class, true);
- if (generateTables() && generateGlobalObjectReferences() && generateGlobalTableReferences())
+ if (generateGlobalTableReferences())
printReferences(out, database.getTables(schema), Table.class, true);
- printReferences(out, database.getUDTs(schema), UDT.class, true);
+ if (generateGlobalUDTReferences())
+ printReferences(out, database.getUDTs(schema), UDT.class, true);
generateSchemaClassFooter(schema, out);
out.println("}");
diff --git a/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.9.0.xsd b/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.9.0.xsd
index 57ec39d962..bb64ffe1ae 100644
--- a/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.9.0.xsd
+++ b/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.9.0.xsd
@@ -735,6 +735,21 @@
-->
+
+
+
+
+
+
+
+
+
@@ -866,16 +881,6 @@
-->
-
-
-
-
-
-