[#5526] Add code generator flag to turn off generation of UDTs
This commit is contained in:
parent
ac5ec261be
commit
cae2a72614
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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
|
||||
*/
|
||||
|
||||
@ -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 <records/>)" :
|
||||
@ -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<SchemaDefinition> schemas = new ArrayList<SchemaDefinition>();
|
||||
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 <code>%s</code>", 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("}");
|
||||
|
||||
@ -735,6 +735,21 @@
|
||||
-->
|
||||
<element name="sequences" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Generate UDT classes.
|
||||
-->
|
||||
<element name="udts" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Allow to turn off the generation of queue related code
|
||||
-->
|
||||
<element name="queues" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Allow to turn off the generation of link related code
|
||||
-->
|
||||
<element name="links" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Generate Table classes.
|
||||
-->
|
||||
@ -866,16 +881,6 @@
|
||||
-->
|
||||
<element name="globalLinkReferences" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Allow to turn off the generation of queue related code
|
||||
-->
|
||||
<element name="queues" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Allow to turn off the generation of link related code
|
||||
-->
|
||||
<element name="links" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Generate fluent setters in
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user