[#3784] Add additional <global[XXX]References/> flags to prevent
generation of individual reference classes
This commit is contained in:
parent
fad02d294f
commit
5d7beb98ee
@ -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;
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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
|
||||
*/
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -677,19 +677,47 @@
|
||||
<element name="validationAnnotations" type="boolean" default="false" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Allow to turn off the generation of global object references, which include
|
||||
Allow to turn off the generation of ALL global object references, which include
|
||||
|
||||
- Tables.java
|
||||
- Sequences.java
|
||||
- UDTs.java
|
||||
- Routines.java
|
||||
|
||||
Turning off the generation of the above files may be necessary for very
|
||||
large schemas, which exceed the amount of allowed constants in a class's
|
||||
constant pool (64k) or, whose static initialiser would exceed 64k of
|
||||
byte code
|
||||
byte code.
|
||||
|
||||
Setting this flag to false will force all other global reference flags to be false:
|
||||
|
||||
- <globalTableReferences/>
|
||||
- <globalSequenceReferences/>
|
||||
- <globalUDTReferences/>
|
||||
- <globalRoutineReferences/>
|
||||
-->
|
||||
<element name="globalObjectReferences" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Allow to turn off the generation of global table references in Tables.java
|
||||
-->
|
||||
<element name="globalTableReferences" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Allow to turn off the generation of global table references in Sequences.java
|
||||
-->
|
||||
<element name="globalSequenceReferences" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Allow to turn off the generation of global table references in UDTs.java
|
||||
-->
|
||||
<element name="globalUDTReferences" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Allow to turn off the generation of global table references in Routines.java
|
||||
-->
|
||||
<element name="globalRoutineReferences" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Generate fluent setters in
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user