From 613c7879b12bd93c2776f9ae8fe3c4b0ca52d01f Mon Sep 17 00:00:00 2001 From: SebastianEbert <sebastian.ebert@tu-dresden.de> Date: Mon, 19 Jun 2023 18:11:51 +0200 Subject: [PATCH] export of topic transition toolspecifics --- .../st/pnml/base/constants/PnmlConstants.java | 2 +- .../export/PrimitiveElementsConverter.jadd | 43 ++++++++++++++++++- 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/src/data/java/de/tudresden/inf/st/pnml/base/constants/PnmlConstants.java b/src/data/java/de/tudresden/inf/st/pnml/base/constants/PnmlConstants.java index cb1f09b..0387382 100644 --- a/src/data/java/de/tudresden/inf/st/pnml/base/constants/PnmlConstants.java +++ b/src/data/java/de/tudresden/inf/st/pnml/base/constants/PnmlConstants.java @@ -5,7 +5,7 @@ public final class PnmlConstants { // general transitions public static final String TRANSITION_TYPE_DISCRETE = "discreteTransitionType"; - // topic transitions + // topic elements public static final String TRANSITION_TYPE_TOPIC = "topicTransitionType"; public static final String TRANSITION_TOPIC_PUBLISHERS_DEF_KEY = "publishers"; diff --git a/src/main/jastadd/base/export/PrimitiveElementsConverter.jadd b/src/main/jastadd/base/export/PrimitiveElementsConverter.jadd index 373dbee..aba8f0a 100644 --- a/src/main/jastadd/base/export/PrimitiveElementsConverter.jadd +++ b/src/main/jastadd/base/export/PrimitiveElementsConverter.jadd @@ -148,7 +148,8 @@ aspect PrimitiveElementsConverter{ sb.append("</channels>"); - t.addToolspecificsHLAPI(new ToolInfoHLAPI(toolInfo.getTool(), toolInfo.getVersion(), sb, toolInfo.getToolInfoGrammarURI(), null)); + t.addToolspecificsHLAPI(new ToolInfoHLAPI(toolInfo.getTool(), + toolInfo.getVersion(), sb, toolInfo.getToolInfoGrammarURI(), null)); } else { t.addToolspecificsHLAPI(new ToolInfoHLAPI(toolInfo.getTool(), toolInfo.getVersion(), @@ -157,6 +158,46 @@ aspect PrimitiveElementsConverter{ } } + } else if(dinerosTransition.getStaticTransitionInformation().isServiceTransitionInformation()){ + + for(ToolInfo toolInfo : dinerosTransition.getToolspecificList()) { + if (toolInfo.getTool().equals(PnmlConstants.TOOL_SPEC_KEY)) { + StringBuffer sb = new StringBuffer(); + + TopicTransitionInformation tti = dinerosTransition.getMutableTransitionInformation().asTopicTransitionInformation(); + + sb.append("<type>topic</type> \n"); + sb.append("<topicName>" + tti.getTopic() + "</topicName> \n"); + + sb.append("<publishers> \n"); + + for(PublisherPort tp : tti.getPublisherPorts()){ + + sb.append("<publisher> \n"); + sb.append("<id>" + tp.getPlaceId() + "</id> \n"); + sb.append("<limit>" + tp.getLimit() + "</limit> \n"); + sb.append("</publisher> \n"); + } + + sb.append("</publishers> \n"); + + sb.append("<subscribers> \n"); + + for(SubscriberPort sp : tti.getSubscriberPorts()){ + + sb.append("<subscriber> \n"); + sb.append("<id>" + sp.getPlaceId() + "</id> \n"); + sb.append("<limit>" + sp.getLimit() + "</limit> \n"); + sb.append("</subscriber> \n"); + } + + sb.append("</subscribers> \n"); + + t.addToolspecificsHLAPI(new ToolInfoHLAPI(toolInfo.getTool(), + toolInfo.getVersion(), sb, toolInfo.getToolInfoGrammarURI(), null)); + } + } + } else { dinerosTransition.getToolspecificList().forEach(toolInfo -> t.addToolspecificsHLAPI(new ToolInfoHLAPI(toolInfo.getTool(), toolInfo.getVersion(), -- GitLab