From 3076c575e66e35d6bf9c1b1f4b22a3d97fcdd7f4 Mon Sep 17 00:00:00 2001 From: SebastianEbert <sebastian.ebert@tu-dresden.de> Date: Tue, 13 Jun 2023 18:30:29 +0200 Subject: [PATCH] updated parsing for rewrites --- .../inf/st/pnml/base/constants/PnmlConstants.java | 5 +++++ src/main/jastadd/base/Navigation.jrag | 8 +++++++- src/main/jastadd/base/distribution/DistributedPN.jadd | 8 ++++++++ .../jastadd/base/parsing/ToolSpecificsParser.jadd | 8 ++++++++ src/main/java/de/tudresden/inf/st/pnml/base/Main.java | 10 +--------- src/main/resources/nets/TestNet2.pnml | 11 +++++++++++ 6 files changed, 40 insertions(+), 10 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 f501298..8294e88 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 @@ -79,4 +79,9 @@ public final class PnmlConstants { public static final String CHANNEL_PLACE_TYPE_SERVER_RES_KEY = "sres"; public static final String CHANNEL_PLACE_TYPE_SERVER_REQ_KEY = "sreq"; + // page properties + public static final String PAGE_TYPE_SERVER = "serverPrototype"; + public static final String PAGE_SERVER_INSTANCE_SUFFIX = "INSTANCE"; + public static final String PAGE_SERVER_CONTAINER_SUFFIX = "CONTAINER"; + } diff --git a/src/main/jastadd/base/Navigation.jrag b/src/main/jastadd/base/Navigation.jrag index 7633e4f..92e53ae 100644 --- a/src/main/jastadd/base/Navigation.jrag +++ b/src/main/jastadd/base/Navigation.jrag @@ -160,7 +160,13 @@ aspect Navigation { to PetriNet.allTransitions() for petriNet(); - coll java.util.Set<Arc> PetriNet.allArcs() [new java.util.HashSet()] root PetriNet; + coll java.util.Set<DinerosTransition> PetriNet.allDinerosTransitions() [new java.util.HashSet()] root PetriNet; + DinerosTransition contributes this + to PetriNet.allDinerosTransitions() + for petriNet(); + + + coll java.util.Set<Arc> PetriNet.allArcs() [new java.util.HashSet()] root PetriNet; Arc contributes this to PetriNet.allArcs() for petriNet(); diff --git a/src/main/jastadd/base/distribution/DistributedPN.jadd b/src/main/jastadd/base/distribution/DistributedPN.jadd index 51e2dbf..60f7ef4 100644 --- a/src/main/jastadd/base/distribution/DistributedPN.jadd +++ b/src/main/jastadd/base/distribution/DistributedPN.jadd @@ -23,6 +23,14 @@ aspect PnDistribution { return this.getMutablePlaceInformation(); } + syn lazy String Page.getType() { + return ToolSpecificsParser.getPageTypeFromToolSpecifics(this.getToolspecificList()); + } + + syn lazy String Page.getServiceName() { + return ToolSpecificsParser.getServiceNameFromToolSpecifics(this.getToolspecificList()); + } + syn lazy String RefTransition.getNode() { return ToolSpecificsParser.getNodeFromToolSpecifics(this.getToolspecificList()); } diff --git a/src/main/jastadd/base/parsing/ToolSpecificsParser.jadd b/src/main/jastadd/base/parsing/ToolSpecificsParser.jadd index 5ca907e..5089504 100644 --- a/src/main/jastadd/base/parsing/ToolSpecificsParser.jadd +++ b/src/main/jastadd/base/parsing/ToolSpecificsParser.jadd @@ -194,6 +194,14 @@ aspect ToolSpecificsParser{ return null; } + public static String getPageTypeFromToolSpecifics(JastAddList<ToolInfo> toolInfos) { + return getElementByKeyFromToolSpecifics(toolInfos, PnmlConstants.TYPE_KEY); + } + + public static String getServiceNameFromToolSpecifics(JastAddList<ToolInfo> toolInfos) { + return getElementByKeyFromToolSpecifics(toolInfos, PnmlConstants.SERVICE_NAME); + } + public static String getTransitionServiceNameFromToolSpecifics(JastAddList<ToolInfo> toolInfos) { return getElementByKeyFromToolSpecifics(toolInfos, PnmlConstants.SERVICE_NAME); } diff --git a/src/main/java/de/tudresden/inf/st/pnml/base/Main.java b/src/main/java/de/tudresden/inf/st/pnml/base/Main.java index 8f66c01..d610453 100644 --- a/src/main/java/de/tudresden/inf/st/pnml/base/Main.java +++ b/src/main/java/de/tudresden/inf/st/pnml/base/Main.java @@ -1,16 +1,8 @@ package de.tudresden.inf.st.pnml.base; -import beaver.Parser; -import de.tudresden.inf.st.pnml.jastadd.model.InputSignalClause; -import de.tudresden.inf.st.pnml.jastadd.parser.ExpressionParser; -import de.tudresden.inf.st.pnml.jastadd.scanner.ExpressionScanner; - -import java.io.IOException; -import java.io.StringReader; - public class Main { - public static void main(String[] args) throws IOException, Parser.Exception { + public static void main(String[] args){ // Nothing to do here // List<PetriNet> petriNets = PnmlParser.parsePnml("..."); diff --git a/src/main/resources/nets/TestNet2.pnml b/src/main/resources/nets/TestNet2.pnml index 63df430..3f15265 100644 --- a/src/main/resources/nets/TestNet2.pnml +++ b/src/main/resources/nets/TestNet2.pnml @@ -18,7 +18,13 @@ </communicators> </toolspecific> <page id="top"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>dinerosPage</type> + </toolspecific> <page id="sourcePage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>dinerosPage</type> + </toolspecific> <place id="req1"> <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> <node>n1</node> @@ -56,6 +62,7 @@ <serviceName>sampleService</serviceName> <serverInput>serverIn</serverInput> <serverOutput>serverOut</serverOutput> + <serverCapacity>16</serverCapacity> <channels> <channel> <cid>c1</cid> @@ -75,6 +82,10 @@ </graphics> </transition> <page id="targetPage"> + <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> + <type>serverPrototype</type> + <serviceName>sampleService</serviceName> + </toolspecific> <place id="serverIn"> <toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.1"> <node>n2</node> -- GitLab