cleanup code generation

This commit is contained in:
wea_ondara
2022-11-23 17:17:20 +01:00
parent 802288e6ab
commit 94b408bd79

View File

@@ -5,12 +5,12 @@ import jef.model.DbEntity;
import jef.model.DbEntityBuilder;
import jef.model.DbField;
import jef.model.ModelBuilder;
import jef.model.SqlTypeMapper;
import jef.model.constraints.ForeignKeyConstraint;
import jef.model.constraints.IndexConstraint;
import jef.model.constraints.KeyConstraint;
import jef.model.constraints.PrimaryKeyConstraint;
import jef.model.constraints.UniqueKeyConstraint;
import jef.platform.base.SqlTypeMapper;
import jef.serializable.SerializableObject;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@@ -25,7 +25,7 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor
public class ModelBuilderGenerator {
private final ModelBuilder mb;
private final String name;
private final String className;
private final String packageName;
private final SqlTypeMapper sqlTypeMapper;
@@ -46,11 +46,9 @@ public class ModelBuilderGenerator {
imports.add(ModelBuilder.class);
imports.add(DbEntityBuilder.class);
var java = ""
+ "public class " + name + "Snapshot extends DbContext {\n"
+ "public class " + className + " extends DbContext {\n"
+ " @Override\n"
+ " public void onModelCreate(ModelBuilder mb) {\n"
+ indent + "DbEntityBuilder entity;\n"
+ indent + "DbEntityBuilder referencedEntity;\n";
+ " public void onModelCreate(ModelBuilder mb) {\n";
for (DbEntity<? extends SerializableObject> entity : mb.getEntities()) {
java += indent + "mb.entity(\"" + entity.getTypeName() + "\")\n"
+ indent + " .name(\"" + entity.getName() + "\");\n";
@@ -107,11 +105,13 @@ public class ModelBuilderGenerator {
//imports
var normalImports = imports.stream().filter(e -> !e.getName().startsWith("java")).sorted(Comparator.comparing(Class::getName, String.CASE_INSENSITIVE_ORDER)).toList();
var javaImports = imports.stream().filter(e -> e.getName().startsWith("java")).sorted(Comparator.comparing(Class::getName, String.CASE_INSENSITIVE_ORDER)).toList();
var normalImportsString = normalImports.stream().map(e -> "import " + e.getName().replace("$", ".") + ";").collect(Collectors.joining("\n"));
var javaImportsString = javaImports.stream().map(e -> "import " + e.getName().replace("$", ".") + ";").collect(Collectors.joining("\n"));
//finalize
java = (packageName != null ? "package " + packageName + ";\n\n" : "")
+ normalImports.stream().map(e -> "import " + e.getName().replace("$", ".") + ";").collect(Collectors.joining("\n")) + "\n\n"
+ javaImports.stream().map(e -> "import " + e.getName().replace("$", ".") + ";").collect(Collectors.joining("\n")) + "\n\n"
+ normalImportsString + (normalImportsString.length() > 0 ? "\n\n" : "")
+ javaImportsString + (javaImportsString.length() > 0 ? "\n\n" : "")
+ java;
return java;
}