Skip to content

Commit efd81d1

Browse files
author
NetoDevel
committed
Adds lombok generator
1 parent c46ca97 commit efd81d1

File tree

9 files changed

+99
-3
lines changed

9 files changed

+99
-3
lines changed

generator-core/src/main/java/br/com/generator/core/GeneratorExecutor.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,18 @@ public File generate(GeneratorOptions options) throws IOException {
3030

3131
public File addDependecies(GeneratorOptions options) throws IOException {
3232
String contentTemplate = loadPom(options.getTemplatePath());
33+
34+
Boolean alreadyDeps = false;
35+
if (options.getDependencies() != null) {
36+
for (int i = 0; i < options.getDependencies().size(); i++) {
37+
if (contentTemplate.contains(options.getDependencies().get(i))) {
38+
System.out.println("[INFO] ".concat(options.getDependencies().get(i)).concat(" already added."));
39+
alreadyDeps = true;
40+
}
41+
}
42+
}
43+
if (alreadyDeps) return null;
44+
3345
String contentReplaced = templateEngine.replaceValues(contentTemplate, options.getKeyValue());
3446

3547
File fileGenerated = new File(options.getDestination());

generator-core/src/main/java/br/com/generator/core/GeneratorOptions.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package br.com.generator.core;
22

3+
import java.util.List;
34
import java.util.Map;
45

56
public class GeneratorOptions {
@@ -10,6 +11,7 @@ public class GeneratorOptions {
1011
private String properties;
1112
private Map<String, String> pluginValues;
1213
private Map<String, String> keyValue;
14+
private List<String> dependencies;
1315

1416
public String getDestination() {
1517
return destination;
@@ -58,4 +60,12 @@ public Map<String, String> getPluginValues() {
5860
public void setPluginValues(Map<String, String> pluginValues) {
5961
this.pluginValues = pluginValues;
6062
}
63+
64+
public List<String> getDependencies() {
65+
return dependencies;
66+
}
67+
68+
public void setDependencies(List<String> dependencies) {
69+
this.dependencies = dependencies;
70+
}
6171
}

spring-scaffold-cli/src/main/java/br/com/command/model/ModelHandler.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import br.com.templates.entity.EntityCache;
66
import br.com.templates.entity.EntityExecutor;
77
import br.com.templates.entity.EntityGenerator;
8+
import br.com.templates.entity.LombokDependencyGenerator;
89
import joptsimple.OptionSet;
910
import joptsimple.OptionSpec;
1011
import org.springframework.boot.cli.command.options.OptionHandler;
@@ -64,6 +65,8 @@ private void generateModelJava(String nameClass, String parameters) throws IOExc
6465
EntityExecutor entityExecutor = new EntityExecutor();
6566
entityExecutor.run(nameClass, parameters);
6667

68+
lombokGenerate();
69+
6770
for (EntityCache entity : entityExecutor.getEntities()) {
6871
GeneratorOptions generatorOptions = new GeneratorOptions();
6972
generatorOptions.setName(entity.getName().concat(".java"));
@@ -78,6 +81,16 @@ private void generateModelJava(String nameClass, String parameters) throws IOExc
7881
EntityGenerator entityGenerator = new EntityGenerator(generatorOptions);
7982
entityGenerator.runGenerate();
8083
}
84+
85+
}
86+
87+
private void lombokGenerate() throws IOException {
88+
GeneratorOptions lombokDepsOptions = new GeneratorOptions();
89+
lombokDepsOptions.setTemplatePath(scaffoldInfoHelper.getPomPath());
90+
lombokDepsOptions.setDestination(scaffoldInfoHelper.getPomDest());
91+
92+
LombokDependencyGenerator lombokDependencyGenerator = new LombokDependencyGenerator(lombokDepsOptions);
93+
lombokDependencyGenerator.runGenerate();
8194
}
8295

8396
}

spring-scaffold-cli/src/test/java/br/com/command/model/ModelHandlerTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ public void shouldReturnOk() throws Exception {
3232

3333
Mockito.when(scaffoldInfoHelper.getPackage()).thenReturn("com.example");
3434
Mockito.when(scaffoldInfoHelper.getPathPackage()).thenReturn(temporaryPath.getAbsolutePath().concat("\\com\\example\\"));
35+
Mockito.when(scaffoldInfoHelper.getPomPath()).thenReturn(getClass().getResource("/templates/template-fake-pom.xml").toURI().getPath());
36+
Mockito.when(scaffoldInfoHelper.getPomDest()).thenReturn(temporaryPath.getAbsolutePath().concat("/pom.xml"));
3537

3638
ModelHandler modelHandler = new ModelHandler(scaffoldInfoHelper);
3739
ExitStatus exitStatus = modelHandler.run("-n", "User", "-p", "name:String Foo:references(relation:hasMany, name:String)");

templates/src/main/java/br/com/templates/entity/EntityExecutor.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,14 @@ public String run(String nameClass, String argumentValue) {
2020
String[] attributes = argumentValue.split(" ");
2121

2222
StringBuilder attributeToReplace = new StringBuilder();
23+
24+
String idAttribute =
25+
"\n" +
26+
"\t@Id @GeneratedValue(strategy = GenerationType.AUTO)\n" +
27+
"\tprivate Integer id;";
28+
29+
attributeToReplace.append("\t".concat(idAttribute.concat("\n")));
30+
2331
for (int i = 0; i < attributes.length; i++) {
2432
String attribute = generateAttribute(attributes[i]);
2533
attributeToReplace.append("\t".concat(attribute.concat("\n")));
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package br.com.templates.entity;
2+
3+
import br.com.generator.core.Generator;
4+
import br.com.generator.core.GeneratorOptions;
5+
6+
import java.io.File;
7+
import java.io.IOException;
8+
import java.util.Collections;
9+
import java.util.HashMap;
10+
import java.util.Map;
11+
12+
public class LombokDependencyGenerator extends Generator {
13+
14+
private GeneratorOptions generatorOptions;
15+
16+
public LombokDependencyGenerator(GeneratorOptions generatorOptions) {
17+
this.generatorOptions = generatorOptions;
18+
}
19+
20+
public File runGenerate() throws IOException {
21+
String dependency = "\n" +
22+
" <dependency>\n" +
23+
" <groupId>org.projectlombok</groupId>\n" +
24+
" <artifactId>lombok</artifactId>\n" +
25+
" <scope>provided</scope>\n" +
26+
" </dependency>\n" +
27+
"</dependencies>";
28+
29+
Map<String, String> keyValue = new HashMap<String, String>();
30+
keyValue.put("</dependencies>", dependency);
31+
this.generatorOptions.setKeyValue(keyValue);
32+
this.generatorOptions.setName("pom.xml");
33+
this.generatorOptions.setDependencies(Collections.singletonList("org.projectlombok"));
34+
35+
return addDependency(this.generatorOptions);
36+
}
37+
38+
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package ${package};
22

3-
@Id @GeneratedValue(strategy = GenerationType.AUTO)
4-
private Integer id;
3+
import lombok.Data;
4+
import java.util.List;
55

66
${content}

templates/src/test/java/br/com/templates/entity/EntityCacheTest.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,17 @@ public void shouldReturnContentOfUser() {
3030
"@Entity\n" +
3131
"@Data\n" +
3232
"public class User {\n" +
33+
"\t\n" +
34+
"\t@Id @GeneratedValue(strategy = GenerationType.AUTO)\n" +
35+
"\tprivate Integer id;\n" +
3336
"\tprivate String name;\n" +
3437
"\tprivate Integer age;\n" +
3538
"\t\t\n" +
3639
"\t@OneToMany\n" +
3740
"\tprivate List<Foo> foo;\n" +
3841
"}\n";
39-
assertEquals(expectedValue.trim(), entityExecutor.getEntities().get(1).getContent());
42+
43+
assertEquals(expectedValue.trim(), entityExecutor.getEntities().get(1).getContent().trim());
4044
}
4145

4246
@Test

templates/src/test/java/br/com/templates/entity/EntityExecutorTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ public void shouldCreateEntity() {
2222
"@Entity\n" +
2323
"@Data\n" +
2424
"public class User {\n" +
25+
"\t\n" +
26+
"\t@Id @GeneratedValue(strategy = GenerationType.AUTO)\n" +
27+
"\tprivate Integer id;\n" +
2528
"\tprivate String name;\n" +
2629
"\tprivate Integer age;\n" +
2730
"}\n";
@@ -46,6 +49,9 @@ public void givenRelationHasMany_shouldReturnWithRelation() {
4649
"@Entity\n" +
4750
"@Data\n" +
4851
"public class User {\n" +
52+
"\t\n" +
53+
"\t@Id @GeneratedValue(strategy = GenerationType.AUTO)\n" +
54+
"\tprivate Integer id;\n" +
4955
"\tprivate String name;\n" +
5056
"\tprivate Integer age;\n" +
5157
"\t\t\n" +
@@ -64,6 +70,9 @@ public void givenRelationBelongsTo_shouldReturnWithRelation() {
6470
"@Entity\n" +
6571
"@Data\n" +
6672
"public class User {\n" +
73+
"\t\n" +
74+
"\t@Id @GeneratedValue(strategy = GenerationType.AUTO)\n" +
75+
"\tprivate Integer id;\n" +
6776
"\tprivate String name;\n" +
6877
"\tprivate Integer age;\n" +
6978
"\t\t\n" +

0 commit comments

Comments
 (0)