From bc7724a9824e4fbb1241718e1f876b9dd3a64eea Mon Sep 17 00:00:00 2001
From: SebastianEbert <sebastian.ebert@tu-dresden.de>
Date: Thu, 3 Mar 2022 10:49:15 +0100
Subject: [PATCH] working on tina integration

---
 .../splitter/export/ComplexElementsConverter.java  | 14 +++++++++++---
 .../inf/st/pnml/splitter/export/PnmlExporter.java  |  2 +-
 .../export/PrimitiveElementsConverter.java         |  2 +-
 3 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/src/main/java/de/tudresden/inf/st/pnml/splitter/export/ComplexElementsConverter.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/export/ComplexElementsConverter.java
index d9965b0..314c6db 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/splitter/export/ComplexElementsConverter.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/splitter/export/ComplexElementsConverter.java
@@ -49,9 +49,17 @@ public class ComplexElementsConverter {
                 pn.setTypeHLAPI(PNType.PTNET);
             }
 
-            petriNet.getToolspecificList().forEach(toolInfo ->
-                    pn.addToolspecificsHLAPI(new ToolInfoHLAPI(toolInfo.getTool(), toolInfo.getVersion(),
-                            clipToolSpecificsFormattedXmlBuffer(toolInfo.getTool(), toolInfo.getVersion(), toolInfo.getFormattedXMLBuffer()), toolInfo.getToolInfoGrammarURI(), null)));
+            for(int i = 0; i < petriNet.getNumToolspecific(); i++){
+                if(petriNet.getToolspecific(i).getFormattedXMLBuffer().indexOf("</toolspecific>") > -1){
+
+                    pn.addToolspecificsHLAPI(new ToolInfoHLAPI(petriNet.getToolspecific(i).getTool(), petriNet.getToolspecific(i).getVersion(),
+                            clipToolSpecificsFormattedXmlBuffer(petriNet.getToolspecific(i).getTool(), petriNet.getToolspecific(i).getVersion(),
+                                    petriNet.getToolspecific(i).getFormattedXMLBuffer()), petriNet.getToolspecific(i).getToolInfoGrammarURI(), null));
+                }else{
+                    pn.addToolspecificsHLAPI(new ToolInfoHLAPI(petriNet.getToolspecific(i).getTool(), petriNet.getToolspecific(i).getVersion(), petriNet.getToolspecific(i).getFormattedXMLBuffer()
+                            , petriNet.getToolspecific(i).getToolInfoGrammarURI(), null));
+                }
+            }
 
             return pn;
 
diff --git a/src/main/java/de/tudresden/inf/st/pnml/splitter/export/PnmlExporter.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/export/PnmlExporter.java
index c3ee9d1..5a736f1 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/splitter/export/PnmlExporter.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/splitter/export/PnmlExporter.java
@@ -62,7 +62,7 @@ public class PnmlExporter {
 
         try {
             PnmlExport pex = new PnmlExport();
-            pex.exportObject(doc, targetPath);
+            pex.exportObject(doc, targetPath, true);
         } catch (UnhandledNetType | OCLValidationFailed unhandledNetType) {
             logger.error("EXCEPTION: " + Arrays.toString(unhandledNetType.getStackTrace()));
             hasFailed = true;
diff --git a/src/main/java/de/tudresden/inf/st/pnml/splitter/export/PrimitiveElementsConverter.java b/src/main/java/de/tudresden/inf/st/pnml/splitter/export/PrimitiveElementsConverter.java
index 66d595a..faa3353 100644
--- a/src/main/java/de/tudresden/inf/st/pnml/splitter/export/PrimitiveElementsConverter.java
+++ b/src/main/java/de/tudresden/inf/st/pnml/splitter/export/PrimitiveElementsConverter.java
@@ -9,7 +9,7 @@ public class PrimitiveElementsConverter {
 
     private static StringBuffer clipToolSpecificsFormattedXmlBuffer(String toolName, String toolVersion, StringBuffer formattedXmlBuffer) {
 
-        if (formattedXmlBuffer != null) {
+        if (formattedXmlBuffer != null && formattedXmlBuffer.indexOf("</toolspecific>") > -1) {
 
             int endCharsLength = 15;
             int toolNameLenth = (toolName == null) ? 0 : toolName.length();
-- 
GitLab