|
@@ -874,10 +874,16 @@ public class GeneratorProjectTemplate {
|
|
|
_builder.append(";");
|
|
|
_builder.newLineIfNotEmpty();
|
|
|
_builder.newLine();
|
|
|
+ _builder.append("import java.io.File;");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("import java.io.FileOutputStream;");
|
|
|
+ _builder.newLine();
|
|
|
_builder.append("import org.yakindu.sct.generator.core.AbstractWorkspaceGenerator;");
|
|
|
_builder.newLine();
|
|
|
_builder.append("import org.yakindu.sct.model.sexec.ExecutionFlow;");
|
|
|
_builder.newLine();
|
|
|
+ _builder.append("import org.yakindu.sct.model.sexec.ExecutionState;");
|
|
|
+ _builder.newLine();
|
|
|
_builder.append("import org.yakindu.sct.model.sgen.GeneratorEntry;");
|
|
|
_builder.newLine();
|
|
|
_builder.newLine();
|
|
@@ -888,13 +894,93 @@ public class GeneratorProjectTemplate {
|
|
|
_builder.append(" extends AbstractWorkspaceGenerator {");
|
|
|
_builder.newLineIfNotEmpty();
|
|
|
_builder.append("\t");
|
|
|
+ _builder.append("private static final String LBR = \"\\n\\r\";");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t");
|
|
|
_builder.append("@Override");
|
|
|
_builder.newLine();
|
|
|
_builder.append("\t");
|
|
|
_builder.append("public void generate(ExecutionFlow flow, GeneratorEntry entry) {");
|
|
|
_builder.newLine();
|
|
|
_builder.append("\t\t");
|
|
|
- _builder.append("writeToConsole(\"Output shall go into project \"+getTargetProjectPath(entry));");
|
|
|
+ _builder.append("StringBuilder builder = new StringBuilder();");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t\t");
|
|
|
+ _builder.append("builder.append(\"The name of the Statemachine is \");");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t\t");
|
|
|
+ _builder.append("builder.append(flow.getName());");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t\t");
|
|
|
+ _builder.append("builder.append(LBR).append(LBR);");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t\t");
|
|
|
+ _builder.append("builder.append(\"The Statemachine has the following states:\");");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t\t");
|
|
|
+ _builder.append("builder.append(LBR).append(LBR);");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t\t");
|
|
|
+ _builder.append("for (ExecutionState state : flow.getStates()) {");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t\t\t");
|
|
|
+ _builder.append("builder.append(");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t\t\t\t\t");
|
|
|
+ _builder.append("state.getName().replaceFirst(flow.getName() + \"\\\\.\", \"\"))");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t\t\t\t\t");
|
|
|
+ _builder.append(".append(LBR);");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t\t");
|
|
|
+ _builder.append("}");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t\t");
|
|
|
+ _builder.append("File targetFolder = getTargetFolder(entry);");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t\t");
|
|
|
+ _builder.append("File targetFile = new File(targetFolder.getPath() + File.separator");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t\t\t\t");
|
|
|
+ _builder.append("+ flow.getName() + \".txt\");");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t\t");
|
|
|
+ _builder.append("write(targetFolder, targetFile, builder.toString());");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t\t");
|
|
|
+ _builder.append("refreshTargetProject(entry);");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t");
|
|
|
+ _builder.append("}");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t");
|
|
|
+ _builder.append("private void write(File targetFolder, File targetFile, String content) {");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t\t");
|
|
|
+ _builder.append("try {");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t\t\t");
|
|
|
+ _builder.append("targetFolder.mkdirs();");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t\t\t");
|
|
|
+ _builder.append("FileOutputStream out = new FileOutputStream(targetFile);");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t\t\t");
|
|
|
+ _builder.append("out.write(content.getBytes());");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t\t\t");
|
|
|
+ _builder.append("out.close();");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t\t");
|
|
|
+ _builder.append("} catch (Exception e) {");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t\t\t");
|
|
|
+ _builder.append("writeToConsole(e);");
|
|
|
+ _builder.newLine();
|
|
|
+ _builder.append("\t\t");
|
|
|
+ _builder.append("}");
|
|
|
_builder.newLine();
|
|
|
_builder.append("\t");
|
|
|
_builder.append("}");
|
|
@@ -1190,4 +1276,4 @@ public class GeneratorProjectTemplate {
|
|
|
}
|
|
|
return _builder;
|
|
|
}
|
|
|
-}
|
|
|
+}
|