Skip to content
This repository has been archived by the owner on Oct 31, 2021. It is now read-only.

Commit

Permalink
fix #39 and fix clean controller generator
Browse files Browse the repository at this point in the history
  • Loading branch information
netodevel committed Sep 9, 2017
1 parent 1d84753 commit 42b7bf7
Show file tree
Hide file tree
Showing 12 changed files with 140 additions and 27 deletions.
15 changes: 15 additions & 0 deletions sample/src/main/java/com/example/controller/ProductController.java
@@ -0,0 +1,15 @@
package com.example.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/product")
public class ProductController {

@GetMapping
public String index() {
return "product/index";
}

}
18 changes: 18 additions & 0 deletions sample/src/main/resources/templates/product/index.html
@@ -0,0 +1,18 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorator="layout">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<meta name="description" content="" />
<meta name="author" content="" />
</head>
<body>

<div layout:fragment="content">
<h1>Product</h1>
<hr />
</div>
</body>
</html>
@@ -1,28 +1,26 @@
package br.com.generate.java.command.controller;

import java.io.File;
import java.io.IOException;

import org.apache.commons.io.FileUtils;
import br.com.generate.Layers;
import br.com.generate.ReadTemplateFile;

import br.com.generate.ReadScaffoldInfo;
public class ControllerCleanGenerator extends ReadTemplateFile {

public class ControllerCleanGenerator extends ReadScaffoldInfo {

public ControllerCleanGenerator(String className) throws IOException {
generate(className);
}
@Override
public String getLayer() {
return Layers.CONTROLLER;
}

@Override
protected String operationGenerate(String javaStrings, String nameClass, String parameters) {
return javaStrings.replace("${package}", getPackage() + ".controller")
.replace("${path}", nameClass.toLowerCase())
.replace("${className}", nameClass);
}

public void generate(String className) throws IOException {
File javaTemplateFile = new File(getUserDir() + "/src/main/resources/templates/java/controller/template-clean-controller.txt");
String javaStrings = FileUtils.readFileToString(javaTemplateFile);

javaStrings = javaStrings.replace("${package}", getPackage() + ".controller");
javaStrings = javaStrings.replace("${className}", className);

File newJavaFile = new File(getPathPackage() + "controller/" + className + "Controller.java");
FileUtils.writeStringToFile(newJavaFile, javaStrings);
System.out.println("create " + getPathPackage() + className + "Controller.java");
public static void main(String[] args) throws IOException {
new ControllerCleanGenerator().generate("Credential", null, "template-clean-controller.txt");
}

}
@@ -0,0 +1,31 @@
package br.com.generate.thymeleaf;

import java.io.File;
import java.io.IOException;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;

public class ThymeleafCleanGenerator extends AbstractThymeleafGenerate {

public void index(String className, String parameters) throws IOException {
String htmlString = IOUtils.toString(getClass().getResourceAsStream("/templates/template-clean-index.html"), null);
String template = "layout";
String classNameParam = className;
String paramClassName = className.toLowerCase();
String pathUrl = "/" + className.toLowerCase() + "s";
String eachParam = "list" + className;

htmlString = htmlString.replace("${template}", template);
htmlString = htmlString.replace("${className}", classNameParam);
htmlString = htmlString.replace("paramClassName", paramClassName);
htmlString = htmlString.replace("eachParam", eachParam);
htmlString = htmlString.replace("url_path", pathUrl);

File newHtmlFile = new File(getUserDir() + "/src/main/resources/templates/" + className.toLowerCase() + "/index.html");

FileUtils.writeStringToFile(newHtmlFile, htmlString);
System.out.println("create /src/main/resources/templates/" + className.toLowerCase() + "/index.html");
}

}
@@ -1,7 +1,15 @@
package ${package};
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/${path}")
public class ${className}Controller {

@GetMapping
public String index() {
return "${path}/index";
}

}
@@ -0,0 +1,18 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorator="${template}">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<meta name="description" content="" />
<meta name="author" content="" />
</head>
<body>

<div layout:fragment="content">
<h1>${className}</h1>
<hr />
</div>
</body>
</html>
Expand Up @@ -3,13 +3,13 @@
import java.io.IOException;
import java.util.Arrays;

import joptsimple.OptionSet;
import joptsimple.OptionSpec;

import org.springframework.boot.cli.command.options.OptionHandler;
import org.springframework.boot.cli.command.status.ExitStatus;

import br.com.generate.java.command.controller.ControllerCleanGenerator;
import br.com.generate.thymeleaf.ThymeleafCleanGenerator;
import joptsimple.OptionSet;
import joptsimple.OptionSpec;

/**
* @author NetoDevel
Expand All @@ -33,7 +33,8 @@ protected ExitStatus run(OptionSet options) throws Exception {
}

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

}
Expand Up @@ -26,8 +26,7 @@ public String getUsageHelp() {
@Override
public Collection<HelpExample> getExamples() {
List<HelpExample> list = new ArrayList<HelpExample>();
list.add(new HelpExample("create scaffold api kotlin", "scaffold -n User -p name:String -l kotlin"));
list.add(new HelpExample("create scaffold api java", "scaffold -n User -p name:String -l java"));
list.add(new HelpExample("scaffold", "scaffold -n User -p name:String"));
return list;
}
}
Expand Up @@ -10,7 +10,6 @@
import br.com.generate.java.command.model.ModelGenerator;
import br.com.generate.java.command.repository.RepositoryGenerator;
import br.com.generate.java.command.service.ServiceGenerator;
import br.com.generate.migrate.Migrations;
import br.com.generate.thymeleaf.ThymeleafGenerator;
import joptsimple.OptionSet;
import joptsimple.OptionSpec;
Expand Down Expand Up @@ -55,7 +54,7 @@ private void generateScaffoldJava(String nameClass, String parametersClass) thro
new ServiceGenerator().generate(nameClass, null, "template-service.txt");
new ControllerGenerator().generate(nameClass, null, "template-controller.txt");
new ThymeleafGenerator(nameClass, parametersClass);
new Migrations().create(nameClass, parametersClass);
//new Migrations().create(nameClass, parametersClass);
}
} catch (Exception e) {
e.printStackTrace();
Expand Down
@@ -1,7 +1,15 @@
package ${package};
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/${path}")
public class ${className}Controller {

@GetMapping
public String index() {
return "${path}/index";
}

}
@@ -0,0 +1,18 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorator="${template}">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<meta name="description" content="" />
<meta name="author" content="" />
</head>
<body>

<div layout:fragment="content">
<h1>${className}</h1>
<hr />
</div>
</body>
</html>
Expand Up @@ -14,7 +14,7 @@ public class TestScaffoldCommand {
@Test
public void testRunScaffoldCommand() {
try {
new ScaffoldCommand("scaffold", "generate scaffold", new ScaffoldHandler()).run("-n UserModel", "-pname:String email:String idade:Integer dateCreated:Date");
new ScaffoldCommand("scaffold", "generate scaffold", new ScaffoldHandler()).run("-n UserModel", "-pname:String email:String idade:Integer dateCreated:Date admin:Boolean");
} catch (Exception e) {
e.printStackTrace();
}
Expand Down

0 comments on commit 42b7bf7

Please sign in to comment.