Skip to content

Commit bc7548b

Browse files
committed
refactor: Getters and Setters, conditionals and loop for to stream
1 parent bb54520 commit bc7548b

18 files changed

Lines changed: 153 additions & 393 deletions

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626

2727
<modules>
2828
<module>sqlschema2java-core</module>
29-
<module>sqlschema2java-example</module>
3029
<module>sqlschema2java-maven-plugin</module>
30+
<module>sqlschema2java-example</module>
3131
</modules>
3232

3333
</project>
Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,40 @@
11
package dev.sassine.api.structure;
22

3+
import static dev.sassine.api.structure.export.DatabaseConverter.convert;
4+
import static dev.sassine.api.structure.export.builder.BuilderEntity.build;
5+
import static dev.sassine.api.structure.type.TypeConverter.convertTypeFromSQLToEntityStore;
6+
import static dev.sassine.api.structure.util.Util.read;
7+
import static dev.sassine.api.structure.validation.DatabaseValidator.validate;
8+
9+
import java.io.FileInputStream;
310
import java.io.InputStream;
411
import java.util.List;
512

6-
import dev.sassine.api.structure.export.DatabaseConverter;
7-
import dev.sassine.api.structure.export.builder.BuilderEntity;
813
import dev.sassine.api.structure.model.java.EntityModel;
914
import dev.sassine.api.structure.model.sql.Database;
1015
import dev.sassine.api.structure.parser.SqlImport;
11-
import dev.sassine.api.structure.type.TypeConverter;
12-
import dev.sassine.api.structure.util.Util;
13-
import dev.sassine.api.structure.validation.DatabaseValidator;
1416
import lombok.extern.slf4j.Slf4j;
1517

