[#4879] Add generateGlobalCatalogReferences() and generateGlobalSchemaReferences() flags to code generator

This commit is contained in:
lukaseder 2015-12-31 12:29:26 +01:00
parent 938fb6f5e2
commit 602a200420
5 changed files with 60 additions and 4 deletions

View File

@ -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;

View File

@ -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)

View File

@ -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
*/

View File

@ -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);

View File

@ -765,7 +765,17 @@
<element name="globalObjectReferences" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
<!--
Allow to turn off the generation of global table references in Tables.java
Allow to turn off the generation of global catalog references in Catalogs.java
-->
<element name="globalCatalogReferences" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
<!--
Allow to turn off the generation of global schema references in Schemas.java and each catalog
-->
<element name="globalSchemaReferences" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
<!--
Allow to turn off the generation of global table references in Tables.java and each schema
-->
<element name="globalTableReferences" type="boolean" default="true" minOccurs="0" maxOccurs="1" />