Skip to content

Commit 42b7bf7

Browse files
committed
fix #39 and fix clean controller generator
1 parent 1d84753 commit 42b7bf7

File tree

12 files changed

+140
-27
lines changed

12 files changed

+140
-27
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.example.controller;
2+
import org.springframework.stereotype.Controller;
3+
import org.springframework.web.bind.annotation.GetMapping;
4+
import org.springframework.web.bind.annotation.RequestMapping;
5+
6+
@Controller
7+
@RequestMapping("/product")
8+
public class ProductController {
9+
10+
@GetMapping
11+
public String index() {
12+
return "product/index";
13+
}
14+
15+
}
+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<!DOCTYPE html>
2+
<html xmlns:th="http://www.thymeleaf.org"
3+
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
4+
layout:decorator="layout">
5+
<head>
6+
<meta charset="utf-8" />
7+
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
8+
<meta name="description" content="" />
9+
<meta name="author" content="" />
10+
</head>
11+
<body>
12+
13+
<div layout:fragment="content">
14+
<h1>Product</h1>
15+
<hr />
16+
</div>
17+
</body>
18+
</html>
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,26 @@
11
package br.com.generate.java.command.controller;
22

3-
import java.io.File;
43
import java.io.IOException;
54

6-
import org.apache.commons.io.FileUtils;
5+
import br.com.generate.Layers;
6+
import br.com.generate.ReadTemplateFile;
77

