Skip to content

Commit

Permalink
[#3882] Overload JavaGenerator.generateXXX() methods to contain a Jav…
Browse files Browse the repository at this point in the history
…aWriter argument
  • Loading branch information
lukaseder committed Jan 9, 2015
1 parent 69ef447 commit ffc4ef5
Showing 1 changed file with 106 additions and 32 deletions.
138 changes: 106 additions & 32 deletions jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java
Expand Up @@ -275,8 +275,6 @@ else if (!oldVersion.equals(newVersion)) {
}
}

File targetPackage = getStrategy().getFile(schema).getParentFile();

// ----------------------------------------------------------------------
// XXX Initialising
// ----------------------------------------------------------------------
Expand Down Expand Up @@ -657,13 +655,28 @@ protected void generateRecords(SchemaDefinition schema) {


protected void generateRecord(TableDefinition table) {
generateRecord((Definition) table);
log.info("Generating record", getStrategy().getFileName(table, Mode.RECORD));
JavaWriter out = newJavaWriter(getStrategy().getFile(table, Mode.RECORD));
generateRecord(table, out);
out.close();
}

protected void generateUDTRecord(UDTDefinition udt) {
log.info("Generating record", getStrategy().getFileName(udt, Mode.RECORD));
JavaWriter out = newJavaWriter(getStrategy().getFile(udt, Mode.RECORD));
generateRecord(udt, out);
out.close();
}

private void generateRecord(Definition tableOrUdt) {
log.info("Generating record", getStrategy().getFileName(tableOrUdt, Mode.RECORD));
JavaWriter out = newJavaWriter(getStrategy().getFile(tableOrUdt, Mode.RECORD));
protected void generateRecord(TableDefinition table, JavaWriter out) {
generateRecord((Definition) table, out);
}

protected void generateUDTRecord(UDTDefinition udt, JavaWriter out) {
generateRecord(udt, out);
}

private void generateRecord(Definition tableOrUdt, JavaWriter out) {
final UniqueKeyDefinition key = (tableOrUdt instanceof TableDefinition)
? ((TableDefinition) tableOrUdt).getPrimaryKey()
: null;
Expand Down Expand Up @@ -911,7 +924,6 @@ else if (generateRelations() && key != null)
generateUDTRecordClassFooter((UDTDefinition) tableOrUdt, out);

out.println("}");
out.close();
}

private int colRefSegments(TypedElementDefinition<?> column) {
Expand Down Expand Up @@ -966,13 +978,28 @@ protected void generateInterfaces(SchemaDefinition schema) {
}

protected void generateInterface(TableDefinition table) {
generateInterface((Definition) table);
log.info("Generating interface", getStrategy().getFileName(table, Mode.INTERFACE));
JavaWriter out = newJavaWriter(getStrategy().getFile(table, Mode.INTERFACE));
generateInterface(table, out);
out.close();
}

private void generateInterface(Definition tableOrUDT) {
log.info("Generating interface", getStrategy().getFileName(tableOrUDT, Mode.INTERFACE));
JavaWriter out = newJavaWriter(getStrategy().getFile(tableOrUDT, Mode.INTERFACE));
protected void generateUDTInterface(UDTDefinition udt) {
log.info("Generating interface", getStrategy().getFileName(udt, Mode.INTERFACE));
JavaWriter out = newJavaWriter(getStrategy().getFile(udt, Mode.INTERFACE));
generateInterface(udt, out);
out.close();
}

protected void generateInterface(TableDefinition table, JavaWriter out) {
generateInterface((Definition) table, out);
}

protected void generateUDTInterface(UDTDefinition udt, JavaWriter out) {
generateInterface(udt, out);
}

private void generateInterface(Definition tableOrUDT, JavaWriter out) {
final String className = getStrategy().getJavaClassName(tableOrUDT, Mode.INTERFACE);
final List<String> interfaces = out.ref(getStrategy().getJavaClassImplements(tableOrUDT, Mode.INTERFACE));

Expand Down Expand Up @@ -1031,7 +1058,6 @@ private void generateInterface(Definition tableOrUDT) {
generateUDTInterfaceClassFooter((UDTDefinition) tableOrUDT, out);

out.println("}");
out.close();
}

/**
Expand Down Expand Up @@ -1062,10 +1088,16 @@ protected void generateUDTs(SchemaDefinition schema) {
watch.splitInfo("UDTs generated");
}

@SuppressWarnings("unused")
protected void generateUDT(SchemaDefinition schema, UDTDefinition udt) {
log.info("Generating UDT ", getStrategy().getFileName(udt));
JavaWriter out = newJavaWriter(getStrategy().getFile(udt));
generateUDT(udt, out);
out.close();
}

protected void generateUDT(UDTDefinition udt, JavaWriter out) {
final SchemaDefinition schema = udt.getSchema();
final String className = getStrategy().getJavaClassName(udt);
final String recordType = out.ref(getStrategy().getFullJavaClassName(udt, Mode.RECORD));
final List<String> interfaces = out.ref(getStrategy().getJavaClassImplements(udt, Mode.DEFAULT));
Expand Down Expand Up @@ -1160,7 +1192,7 @@ protected void generateUDTPojos(SchemaDefinition schema) {

for (UDTDefinition udt : database.getUDTs(schema)) {
try {
generatePojo(udt);
generateUDTPojo(udt);
}
catch (Exception e) {
log.error("Error while generating UDT POJO " + udt, e);
Expand Down Expand Up @@ -1188,7 +1220,7 @@ protected void generateUDTInterfaces(SchemaDefinition schema) {

for (UDTDefinition udt : database.getUDTs(schema)) {
try {
generateInterface(udt);
generateUDTInterface(udt);
} catch (Exception e) {
log.error("Error while generating UDT interface " + udt, e);
}
Expand Down Expand Up @@ -1227,10 +1259,6 @@ protected void generateUDTRecords(SchemaDefinition schema) {
watch.splitInfo("UDT records generated");
}

protected void generateUDTRecord(UDTDefinition udt) {
generateRecord(udt);
}

/**
* Subclasses may override this method to provide udt record class footer code.
*/
Expand Down Expand Up @@ -1307,11 +1335,17 @@ protected void generateArrays(SchemaDefinition schema) {
watch.splitInfo("ARRAYs generated");
}

@SuppressWarnings("unused")
protected void generateArray(SchemaDefinition schema, ArrayDefinition array) {
/* [pro] xx
xxxxxxxxxxxxxxxxxxxx xxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxx
xxxxxxxxxx xxx x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxx
log.info("Generating ARRAY", getStrategy().getFileName(array, Mode.RECORD));
JavaWriter out = newJavaWriter(getStrategy().getFile(array, Mode.RECORD));
generateArray(array, out);
out.close();
}

protected void generateArray(ArrayDefinition array, JavaWriter out) {
/* [pro] xx
xxxxx xxxxxxxxxxxxxxxx xxxxxx x xxxxxxxxxxxxxxxxxx
xxxxx xxxxxx xxxxxxxxx x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxx
xxxxx xxxxxx xxxxxxxxxxx x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxx xxxxxx xxxxxxxxxxxxxx x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxx
Expand Down Expand Up @@ -1373,7 +1407,6 @@ protected void generateArray(SchemaDefinition schema, ArrayDefinition array) {
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxx
xx [/pro] */
}

Expand Down Expand Up @@ -1407,7 +1440,11 @@ protected void generateEnums(SchemaDefinition schema) {
protected void generateEnum(EnumDefinition e) {
log.info("Generating ENUM", getStrategy().getFileName(e, Mode.ENUM));
JavaWriter out = newJavaWriter(getStrategy().getFile(e, Mode.ENUM));
generateEnum(e, out);
out.close();
}

protected void generateEnum(EnumDefinition e, JavaWriter out) {
final String className = getStrategy().getJavaClassName(e, Mode.ENUM);
final List<String> interfaces = out.ref(getStrategy().getJavaClassImplements(e, Mode.ENUM));

Expand Down Expand Up @@ -1463,7 +1500,6 @@ protected void generateEnum(EnumDefinition e) {

generateEnumClassFooter(e, out);
out.println("}");
out.close();
}

/**
Expand Down Expand Up @@ -1549,10 +1585,16 @@ protected void generatePackages(SchemaDefinition schema) {
watch.splitInfo("Packages generated");
}

@SuppressWarnings("unused")
protected void generatePackage(SchemaDefinition schema, PackageDefinition pkg) {
log.info("Generating package", pkg);
JavaWriter out = newJavaWriter(getStrategy().getFile(pkg));
generatePackage(pkg, out);
out.close();
}

protected void generatePackage(PackageDefinition pkg, JavaWriter out) {
final SchemaDefinition schema = pkg.getSchema();
final String className = getStrategy().getJavaClassName(pkg);
final String schemaIdentifier = out.ref(getStrategy().getFullJavaIdentifier(schema), 2);
final List<String> interfaces = out.ref(getStrategy().getJavaClassImplements(pkg, Mode.DEFAULT));
Expand Down Expand Up @@ -1583,7 +1625,6 @@ protected void generatePackage(SchemaDefinition schema, PackageDefinition pkg) {

generatePackageClassFooter(pkg, out);
out.println("}");
out.close();
}

/**
Expand Down Expand Up @@ -1653,7 +1694,11 @@ protected void generateDaos(SchemaDefinition schema) {
protected void generateDao(TableDefinition table) {
log.info("Generating DAO", getStrategy().getFileName(table, Mode.DAO));
JavaWriter out = newJavaWriter(getStrategy().getFile(table, Mode.DAO));
generateDao(table, out);
out.close();
}

protected void generateDao(TableDefinition table, JavaWriter out) {
final String className = getStrategy().getJavaClassName(table, Mode.DAO);
final String tableRecord = out.ref(getStrategy().getFullJavaClassName(table, Mode.RECORD));
final String daoImpl = out.ref(DAOImpl.class);
Expand Down Expand Up @@ -1766,7 +1811,6 @@ else if (keyColumns.size() <= Constants.MAX_ROW_DEGREE) {

generateDaoClassFooter(table, out);
out.println("}");
out.close();
}

/**
Expand Down Expand Up @@ -1798,13 +1842,28 @@ protected void generatePojos(SchemaDefinition schema) {
}

protected void generatePojo(TableDefinition table) {
generatePojo((Definition) table);
log.info("Generating POJO", getStrategy().getFileName(table, Mode.POJO));
JavaWriter out = newJavaWriter(getStrategy().getFile(table, Mode.POJO));
generatePojo(table, out);
out.close();
}

private void generatePojo(Definition tableOrUDT) {
log.info("Generating POJO", getStrategy().getFileName(tableOrUDT, Mode.POJO));
JavaWriter out = newJavaWriter(getStrategy().getFile(tableOrUDT, Mode.POJO));
protected void generateUDTPojo(UDTDefinition udt) {
log.info("Generating POJO", getStrategy().getFileName(udt, Mode.POJO));
JavaWriter out = newJavaWriter(getStrategy().getFile(udt, Mode.POJO));
generatePojo(udt, out);
out.close();
}

protected void generatePojo(TableDefinition table, JavaWriter out) {
generatePojo((Definition) table, out);
}

protected void generateUDTPojo(UDTDefinition udt, JavaWriter out) {
generatePojo(udt, out);
}

private void generatePojo(Definition tableOrUDT, JavaWriter out) {
final String className = getStrategy().getJavaClassName(tableOrUDT, Mode.POJO);
final String superName = out.ref(getStrategy().getJavaClassExtends(tableOrUDT, Mode.POJO));
final List<String> interfaces = out.ref(getStrategy().getJavaClassImplements(tableOrUDT, Mode.POJO));
Expand Down Expand Up @@ -2061,9 +2120,16 @@ protected void generateTables(SchemaDefinition schema) {
watch.splitInfo("Tables generated");
}

@SuppressWarnings("unused")
protected void generateTable(SchemaDefinition schema, TableDefinition table) {
UniqueKeyDefinition primaryKey = table.getPrimaryKey();
JavaWriter out = newJavaWriter(getStrategy().getFile(table));
generateTable(table, out);
out.close();
}

protected void generateTable(TableDefinition table, JavaWriter out) {
final SchemaDefinition schema = table.getSchema();
final UniqueKeyDefinition primaryKey = table.getPrimaryKey();

final boolean updatable = generateRelations() && primaryKey != null;
final String className = getStrategy().getJavaClassName(table);
Expand Down Expand Up @@ -2358,7 +2424,11 @@ protected void generateSchema(SchemaDefinition schema) {
log.info("Generating schema", getStrategy().getFileName(schema));
log.info("----------------------------------------------------------");
JavaWriter out = newJavaWriter(getStrategy().getFile(schema));
generateSchema(schema, out);
out.close();
}

protected void generateSchema(SchemaDefinition schema, JavaWriter out) {
final String schemaName = schema.getQualifiedOutputName();
final String schemaId = getStrategy().getJavaIdentifier(schema);
final String className = getStrategy().getJavaClassName(schema);
Expand Down Expand Up @@ -2388,7 +2458,6 @@ protected void generateSchema(SchemaDefinition schema) {

generateSchemaClassFooter(schema, out);
out.println("}");
out.close();
}

/**
Expand Down Expand Up @@ -2583,10 +2652,16 @@ private void printValidationAnnotation(JavaWriter out, TypedElementDefinition<?>
}
}

@SuppressWarnings("unused")
protected void generateRoutine(SchemaDefinition schema, RoutineDefinition routine) {
log.info("Generating routine", getStrategy().getFileName(routine));
JavaWriter out = newJavaWriter(getStrategy().getFile(routine));
generateRoutine(routine, out);
out.close();
}

protected void generateRoutine(RoutineDefinition routine, JavaWriter out) {
final SchemaDefinition schema = routine.getSchema();
final String className = getStrategy().getJavaClassName(routine);
final String returnType = (routine.getReturnValue() == null)
? Void.class.getName()
Expand Down Expand Up @@ -2706,7 +2781,6 @@ else if (routine.getInParameters().contains(parameter)) {

generateRoutineClassFooter(routine, out);
out.println("}");
out.close();
}

/**
Expand Down

0 comments on commit ffc4ef5

Please sign in to comment.