[jOOQ/jOOQ#10575] Add some empty protected methods to generate custom

class footers in reference classes
This commit is contained in:
Lukas Eder 2020-09-02 12:48:20 +02:00
parent ef181a93f6
commit fa532b4aa9

View File

@ -736,6 +736,29 @@ public class JavaGenerator extends AbstractGenerator {
@ -876,6 +899,8 @@ public class JavaGenerator extends AbstractGenerator {
if (foreignKeyCounter > 0)
out.println("}");
generateRelationsClassFooter(schema, out);
if (!kotlin)
out.println("}");
@ -888,6 +913,12 @@ public class JavaGenerator extends AbstractGenerator {
}
}
/**
* Subclasses may override this method to provide relations references class footer code.
*/
@SuppressWarnings("unused")
protected void generateRelationsClassFooter(SchemaDefinition schema, JavaWriter out) {}
protected void generateIndexes(SchemaDefinition schema) {
log.info("Generating Indexes");
@ -951,6 +982,8 @@ public class JavaGenerator extends AbstractGenerator {
if (indexCounter > 0)
out.println("}");
generateIndexesClassFooter(schema, out);
if (!kotlin)
out.println("}");
closeJavaWriter(out);
@ -958,6 +991,12 @@ public class JavaGenerator extends AbstractGenerator {
watch.splitInfo("Indexes generated");
}
/**
* Subclasses may override this method to provide index references class footer code.
*/
@SuppressWarnings("unused")
protected void generateIndexesClassFooter(SchemaDefinition schema, JavaWriter out) {}
protected void printIndex(JavaWriter out, int indexCounter, IndexDefinition index) {
final int block = indexCounter / INITIALISER_SIZE;
@ -2858,6 +2897,8 @@ public class JavaGenerator extends AbstractGenerator {
out.println("public static final %s %s = %s;", className, id, fullId);
}
generateUDTReferencesClassFooter(schema, out);
if (!kotlin)
out.println("}");
closeJavaWriter(out);
@ -2865,6 +2906,12 @@ public class JavaGenerator extends AbstractGenerator {
watch.splitInfo("UDT references generated");
}
/**
* Subclasses may override this method to provide UDT references class footer code.
*/
@SuppressWarnings("unused")
protected void generateUDTReferencesClassFooter(SchemaDefinition schema, JavaWriter out) {}
/**
* Generating central static domain access
*/
@ -2952,6 +2999,8 @@ public class JavaGenerator extends AbstractGenerator {
out.println("}");
}
generateDomainReferencesClassFooter(schema, out);
if (!kotlin)
out.println("}");
closeJavaWriter(out);
@ -2959,13 +3008,20 @@ public class JavaGenerator extends AbstractGenerator {
watch.splitInfo("DOMAIN references generated");
}
/**
* Subclasses may override this method to provide domain references class footer code.
*/
@SuppressWarnings("unused")
protected void generateDomainReferencesClassFooter(SchemaDefinition schema, JavaWriter out) {}
protected void generateArrays(SchemaDefinition schema) {
log.info("Generating ARRAYs");
for (ArrayDefinition array : database.getArrays(schema)) {
try {
generateArray(schema, array);
} catch (Exception e) {
}
catch (Exception e) {
log.error("Error while generating ARRAY record " + array, e);
}
}
@ -3347,6 +3403,8 @@ public class JavaGenerator extends AbstractGenerator {
if (table.isTableValuedFunction())
printTableValuedFunction(out, table, getStrategy().getJavaMethodName(table, Mode.DEFAULT));
generateRoutinesClassFooter(schema, out);
if (!kotlin)
out.println("}");
closeJavaWriter(out);
@ -3364,6 +3422,12 @@ public class JavaGenerator extends AbstractGenerator {
watch.splitInfo("Routines generated");
}
/**
* Subclasses may override this method to provide routine references class footer code.
*/
@SuppressWarnings("unused")
protected void generateRoutinesClassFooter(SchemaDefinition schema, JavaWriter out) {}
protected void printConstant(JavaWriter out, AttributeDefinition constant) {
@ -3561,6 +3625,8 @@ public class JavaGenerator extends AbstractGenerator {
printTableValuedFunction(out, table, getStrategy().getJavaIdentifier(table));
}
generateTableReferencesClassFooter(schema, out);
if (!kotlin)
out.println("}");
@ -3569,6 +3635,12 @@ public class JavaGenerator extends AbstractGenerator {
watch.splitInfo("Table refs generated");
}
/**
* Subclasses may override this method to provide table references class footer code.
*/
@SuppressWarnings("unused")
protected void generateTableReferencesClassFooter(SchemaDefinition schema, JavaWriter out) {}
private String schemaNameOrDefault(SchemaDefinition schema) {
return StringUtils.isEmpty(schema.getOutputName()) ? "the default schema" : schema.getOutputName();
}
@ -5852,6 +5924,8 @@ public class JavaGenerator extends AbstractGenerator {
);
}
generateSequencesClassFooter(schema, out);
if (!kotlin)
out.println("}");
closeJavaWriter(out);
@ -5859,6 +5933,12 @@ public class JavaGenerator extends AbstractGenerator {
watch.splitInfo("Sequences generated");
}
/**
* Subclasses may override this method to provide sequence references class footer code.
*/
@SuppressWarnings("unused")
protected void generateSequencesClassFooter(SchemaDefinition schema, JavaWriter out) {}
private String numberLiteral(Number n) {
if (n instanceof BigInteger) {
BigInteger bi = (BigInteger) n;