8-
import br.com.generate.ReadScaffoldInfo;
8+
public class ControllerCleanGenerator extends ReadTemplateFile {
99

10-
public class ControllerCleanGenerator extends ReadScaffoldInfo {
11-
12-
public ControllerCleanGenerator(String className) throws IOException {
13-
generate(className);
14-
}
10+
@Override
11+
public String getLayer() {
12+
return Layers.CONTROLLER;
13+
}
14+
15+
@Override
16+
protected String operationGenerate(String javaStrings, String nameClass, String parameters) {
17+
return javaStrings.replace("${package}", getPackage() + ".controller")
18+
.replace("${path}", nameClass.toLowerCase())
19+
.replace("${className}", nameClass);
20+
}
1521

16-
public void generate(String className) throws IOException {
17-
File javaTemplateFile = new File(getUserDir() + "/src/main/resources/templates/java/controller/template-clean-controller.txt");
18-
String javaStrings = FileUtils.readFileToString(javaTemplateFile);
19-
20-
javaStrings = javaStrings.replace("${package}", getPackage() + ".controller");
21-
javaStrings = javaStrings.replace("${className}", className);
22-
23-
File newJavaFile = new File(getPathPackage() + "controller/" + className + "Controller.java");
24-
FileUtils.writeStringToFile(newJavaFile, javaStrings);
25-
System.out.println("create " + getPathPackage() + className + "Controller.java");
22+
public static void main(String[] args) throws IOException {
23+
new ControllerCleanGenerator().generate("Credential", null, "template-clean-controller.txt");
2624
}
2725

2826
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package br.com.generate.thymeleaf;
2+
3+
import java.io.File;
4+
import java.io.IOException;
5+
6+
import org.apache.commons.io.FileUtils;
7+
import org.apache.commons.io.IOUtils;
8+
9+
public class ThymeleafCleanGenerator extends AbstractThymeleafGenerate {
10+
11+
public void index(String className, String parameters) throws IOException {
12+
String htmlString = IOUtils.toString(getClass().getResourceAsStream("/templates/template-clean-index.html"), null);
13+
String template = "layout";
14+
String classNameParam = className;
15+
String paramClassName = className.toLowerCase();
16+
String pathUrl = "/" + className.toLowerCase() + "s";
17+
String eachParam = "list" + className;
18+
19+
htmlString = htmlString.replace("${template}", template);
20+
htmlString = htmlString.replace("${className}", classNameParam);
21+
htmlString = htmlString.replace("paramClassName", paramClassName);
22+
htmlString = htmlString.replace("eachParam", eachParam);
23+
htmlString = htmlString.replace("url_path", pathUrl);
24+
25+
File newHtmlFile = new File(getUserDir() + "/src/main/resources/templates/" + className.toLowerCase() + "/index.html");
26+
27+
FileUtils.writeStringToFile(newHtmlFile, htmlString);
28+
System.out.println("create /src/main/resources/templates/" + className.toLowerCase() + "/index.html");
29+
}
30+
31+
}
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
package ${package};
22
import org.springframework.stereotype.Controller;
3+
import org.springframework.web.bind.annotation.GetMapping;
4+
import org.springframework.web.bind.annotation.RequestMapping;
35

46
@Controller
7+
@RequestMapping("/${path}")
58
public class ${className}Controller {
69

10+
@GetMapping
11+
public String index() {
12+
return "${path}/index";
13+
}
14+
715
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<!DOCTYPE html>
2+
<html xmlns:th="http://www.thymeleaf.org"
3+
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
4+
layout:decorator="${template}">
5+
<head>
6+
<meta charset="utf-8" />
7+
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
8+
<meta name="description" content="" />
9+
<meta name="author" content="" />
10+
</head>
11+
<body>
12+
13+
<div layout:fragment="content">
14+
<h1>${className}</h1>
15+
<hr />
16+
</div>
17+
</body>
18+
</html>

Diff for: spring-scaffold-cli/src/main/java/br/com/netodevel/command/controller/ControllerHandler.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
import java.io.IOException;
44
import java.util.Arrays;
55

6-
import joptsimple.OptionSet;
7-
import joptsimple.OptionSpec;
8-
96
import org.springframework.boot.cli.command.options.OptionHandler;
107
import org.springframework.boot.cli.command.status.ExitStatus;
118

129
import br.com.generate.java.command.controller.ControllerCleanGenerator;
10+
import br.com.generate.thymeleaf.ThymeleafCleanGenerator;
11+
import joptsimple.OptionSet;
12+
import joptsimple.OptionSpec;
1313

1414
/**
1515
* @author NetoDevel
@@ -33,7 +33,8 @@ protected ExitStatus run(OptionSet options) throws Exception {
3333
}
3434

3535
private void generateControllerJava(String nameClass) throws IOException {
36-
new ControllerCleanGenerator("User");
36+
new ControllerCleanGenerator().generate(nameClass, null, "template-clean-controller.txt");
37+
new ThymeleafCleanGenerator().index(nameClass, null);
3738
}
3839

3940
}

Diff for: spring-scaffold-cli/src/main/java/br/com/netodevel/scaffold/ScaffoldCommand.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@ public String getUsageHelp() {
2626
@Override
2727
public Collection<HelpExample> getExamples() {
2828
List<HelpExample> list = new ArrayList<HelpExample>();
29-
list.add(new HelpExample("create scaffold api kotlin", "scaffold -n User -p name:String -l kotlin"));
30-
list.add(new HelpExample("create scaffold api java", "scaffold -n User -p name:String -l java"));
29+
list.add(new HelpExample("scaffold", "scaffold -n User -p name:String"));
3130
return list;
3231
}
3332
}

Diff for: spring-scaffold-cli/src/main/java/br/com/netodevel/scaffold/ScaffoldHandler.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import br.com.generate.java.command.model.ModelGenerator;
1111
import br.com.generate.java.command.repository.RepositoryGenerator;
1212
import br.com.generate.java.command.service.ServiceGenerator;
13-
import br.com.generate.migrate.Migrations;
1413
import br.com.generate.thymeleaf.ThymeleafGenerator;
1514
import joptsimple.OptionSet;
1615
import joptsimple.OptionSpec;
@@ -55,7 +54,7 @@ private void generateScaffoldJava(String nameClass, String parametersClass) thro
5554
new ServiceGenerator().generate(nameClass, null, "template-service.txt");
5655
new ControllerGenerator().generate(nameClass, null, "template-controller.txt");
5756
new ThymeleafGenerator(nameClass, parametersClass);
58-
new Migrations().create(nameClass, parametersClass);
57+
//new Migrations().create(nameClass, parametersClass);
5958
}
6059
} catch (Exception e) {
6160
e.printStackTrace();
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
package ${package};
22
import org.springframework.stereotype.Controller;
3+
import org.springframework.web.bind.annotation.GetMapping;
4+
import org.springframework.web.bind.annotation.RequestMapping;
35

46
@Controller
7+
@RequestMapping("/${path}")
58
public class ${className}Controller {
69

10+
@GetMapping
11+
public String index() {
12+
return "${path}/index";
13+
}
14+
715
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<!DOCTYPE html>
2+
<html xmlns:th="http://www.thymeleaf.org"
3+
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
4+
layout:decorator="${template}">
5+
<head>
6+
<meta charset="utf-8" />
7+
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
8+
<meta name="description" content="" />
9+
<meta name="author" content="" />
10+
</head>
11+
<body>
12+
13+
<div layout:fragment="content">
14+
<h1>${className}</h1>
15+
<hr />
16+
</div>
17+
</body>
18+
</html>

Diff for: spring-scaffold-cli/src/test/java/br/com/netodevel/command/TestScaffoldCommand.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class TestScaffoldCommand {
1414
@Test
1515
public void testRunScaffoldCommand() {
1616
try {
17-
new ScaffoldCommand("scaffold", "generate scaffold", new ScaffoldHandler()).run("-n UserModel", "-pname:String email:String idade:Integer dateCreated:Date");
17+
new ScaffoldCommand("scaffold", "generate scaffold", new ScaffoldHandler()).run("-n UserModel", "-pname:String email:String idade:Integer dateCreated:Date admin:Boolean");
1818
} catch (Exception e) {
1919
e.printStackTrace();
2020
}

0 commit comments

Comments
 (0)