[#5527] Add code generator flag to turn off the generation of routines
This commit is contained in:
parent
be266d6e8c
commit
9f6ece2921
@ -65,6 +65,7 @@ abstract class AbstractGenerator implements Generator {
|
||||
boolean generateGeneratedAnnotation = true;
|
||||
boolean useSchemaVersionProvider = false;
|
||||
boolean useCatalogVersionProvider = false;
|
||||
boolean generateRoutines = true;
|
||||
boolean generateRecords = true;
|
||||
boolean generatePojos = false;
|
||||
boolean generatePojosEqualsAndHashCode = false;
|
||||
@ -238,6 +239,16 @@ abstract class AbstractGenerator implements Generator {
|
||||
this.useCatalogVersionProvider = useCatalogVersionProvider;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean generateRoutines() {
|
||||
return generateRoutines;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setGenerateRoutines(boolean generateRoutines) {
|
||||
this.generateRoutines = generateRoutines;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean generateRecords() {
|
||||
|
||||
|
||||
@ -461,6 +461,8 @@ public class GenerationTool {
|
||||
generator.setGenerateInstanceFields(g.getGenerate().isInstanceFields());
|
||||
if (g.getGenerate().isGeneratedAnnotation() != null)
|
||||
generator.setGenerateGeneratedAnnotation(g.getGenerate().isGeneratedAnnotation());
|
||||
if (g.getGenerate().isRoutines() != null)
|
||||
generator.setGenerateRoutines(g.getGenerate().isRoutines());
|
||||
if (g.getGenerate().isRecords() != null)
|
||||
generator.setGenerateRecords(g.getGenerate().isRecords());
|
||||
if (g.getGenerate().isPojos() != null)
|
||||
|
||||
@ -120,6 +120,16 @@ public interface Generator {
|
||||
boolean useCatalogVersionProvider();
|
||||
void setUseCatalogVersionProvider(boolean useCatalogVersionProvider);
|
||||
|
||||
/**
|
||||
* Whether Routines should be generated.
|
||||
*/
|
||||
boolean generateRoutines();
|
||||
|
||||
/**
|
||||
* Whether Routines should be generated.
|
||||
*/
|
||||
void setGenerateRoutines(boolean generateRoutines);
|
||||
|
||||
/**
|
||||
* Whether TableRecords should be generated in addition to tables
|
||||
*/
|
||||
|
||||
@ -217,6 +217,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
log.info(" JPA annotations", generateJPAAnnotations());
|
||||
log.info(" validation annotations", generateValidationAnnotations());
|
||||
log.info(" instance fields", generateInstanceFields());
|
||||
log.info(" routines", generateRoutines());
|
||||
log.info(" records", generateRecords()
|
||||
+ ((!generateRecords && generateDaos) ? " (forced to true because of <daos/>)" : ""));
|
||||
log.info(" pojos", generatePojos()
|
||||
@ -406,7 +407,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
generateUDTInterfaces(schema);
|
||||
}
|
||||
|
||||
if (database.getUDTs(schema).size() > 0) {
|
||||
if (generateRoutines() && database.getUDTs(schema).size() > 0) {
|
||||
generateUDTRoutines(schema);
|
||||
}
|
||||
|
||||
@ -426,7 +427,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
generateDomains(schema);
|
||||
}
|
||||
|
||||
if (generateGlobalObjectReferences() && generateGlobalRoutineReferences() && database.getRoutines(schema).size() > 0 || hasTableValuedFunctions(schema)) {
|
||||
if (generateRoutines() && (database.getRoutines(schema).size() > 0 || hasTableValuedFunctions(schema))) {
|
||||
generateRoutines(schema);
|
||||
}
|
||||
|
||||
@ -2095,35 +2096,39 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
protected void generateRoutines(SchemaDefinition schema) {
|
||||
log.info("Generating routines and table-valued functions");
|
||||
|
||||
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());
|
||||
printClassAnnotations(out, schema);
|
||||
if (generateGlobalObjectReferences() && 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());
|
||||
printClassAnnotations(out, schema);
|
||||
|
||||
if (scala)
|
||||
out.println("object Routines {");
|
||||
else
|
||||
out.println("public class Routines {");
|
||||
if (scala)
|
||||
out.println("object Routines {");
|
||||
else
|
||||
out.println("public class Routines {");
|
||||
|
||||
for (RoutineDefinition routine : database.getRoutines(schema))
|
||||
printRoutine(out, routine);
|
||||
|
||||
for (TableDefinition table : database.getTables(schema)) {
|
||||
if (table.isTableValuedFunction()) {
|
||||
printTableValuedFunction(out, table, getStrategy().getJavaMethodName(table, Mode.DEFAULT));
|
||||
}
|
||||
}
|
||||
|
||||
out.println("}");
|
||||
closeJavaWriter(out);
|
||||
}
|
||||
|
||||
for (RoutineDefinition routine : database.getRoutines(schema)) {
|
||||
printRoutine(out, routine);
|
||||
|
||||
try {
|
||||
generateRoutine(schema, routine);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
catch (Exception e) {
|
||||
log.error("Error while generating routine " + routine, e);
|
||||
}
|
||||
}
|
||||
|
||||
for (TableDefinition table : database.getTables(schema)) {
|
||||
if (table.isTableValuedFunction()) {
|
||||
printTableValuedFunction(out, table, getStrategy().getJavaMethodName(table, Mode.DEFAULT));
|
||||
}
|
||||
}
|
||||
|
||||
out.println("}");
|
||||
closeJavaWriter(out);
|
||||
|
||||
watch.splitInfo("Routines generated");
|
||||
}
|
||||
|
||||
|
||||
@ -725,6 +725,11 @@
|
||||
-->
|
||||
<element name="generatedAnnotation" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Generate Routine classes.
|
||||
-->
|
||||
<element name="routines" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Generate TableRecord classes. Disable this when you don't
|
||||
need the additional type-safety
|
||||
|
||||
Loading…
Reference in New Issue
Block a user