Skip to content

Commit de6cb68

Browse files
author
Tihomir Surdilovic
authored
Merge pull request #72 from tsurdilo/statenamesfix
Fixing issue with diagram generation with state names with spaces
2 parents fd8f86a + 56b5ca4 commit de6cb68

File tree

6 files changed

+15
-6
lines changed

6 files changed

+15
-6
lines changed

diagram/src/main/java/io/serverlessworkflow/diagram/WorkflowDiagramImpl.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,10 @@ public String getSvgDiagram() throws Exception {
5555
if(workflow == null) {
5656
throw new IllegalAccessException("Unable to get diagram - no workflow set.");
5757
}
58-
SourceStringReader reader = new SourceStringReader(WorkflowToPlantuml.convert(workflow, showLegend));
58+
String diagramSource = WorkflowToPlantuml.convert(workflow, showLegend);
59+
SourceStringReader reader = new SourceStringReader(diagramSource);
5960
final ByteArrayOutputStream os = new ByteArrayOutputStream();
60-
String desc = reader.generateImage(os, new FileFormatOption(FileFormat.SVG));
61+
reader.generateImage(os, new FileFormatOption(FileFormat.SVG));
6162
os.close();
6263
return new String(os.toByteArray(), Charset.forName("UTF-8"));
6364
}

diagram/src/main/java/io/serverlessworkflow/diagram/model/ModelConnection.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ public class ModelConnection {
2424
private String desc;
2525

2626
public ModelConnection(String left, String right, String desc) {
27-
this.left = left;
28-
this.right = right;
27+
this.left = left.replaceAll("\\s", "");
28+
this.right = right.replaceAll("\\s", "");
2929
this.desc = desc;
3030
}
3131

diagram/src/main/java/io/serverlessworkflow/diagram/model/ModelState.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,12 @@
2323

2424
public class ModelState {
2525
private String name;
26+
private String noSpaceName;
2627
private List<String> stateInfo = new ArrayList<>();
2728

2829
public ModelState(String name) {
2930
this.name = name;
31+
this.noSpaceName = name.replaceAll("\\s", "");
3032
}
3133

3234
public void addInfo(String info) {
@@ -38,7 +40,7 @@ public String toString() {
3840
StringBuffer retBuff = new StringBuffer();
3941
retBuff.append(System.lineSeparator());
4042
for(String info : stateInfo) {
41-
retBuff.append(name).append(WorkflowDiagramUtils.description)
43+
retBuff.append(noSpaceName).append(WorkflowDiagramUtils.description)
4244
.append(info).append(System.lineSeparator());
4345
}
4446
retBuff.append(System.lineSeparator());

diagram/src/main/java/io/serverlessworkflow/diagram/model/ModelStateDef.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,21 @@
2121
public class ModelStateDef {
2222
private String name;
2323
private String type;
24+
private String noSpaceName;
2425

2526
public ModelStateDef(String name, String type) {
2627
this.name = name;
2728
this.type = type;
29+
this.noSpaceName = name.replaceAll("\\s", "");
2830
}
2931

3032
@Override
3133
public String toString() {
3234
StringBuffer retBuff = new StringBuffer();
3335
retBuff.append(WorkflowDiagramUtils.stateDef)
34-
.append(name)
36+
.append(noSpaceName)
37+
.append(WorkflowDiagramUtils.stateAsName)
38+
.append("\"" + name + "\"")
3539
.append(WorkflowDiagramUtils.typeDefStart)
3640
.append(type)
3741
.append(WorkflowDiagramUtils.typeDefEnd);

diagram/src/main/java/io/serverlessworkflow/diagram/utils/WorkflowDiagramUtils.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public class WorkflowDiagramUtils {
3535
public static final String legendStart = new StringBuffer().append("legend top center").append(System.lineSeparator()).toString();
3636
public static final String legendEnd = new StringBuffer().append(System.lineSeparator()).append("endlegend").toString();
3737
public static final String stateDef = "state ";
38+
public static final String stateAsName = " as ";
3839
public static final String typeDefStart = " << ";
3940
public static final String typeDefEnd = " >> ";
4041

diagram/src/test/java/io/serverlessworkflow/diagram/test/WorkflowDiagramTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ public void testSpecExamplesParsing(String workflowLocation) throws Exception {
6363
workflowDiagram.setWorkflow(workflow);
6464

6565
String diagramSVG = workflowDiagram.getSvgDiagram();
66+
6667
Assertions.assertNotNull(diagramSVG);
6768

6869
}

0 commit comments

Comments
 (0)