1618
@Slf4j
1719
public class Sqlschema2Java {
1820

1921
public void compile(String inputFile,boolean isPostgress,boolean isAutoGenerated) {
2022
inputFile = "C:\\poc\\poc.sql";
21-
final Util util = new Util();
22-
log.debug("preparing to read SQL file('{}') ",inputFile);
23-
try (InputStream in = util.getInputStream(inputFile)) {
23+
log.debug("preparing to read SQL file('{}') ", inputFile);
24+
try (InputStream in = new FileInputStream(inputFile)) {
2425
log.debug("file read successfully");
25-
process(util.read(in),isPostgress,isAutoGenerated);
26+
process(read(in),isPostgress,isAutoGenerated);
2627
} catch (final Exception e) {
2728
log.error(e.getMessage(), e);
2829
}
2930
}
3031

3132
private void process(final String sqlContent, boolean isPostgress, boolean isAutoGenerated) {
32-
final SqlImport sqlImport = new SqlImport();
33-
final Database database = sqlImport.getDatabase(sqlContent);
34-
new TypeConverter().convertTypeFromSQLToEntityStore(database,isPostgress);
35-
new DatabaseValidator().validate(database);
36-
List<EntityModel> entityModel = new DatabaseConverter().convert(database);
37-
new BuilderEntity().build(entityModel,isAutoGenerated);
33+
Database database = new SqlImport().getDatabase(sqlContent);
34+
convertTypeFromSQLToEntityStore(database,isPostgress);
35+
validate(database);
36+
List<EntityModel> entityModel = convert(database);
37+
build(entityModel,isAutoGenerated);
3838
}
3939

4040
}

sqlschema2java-core/src/main/java/dev/sassine/api/structure/export/DatabaseConverter.java

Lines changed: 21 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package dev.sassine.api.structure.export;
22

3-
import java.util.ArrayList;
3+
import static java.util.stream.Collectors.toList;
4+
45
import java.util.List;
56

67
import dev.sassine.api.structure.model.java.EntityModel;
@@ -12,69 +13,55 @@
1213

1314
public class DatabaseConverter {
1415

15-
public List<EntityModel> convert(final Database database) {
16-
List<EntityModel> entitys = new ArrayList<>();
17-
for (final TableModel table : database.getTables()) {
16+
public static List<EntityModel> convert(final Database database) {
17+
return database.getTables().stream().map(table -> {
1818
final EntityModel entity = new EntityModel(table.getName(),"user_generated_value");
19-
generateDefaultPK(table, entity);
20-
for (final String columnName : table.getColumnByNames().keySet()) {
21-
final Column column = table.getColumnByNames().get(columnName);
19+
List<FieldModel> fields = entity.getFields();
20+
generateDefaultPK(table, fields);
21+
table.getColumnByNames().forEach((columnName,column) -> {
2222
final FieldModel field = new FieldModel(column.getName());
2323
final ForeignKey foreignKey = table.getForeignKeyForColumnNameOrigin(column);
2424
generateFK(column, field, foreignKey);
2525
flagColumnPK(table, columnName, field);
2626
flagNullable(column, field);
2727
setDefaultValueColumn(column, field);
28-
entity.getFields().add(field);
29-
}
30-
31-
entitys.add(entity);
32-
}
33-
return entitys;
28+
fields.add(field);
29+
});
30+
return entity;
31+
}).collect(toList());
3432
}
3533

36-
private void setDefaultValueColumn(final Column column, final FieldModel field) {
34+
private static void setDefaultValueColumn(final Column column, final FieldModel field) {
3735
field.setDefaultValue(column.getDefaultValue());
3836
}
3937

40-
private void flagNullable(final Column column, final FieldModel field) {
41-
if ((column.getIsNotNull() != null) && column.getIsNotNull()) {
42-
field.setNullable(false);
43-
} else {
44-
field.setNullable(true);
45-
}
38+
private static void flagNullable(final Column column, final FieldModel field) {
39+
field.setNullable(!(column.getIsNotNull() != null) && column.getIsNotNull());
4640
}
4741

48-
private void flagColumnPK(final TableModel table, final String columnName, final FieldModel field) {
49-
if (table.getPrimaryKey().getColumnNames().size() == 1) {
50-
for (final String columnNameInPrimaryKey : table.getPrimaryKey().getColumnNames()) {
51-
if (columnName.equals(columnNameInPrimaryKey)) {
52-
field.setIsPrimaryKey(true);
53-
}
54-
}
55-
}
42+
private static void flagColumnPK(final TableModel table, final String columnName, final FieldModel field) {
43+
if(table.getPrimaryKey().getColumnNames().stream().anyMatch(cl -> cl.equals(columnName)))
44+
field.setIsPrimaryKey(true);
5645
}
5746

58-
private void generateFK(final Column column, final FieldModel field, final ForeignKey foreignKey) {
59-
if(foreignKey == null) {
60-
if(column.getConvertedType() != null) {
47+
private static void generateFK(final Column column, final FieldModel field, final ForeignKey foreignKey) {
48+
if(foreignKey == null && column.getConvertedType() != null) {
6149
field.setType(column.getConvertedType());
62-
}
6350
} else {
6451
field.setType(foreignKey.getTableNameTarget());
6552
field.setMinOccurs(0);
6653
field.setMaxOccurs("*");
6754
}
6855
}
6956

70-
private void generateDefaultPK(final TableModel table, final EntityModel entity) {
57+
private static void generateDefaultPK(final TableModel table, final List<FieldModel> fields) {
7158
if (table.getPrimaryKey().getColumnNames().size() != 1) {
7259
final FieldModel field = new FieldModel();
7360
field.setName("id");
7461
field.setType("Integer");
7562
field.setIsPrimaryKey(true);
7663
field.setNullable(false);
77-
entity.getFields().add(field);
64+
fields.add(field);
7865
}
7966
}
8067

sqlschema2java-core/src/main/java/dev/sassine/api/structure/export/builder/BuilderEntity.java

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package dev.sassine.api.structure.export.builder;
22

3+
import static dev.sassine.api.structure.type.TypeConverter.TYPE_INTEGER;
4+
import static dev.sassine.api.structure.type.TypeConverter.TYPE_STRING;
5+
import static dev.sassine.api.structure.type.TypeConverter.TYPE_UUID;
36
import static java.lang.String.format;
47
import static java.lang.System.getProperty;
58
import static java.util.Optional.ofNullable;
@@ -29,7 +32,6 @@
2932

3033
import dev.sassine.api.structure.model.java.EntityModel;
3134
import dev.sassine.api.structure.model.java.FieldModel;
32-
import dev.sassine.api.structure.type.TypeConverter;
3335
import lombok.Getter;
3436
import lombok.NoArgsConstructor;
3537
import lombok.Setter;
@@ -60,11 +62,11 @@ public class BuilderEntity {
6062
private static final String PARAM_VALUE = "value";
6163
private static final String PARAM_NAME = "name";
6264

63-
public void build(List<EntityModel> entityModel,boolean isAutoGenerated) {
65+
public static void build(List<EntityModel> entityModel,boolean isAutoGenerated) {
6466
entityModel.forEach(e -> build(e,isAutoGenerated));
6567
}
6668

67-
private void build(EntityModel entityModel,boolean isAutoGenerated) {
69+
private static void build(EntityModel entityModel,boolean isAutoGenerated) {
6870
String nameClass = toCamelCase(entityModel.getName(), true, '_');
6971
String packageName = "dev.sassine.api.structure.delete";
7072

@@ -74,7 +76,7 @@ private void build(EntityModel entityModel,boolean isAutoGenerated) {
7476

7577
}
7678

77-
private void createRepository(EntityModel entityModel, String nameClass, String packageName) {
79+
private static void createRepository(EntityModel entityModel, String nameClass, String packageName) {
7880

7981
UnitSourceGenerator gen = UnitSourceGenerator
8082
.create(format(FORMAT_PACKAGE_DOT_PACKAGE, packageName, PACKAGE_REPOSITORY_NAME));
@@ -93,19 +95,19 @@ private void createRepository(EntityModel entityModel, String nameClass, String
9395
store(gen);
9496
}
9597

96-
private Class<?> getIdClassType(EntityModel entityModel) {
98+
private static Class<?> getIdClassType(EntityModel entityModel) {
9799
String pkType = entityModel.getPkType();
98-
if (TypeConverter.TYPE_STRING.equalsIgnoreCase(pkType))
100+
if (TYPE_STRING.equalsIgnoreCase(pkType))
99101
return String.class;
100-
else if (TypeConverter.TYPE_UUID.equalsIgnoreCase(pkType))
102+
else if (TYPE_UUID.equalsIgnoreCase(pkType))
101103
return UUID.class;
102-
else if (TypeConverter.TYPE_INTEGER.equalsIgnoreCase(pkType))
104+
else if (TYPE_INTEGER.equalsIgnoreCase(pkType))
103105
return Integer.class;
104106
else
105107
return Long.class;
106108
}
107109

108-
private void createDTO(EntityModel entityModel, String nameClass, String packageName) {
110+
private static void createDTO(EntityModel entityModel, String nameClass, String packageName) {
109111

110112
UnitSourceGenerator gen = UnitSourceGenerator
111113
.create(format(FORMAT_PACKAGE_DOT_PACKAGE, packageName, PACKAGE_DTO_NAME));
@@ -142,7 +144,7 @@ private void createDTO(EntityModel entityModel, String nameClass, String package
142144
store(gen);
143145
}
144146

145-
private void createEntity(EntityModel entityModel, boolean isAutoGenerated, String nameClass,
147+
private static void createEntity(EntityModel entityModel, boolean isAutoGenerated, String nameClass,
146148
String packageName) {
147149

148150
UnitSourceGenerator gen = UnitSourceGenerator
@@ -179,24 +181,24 @@ private void createEntity(EntityModel entityModel, boolean isAutoGenerated, Stri
179181
store(gen);
180182
}
181183

182-
private void generateEntityPK(boolean isAutoGenerated, FieldModel fieldModel, VariableSourceGenerator field, EntityModel entityModel) {
184+
private static void generateEntityPK(boolean isAutoGenerated, FieldModel fieldModel, VariableSourceGenerator field, EntityModel entityModel) {
183185
if (ofNullable(fieldModel.getIsPrimaryKey()).orElse(false)) {
184186
field.addAnnotation(AnnotationSourceGenerator.create(Id.class));
185187
if (isAutoGenerated) field.addAnnotation(AnnotationSourceGenerator.create(GeneratedValue.class));
186188
entityModel.setPkType(fieldModel.getType());
187189
}
188190
}
189191

190-
private void importLocalDateTime(UnitSourceGenerator gen, FieldModel fieldModel) {
192+
private static void importLocalDateTime(UnitSourceGenerator gen, FieldModel fieldModel) {
191193
if (LOCAL_DATE_TIME.equals(fieldModel.getType()))
192194
gen.addImport(LocalDateTime.class);
193195
}
194196

195-
private void store(UnitSourceGenerator gen) {
197+
private static void store(UnitSourceGenerator gen) {
196198
gen.storeToClassPath(getProperty("user.dir") + "/src/main/java/");
197199
}
198200

199-
private void importEntityClass(String nameClass, String packageName, UnitSourceGenerator gen) {
201+
private static void importEntityClass(String nameClass, String packageName, UnitSourceGenerator gen) {
200202
gen.addImport(format(FORMAT_IMPORT_ENTITY_PACKAGE, packageName, nameClass));
201203
}
202204

sqlschema2java-core/src/main/java/dev/sassine/api/structure/model/java/EntityModel.java

Lines changed: 5 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,13 @@
33
import java.util.ArrayList;
44
import java.util.List;
55

6+
import lombok.Getter;
67
import lombok.NoArgsConstructor;
8+
import lombok.Setter;
79

810
@NoArgsConstructor
11+
@Getter
12+
@Setter
913
public class EntityModel {
1014

1115
private String name;
@@ -15,40 +19,7 @@ public class EntityModel {
1519
private List<FieldModel> fields = new ArrayList<FieldModel>();
1620

1721
public FieldModel getFieldForName(final String name) {
18-
return fields.stream().filter(fl -> fl.getName().equalsIgnoreCase(name)).findFirst().orElse(null);
19-
}
20-
21-
public String getName() {
22-
return name;
23-
}
24-
25-
public void setName(final String name) {
26-
this.name = name;
27-
}
28-
29-
public List<FieldModel> getFields() {
30-
return fields;
31-
}
32-
33-
public void setFields(final List<FieldModel> fields) {
34-
this.fields = fields;
35-
}
36-
37-
public String getPkPolicy() {
38-
return pkPolicy;
39-
}
40-
41-
public void setPkPolicy(final String pkPolicy) {
42-
this.pkPolicy = pkPolicy;
43-
}
44-
45-
46-
public String getPkType() {
47-
return pkType;
48-
}
49-
50-
public void setPkType(String pkType) {
51-
this.pkType = pkType;
22+
return fields.stream().filter(field -> field.getName().equalsIgnoreCase(name)).findFirst().orElse(null);
5223
}
5324

5425
public EntityModel(String name, String pkPolicy) {

sqlschema2java-core/src/main/java/dev/sassine/api/structure/model/java/FieldModel.java

Lines changed: 4 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,13 @@
22

33
import static org.apache.commons.text.CaseUtils.toCamelCase;
44

5+
import lombok.Getter;
56
import lombok.NoArgsConstructor;
7+
import lombok.Setter;
68

79
@NoArgsConstructor
10+
@Getter
11+
@Setter
812
public class FieldModel {
913

1014
private static final char CHAR = '_';
@@ -29,60 +33,4 @@ public String getCamelNameUpper() {
2933
return toCamelCase(name, true, CHAR);
3034
}
3135

32-
public String getName() {
33-
return name;
34-
}
35-
36-
public void setName(final String name) {
37-
this.name = name;
38-
}
39-
40-
public String getType() {
41-
return type;
42-
}
43-
44-
public void setType(final String type) {
45-
this.type = type;
46-
}
47-
48-
public Boolean getIsPrimaryKey() {
49-
return isPrimaryKey;
50-
}
51-
52-
public void setIsPrimaryKey(final Boolean isPrimaryKey) {
53-
this.isPrimaryKey = isPrimaryKey;
54-
}
55-
56-
public Boolean getNullable() {
57-
return nullable;
58-
}
59-
60-
public void setNullable(final Boolean nullable) {
61-
this.nullable = nullable;
62-
}
63-
64-
public String getDefaultValue() {
65-
return defaultValue;
66-
}
67-
68-
public void setDefaultValue(final String defaultValue) {
69-
this.defaultValue = defaultValue;
70-
}
71-
72-
public Integer getMinOccurs() {
73-
return minOccurs;
74-
}
75-
76-
public void setMinOccurs(final Integer minOccurs) {
77-
this.minOccurs = minOccurs;
78-
}
79-
80-
public String getMaxOccurs() {
81-
return maxOccurs;
82-
}
83-
84-
public void setMaxOccurs(final String maxOccurs) {
85-
this.maxOccurs = maxOccurs;
86-
}
87-
8836
}

0 commit comments

Comments
 (0)