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