[#4626] Zero-length DAO source files generated for non-updatable tables
This commit is contained in:
parent
613875efd0
commit
bd2420b410
@ -233,9 +233,13 @@ public abstract class GeneratorWriter<W extends GeneratorWriter<W>> {
|
||||
return indentTabs;
|
||||
}
|
||||
|
||||
public final void close() {
|
||||
public final boolean close() {
|
||||
String newContent = beforeClose(sb.toString());
|
||||
|
||||
// [#4626] Don't write empty files
|
||||
if (StringUtils.isBlank(newContent))
|
||||
return false;
|
||||
|
||||
try {
|
||||
// [#3756] Regenerate files only if there is a difference
|
||||
String oldContent = null;
|
||||
@ -260,7 +264,10 @@ public abstract class GeneratorWriter<W extends GeneratorWriter<W>> {
|
||||
writer.append(newContent);
|
||||
writer.flush();
|
||||
writer.close();
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw new GeneratorException("Error writing " + file.getAbsolutePath());
|
||||
|
||||
@ -458,7 +458,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
x
|
||||
|
||||
xxxxxxxxxxxxxxxxx
|
||||
xxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxxxxx
|
||||
|
||||
xxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx
|
||||
x
|
||||
@ -491,7 +491,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
x
|
||||
|
||||
xxxxxxxxxxxxxxxxx
|
||||
xxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxxxxx
|
||||
|
||||
xxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx
|
||||
x
|
||||
@ -651,7 +651,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
}
|
||||
|
||||
out.println("}");
|
||||
out.close();
|
||||
closeJavaWriter(out);
|
||||
|
||||
watch.splitInfo("Keys generated");
|
||||
}
|
||||
@ -783,14 +783,14 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
JavaWriter out = newJavaWriter(getStrategy().getFile(table, Mode.RECORD));
|
||||
log.info("Generating record", out.file().getName());
|
||||
generateRecord(table, out);
|
||||
out.close();
|
||||
closeJavaWriter(out);
|
||||
}
|
||||
|
||||
protected void generateUDTRecord(UDTDefinition udt) {
|
||||
JavaWriter out = newJavaWriter(getStrategy().getFile(udt, Mode.RECORD));
|
||||
log.info("Generating record", out.file().getName());
|
||||
generateRecord(udt, out);
|
||||
out.close();
|
||||
closeJavaWriter(out);
|
||||
}
|
||||
|
||||
protected void generateRecord(TableDefinition table, JavaWriter out) {
|
||||
@ -1264,14 +1264,14 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
JavaWriter out = newJavaWriter(getStrategy().getFile(table, Mode.INTERFACE));
|
||||
log.info("Generating interface", out.file().getName());
|
||||
generateInterface(table, out);
|
||||
out.close();
|
||||
closeJavaWriter(out);
|
||||
}
|
||||
|
||||
protected void generateUDTInterface(UDTDefinition udt) {
|
||||
JavaWriter out = newJavaWriter(getStrategy().getFile(udt, Mode.INTERFACE));
|
||||
log.info("Generating interface", out.file().getName());
|
||||
generateInterface(udt, out);
|
||||
out.close();
|
||||
closeJavaWriter(out);
|
||||
}
|
||||
|
||||
protected void generateInterface(TableDefinition table, JavaWriter out) {
|
||||
@ -1395,7 +1395,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
JavaWriter out = newJavaWriter(getStrategy().getFile(udt));
|
||||
log.info("Generating UDT ", out.file().getName());
|
||||
generateUDT(udt, out);
|
||||
out.close();
|
||||
closeJavaWriter(out);
|
||||
}
|
||||
|
||||
protected void generateUDT(UDTDefinition udt, JavaWriter out) {
|
||||
@ -1510,7 +1510,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
|
||||
generateUDTClassFooter(udt, out);
|
||||
out.println("}");
|
||||
out.close();
|
||||
closeJavaWriter(out);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1663,7 +1663,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
}
|
||||
|
||||
out.println("}");
|
||||
out.close();
|
||||
closeJavaWriter(out);
|
||||
|
||||
watch.splitInfo("UDT references generated");
|
||||
}
|
||||
@ -1687,9 +1687,10 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
JavaWriter out = newJavaWriter(getStrategy().getFile(array, Mode.RECORD));
|
||||
log.info("Generating ARRAY", out.file().getName());
|
||||
generateArray(array, out);
|
||||
out.close();
|
||||
closeJavaWriter(out);
|
||||
}
|
||||
|
||||
|
||||
protected void generateArray(ArrayDefinition array, JavaWriter out) {
|
||||
/* [pro] xx
|
||||
xxxxx xxxxxxxxxxxxxxxx xxxxxx x xxxxxxxxxxxxxxxxxx
|
||||
@ -1817,7 +1818,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
JavaWriter out = newJavaWriter(getStrategy().getFile(e, Mode.ENUM));
|
||||
log.info("Generating ENUM", out.file().getName());
|
||||
generateEnum(e, out);
|
||||
out.close();
|
||||
closeJavaWriter(out);
|
||||
}
|
||||
|
||||
protected void generateEnum(EnumDefinition e, JavaWriter out) {
|
||||
@ -1921,7 +1922,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
}
|
||||
|
||||
out.println("}");
|
||||
out.close();
|
||||
closeJavaWriter(out);
|
||||
|
||||
watch.splitInfo("Routines generated");
|
||||
}
|
||||
@ -2000,12 +2001,11 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
xxxxxxxxxx xxx x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
xxxxxxxxxxxxxxxxxxxx xxxxxxxxx xxxxx
|
||||
xxxxxxxxxxxxxxxxxxxx xxxxx
|
||||
xxxxxxxxxxxx
|
||||
xx [/pro] */
|
||||
}
|
||||
xxxxxxxxxxxxxxxxxxxxx
|
||||
x
|
||||
|
||||
protected void generatePackage(PackageDefinition pkg, JavaWriter out) {
|
||||
/* [pro] xx
|
||||
xxxxxxxxx xxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxx xxxxxxxxxx xxxx x
|
||||
xx xxxxx xx
|
||||
xxxxx xxxxxxxxxxxxxxxx xxxxxx x xxxxxxxxxxxxxxxx
|
||||
xxxxx xxxxxx xxxxxxxxx x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
xxxxx xxxxxx xxxxxxxxxx x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
@ -2110,7 +2110,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
}
|
||||
|
||||
out.println("}");
|
||||
out.close();
|
||||
closeJavaWriter(out);
|
||||
|
||||
watch.splitInfo("Table refs generated");
|
||||
}
|
||||
@ -2134,7 +2134,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
JavaWriter out = newJavaWriter(getStrategy().getFile(table, Mode.DAO));
|
||||
log.info("Generating DAO", out.file().getName());
|
||||
generateDao(table, out);
|
||||
out.close();
|
||||
closeJavaWriter(out);
|
||||
}
|
||||
|
||||
protected void generateDao(TableDefinition table, JavaWriter out) {
|
||||
@ -2344,14 +2344,14 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
JavaWriter out = newJavaWriter(getStrategy().getFile(table, Mode.POJO));
|
||||
log.info("Generating POJO", out.file().getName());
|
||||
generatePojo(table, out);
|
||||
out.close();
|
||||
closeJavaWriter(out);
|
||||
}
|
||||
|
||||
protected void generateUDTPojo(UDTDefinition udt) {
|
||||
JavaWriter out = newJavaWriter(getStrategy().getFile(udt, Mode.POJO));
|
||||
log.info("Generating POJO", out.file().getName());
|
||||
generatePojo(udt, out);
|
||||
out.close();
|
||||
closeJavaWriter(out);
|
||||
}
|
||||
|
||||
protected void generatePojo(TableDefinition table, JavaWriter out) {
|
||||
@ -2639,7 +2639,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
generateUDTPojoClassFooter((UDTDefinition) tableOrUDT, out);
|
||||
|
||||
out.println("}");
|
||||
out.close();
|
||||
closeJavaWriter(out);
|
||||
}
|
||||
|
||||
protected void generatePojoEqualsAndHashCode(Definition tableOrUDT, JavaWriter out) {
|
||||
@ -2867,7 +2867,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
protected void generateTable(SchemaDefinition schema, TableDefinition table) {
|
||||
JavaWriter out = newJavaWriter(getStrategy().getFile(table));
|
||||
generateTable(table, out);
|
||||
out.close();
|
||||
closeJavaWriter(out);
|
||||
}
|
||||
|
||||
protected void generateTable(TableDefinition table, JavaWriter out) {
|
||||
@ -3236,7 +3236,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
|
||||
generateTableClassFooter(table, out);
|
||||
out.println("}");
|
||||
out.close();
|
||||
closeJavaWriter(out);
|
||||
}
|
||||
|
||||
private String escapeString(String comment) {
|
||||
@ -3290,7 +3290,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
}
|
||||
|
||||
out.println("}");
|
||||
out.close();
|
||||
closeJavaWriter(out);
|
||||
|
||||
watch.splitInfo("Sequences generated");
|
||||
}
|
||||
@ -3300,7 +3300,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
log.info("Generating schema", out.file().getName());
|
||||
log.info("----------------------------------------------------------");
|
||||
generateSchema(schema, out);
|
||||
out.close();
|
||||
closeJavaWriter(out);
|
||||
}
|
||||
|
||||
protected void generateSchema(SchemaDefinition schema, JavaWriter out) {
|
||||
@ -3580,7 +3580,7 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
JavaWriter out = newJavaWriter(getStrategy().getFile(routine));
|
||||
log.info("Generating routine", out.file().getName());
|
||||
generateRoutine(routine, out);
|
||||
out.close();
|
||||
closeJavaWriter(out);
|
||||
}
|
||||
|
||||
protected void generateRoutine(RoutineDefinition routine, JavaWriter out) {
|
||||
@ -4741,18 +4741,23 @@ public class JavaGenerator extends AbstractGenerator {
|
||||
}
|
||||
|
||||
private final String classOf(String string) {
|
||||
if (scala)
|
||||
return "classOf[" + string + "]";
|
||||
else
|
||||
return string + ".class";
|
||||
if (scala)
|
||||
return "classOf[" + string + "]";
|
||||
else
|
||||
return string + ".class";
|
||||
}
|
||||
|
||||
// [#3880] Users may need to call this method
|
||||
protected final JavaWriter newJavaWriter(File file) {
|
||||
if (scala)
|
||||
file = new File(file.getParentFile(), file.getName().replace(".java", ".scala"));
|
||||
if (scala)
|
||||
file = new File(file.getParentFile(), file.getName().replace(".java", ".scala"));
|
||||
|
||||
files.add(file);
|
||||
return new JavaWriter(file, fullyQualifiedTypes());
|
||||
}
|
||||
|
||||
// [#4626] Users may need to call this method
|
||||
protected final void closeJavaWriter(JavaWriter out) {
|
||||
if (out.close())
|
||||
files.add(out.file());
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user