From 5d48d09be1c5d4bf6e56fa5506e55bbf1e59bfed Mon Sep 17 00:00:00 2001 From: huangsimin Date: Fri, 17 Jan 2020 10:59:21 +0800 Subject: [PATCH 1/2] =?UTF-8?q?change:=20=E4=BF=AE=E6=94=B9API=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=90=8D=E7=A7=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 4 +- src/main/java/com/yame/uml/Application.java | 1 - src/main/java/com/yame/uml/control/api.java | 49 ++++++++++--------- src/main/java/com/yame/uml/model/Result.java | 3 -- .../java/com/yame/uml/model/ResultType.java | 3 ++ 5 files changed, 32 insertions(+), 28 deletions(-) diff --git a/pom.xml b/pom.xml index 654f71d..5f7893a 100644 --- a/pom.xml +++ b/pom.xml @@ -11,8 +11,8 @@ com.yame uml 0.0.1-SNAPSHOT - demo - Demo project for Spring Boot + umlserver + Demo umlserver project for Spring Boot 1.8 diff --git a/src/main/java/com/yame/uml/Application.java b/src/main/java/com/yame/uml/Application.java index ef31fa2..35b7385 100644 --- a/src/main/java/com/yame/uml/Application.java +++ b/src/main/java/com/yame/uml/Application.java @@ -2,7 +2,6 @@ package com.yame.uml; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.ComponentScans; @SpringBootApplication public class Application { diff --git a/src/main/java/com/yame/uml/control/api.java b/src/main/java/com/yame/uml/control/api.java index 087284a..ac70094 100644 --- a/src/main/java/com/yame/uml/control/api.java +++ b/src/main/java/com/yame/uml/control/api.java @@ -1,39 +1,23 @@ package com.yame.uml.control; import java.io.ByteArrayOutputStream; -import java.io.DataOutputStream; -import java.io.File; -import java.io.FileOutputStream; import java.io.IOException; -import java.io.ObjectOutputStream; import java.io.OutputStream; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; import java.util.List; -import javax.servlet.http.HttpServletRequest; - import com.yame.uml.model.Result; import com.yame.uml.model.ResultType; -import net.sourceforge.plantuml.BlockUml; -import net.sourceforge.plantuml.FileFormat; -import net.sourceforge.plantuml.FileFormatOption; -import net.sourceforge.plantuml.LineLocation; -import net.sourceforge.plantuml.SourceStringReader; -import net.sourceforge.plantuml.api.PlantumlUtils; -import net.sourceforge.plantuml.code.Transcoder; -import net.sourceforge.plantuml.code.TranscoderUtil; -import net.sourceforge.plantuml.core.*; - -import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import net.sourceforge.plantuml.BlockUml; +import net.sourceforge.plantuml.FileFormat; +import net.sourceforge.plantuml.FileFormatOption; +import net.sourceforge.plantuml.SourceStringReader; + @RestController @RequestMapping("/api") public class api { @@ -57,7 +41,28 @@ public class api { } @PostMapping("/v1/megreflow") - public Result megreSVG(@RequestParam("data") String data) throws IOException { + public Result megreSVG(@RequestParam("src") String src, @RequestParam("dst") String dst) throws IOException { + String source = getUmlSource(src); + List srcblocks = new SourceStringReader(source).getBlocks(); + + String destination = getUmlSource(dst); + List dstblocks = new SourceStringReader(destination).getBlocks(); + + Result result = new Result(); + + if(srcblocks.size() != 0 && dstblocks.size() != 0) { + + + + } + + + result.setType(ResultType.ErrorMegreUML2SVG); + return result; + } + + @PostMapping("/v1/uml2svg") + public Result uml2SVG(@RequestParam("data") String data) throws IOException { String source = getUmlSource(data); List blocks = new SourceStringReader(source).getBlocks(); // FileOutputStream os = new FileOutputStream(new File("./t.svg")); diff --git a/src/main/java/com/yame/uml/model/Result.java b/src/main/java/com/yame/uml/model/Result.java index a5bc4e0..3c44ff0 100644 --- a/src/main/java/com/yame/uml/model/Result.java +++ b/src/main/java/com/yame/uml/model/Result.java @@ -1,7 +1,5 @@ package com.yame.uml.model; -import com.fasterxml.jackson.annotation.JsonFormat; - import java.util.ArrayList; import java.util.List; @@ -13,7 +11,6 @@ public class Result { public ResultType type; public List content; - public Result() { content = new ArrayList(); } diff --git a/src/main/java/com/yame/uml/model/ResultType.java b/src/main/java/com/yame/uml/model/ResultType.java index 5342f9a..4235abf 100644 --- a/src/main/java/com/yame/uml/model/ResultType.java +++ b/src/main/java/com/yame/uml/model/ResultType.java @@ -4,10 +4,13 @@ public enum ResultType { Success("Success", 1), Source2PNG("Source2PNG", 101), Source2SVG("Source2SVG", 102), + + MegreUML2SVG("megreUML2SVG", 202), Error("Error", 0), ErrorSource2PNG("Error Source2PNG: source format is erorr", -101), ErrorSource2SVG("Error Source2SVG: source format is erorr", -102), + ErrorMegreUML2SVG("Error MegreUML2SVG: source format is erorr or not support format", -202), ; private String status; From f4e92922c92a8f366d74dfc0f2f3505cb6f64f01 Mon Sep 17 00:00:00 2001 From: huangsimin Date: Fri, 17 Jan 2020 15:15:33 +0800 Subject: [PATCH 2/2] =?UTF-8?q?uml=20=E6=8E=A5=E5=8F=A30.0.1=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 16 ++--- src/main/java/com/yame/uml/control/api.java | 24 ++++++-- src/main/java/com/yame/uml/model/Result.java | 23 ++++++- .../java/com/yame/uml/model/ResultType.java | 60 ++++++++++++------- 4 files changed, 88 insertions(+), 35 deletions(-) diff --git a/pom.xml b/pom.xml index 5f7893a..a794d14 100644 --- a/pom.xml +++ b/pom.xml @@ -1,12 +1,11 @@ - - + + 4.0.0 org.springframework.boot spring-boot-starter-parent 2.2.2.RELEASE - + com.yame uml @@ -19,12 +18,16 @@ + + org.springframework.boot + spring-boot-starter-logging + net.sourceforge.plantuml plantuml 1.2020.0 - + org.springframework.boot @@ -55,7 +58,6 @@ - @@ -67,4 +69,4 @@ - + \ No newline at end of file diff --git a/src/main/java/com/yame/uml/control/api.java b/src/main/java/com/yame/uml/control/api.java index ac70094..ca04103 100644 --- a/src/main/java/com/yame/uml/control/api.java +++ b/src/main/java/com/yame/uml/control/api.java @@ -13,13 +13,17 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import lombok.extern.slf4j.Slf4j; import net.sourceforge.plantuml.BlockUml; import net.sourceforge.plantuml.FileFormat; import net.sourceforge.plantuml.FileFormatOption; import net.sourceforge.plantuml.SourceStringReader; +import net.sourceforge.plantuml.core.Diagram; +import net.sourceforge.plantuml.error.PSystemError; @RestController @RequestMapping("/api") +@Slf4j public class api { static public String getUmlSource(String source) { @@ -52,11 +56,8 @@ public class api { if(srcblocks.size() != 0 && dstblocks.size() != 0) { - - + } - - result.setType(ResultType.ErrorMegreUML2SVG); return result; } @@ -71,15 +72,26 @@ public class api { Result result = new Result(); if(blocks.size() != 0) { for(BlockUml block: blocks) { + Diagram diagram = block.getDiagram(); + if (diagram instanceof PSystemError) { + result.setType(ResultType.ErrorSource2SVG); + int errorLine = ((PSystemError) diagram).getLineLocation().getPosition(); + result.setMsg("error line: " + errorLine); + } else { + result.setType(ResultType.Source2SVG); + } + OutputStream os = new ByteArrayOutputStream(); - block.getDiagram().exportDiagram(os, 0, new FileFormatOption(FileFormat.SVG)); - result.setType(ResultType.Source2SVG); + diagram.exportDiagram(os, 0, new FileFormatOption(FileFormat.SVG)); result.getContent().add(os.toString()); return result; } } + + result.setType(ResultType.ErrorSource2SVG); + log.debug( ResultType.ErrorSource2SVG + data); return result; } } \ No newline at end of file diff --git a/src/main/java/com/yame/uml/model/Result.java b/src/main/java/com/yame/uml/model/Result.java index 3c44ff0..49e8eed 100644 --- a/src/main/java/com/yame/uml/model/Result.java +++ b/src/main/java/com/yame/uml/model/Result.java @@ -6,10 +6,13 @@ import java.util.List; /** * result */ + public class Result { - public ResultType type; - public List content; + + private ResultType type; + private String msg; + private List content; public Result() { content = new ArrayList(); @@ -19,6 +22,14 @@ public class Result { return content; } + public void addContent(String content) { + this.content.add(content); + } + + public void delContent(int idx) { + this.content.remove(idx); + } + public ResultType getType() { return type; } @@ -26,4 +37,12 @@ public class Result { public void setType(ResultType type) { this.type = type; } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } } \ No newline at end of file diff --git a/src/main/java/com/yame/uml/model/ResultType.java b/src/main/java/com/yame/uml/model/ResultType.java index 4235abf..d9f026e 100644 --- a/src/main/java/com/yame/uml/model/ResultType.java +++ b/src/main/java/com/yame/uml/model/ResultType.java @@ -1,32 +1,36 @@ package com.yame.uml.model; -public enum ResultType { - Success("Success", 1), - Source2PNG("Source2PNG", 101), - Source2SVG("Source2SVG", 102), +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonFormat.Shape; +import com.fasterxml.jackson.annotation.JsonProperty; - MegreUML2SVG("megreUML2SVG", 202), + +@JsonFormat(shape = Shape.OBJECT) +public enum ResultType { + Success("Success", 1, true), + Source2PNG("Source2PNG", 101, true), + Source2SVG("Source2SVG", 102, true), + + MegreUML2SVG("megreUML2SVG", 202, true), - Error("Error", 0), - ErrorSource2PNG("Error Source2PNG: source format is erorr", -101), - ErrorSource2SVG("Error Source2SVG: source format is erorr", -102), - ErrorMegreUML2SVG("Error MegreUML2SVG: source format is erorr or not support format", -202), + Error("Error", 0, false), + ErrorSource2PNG("Error Source2PNG", -101, false), + ErrorSource2SVG("Error Source2SVG", -102, false), + + ErrorMegreUML2SVG("Error MegreUML2SVG", -202, false), ; - private String status; + @JsonProperty("desc") + private String desc; + @JsonProperty("code") private int code; + @JsonProperty("success") + private boolean success; - private ResultType(String status, int code) { - this.status = status; + private ResultType(String desc, int code, Boolean isSuccessed) { + this.desc = desc; this.code = code; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; + this.success = isSuccessed; } public int getCode() { @@ -36,4 +40,20 @@ public enum ResultType { public void setCode(int code) { this.code = code; } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } } \ No newline at end of file