Skip to content
Snippets Groups Projects
Commit b32d68ff authored by Sebastian Ebert's avatar Sebastian Ebert
Browse files

fixed xml-construction bug for toolinfos

parent 53f5311f
Branches
Tags
No related merge requests found
......@@ -44,6 +44,9 @@ dependencies {
implementation group: 'org.apache.ws.commons.axiom', name: 'axiom-impl', version: '1.2.22'
implementation group: 'com.thaiopensource', name: 'jing', version: '20091111'
implementation 'org.jetbrains:annotations:19.0.0'
// https://mvnrepository.com/artifact/xalan/xalan
implementation group: 'xalan', name: 'xalan', version: '2.7.2'
compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.0'
......
......@@ -34,7 +34,6 @@ public class GlobalToLocalNetsPostProcessor implements PostProcessor<PetriNet> {
for (Transition transition : petriNet.allTransitions()) {
InputSignalTransition channelIst = transition.asInputSignalTransition();
// logger.error("infos: " + channelIst.getTransitionInformation());
if (channelIst.getTransitionInformation().getType().equals(PnmlConstants.TRANSITION_TYPE_TOPIC)) {
......@@ -44,7 +43,6 @@ public class GlobalToLocalNetsPostProcessor implements PostProcessor<PetriNet> {
transitionsToRemove.add(transition);
// STEP 1: Get location/subnet of source/target - places
String inLocation = null;
String outLocation = null;
......@@ -94,8 +92,6 @@ public class GlobalToLocalNetsPostProcessor implements PostProcessor<PetriNet> {
// attributized infos need to be written back to XML
JastAddList<ToolInfo> outputToolInfoJastAddList = new JastAddList<>();
targetIst.setToolspecificList(outputToolInfoJastAddList);
if (channelIst.getTransitionInformation().getOutputLimit() >= 0) {
targetIst.getTransitionInformation().setType(PnmlConstants.TRANSITION_TOPIC_TYPE_LIMITED_IN);
outputToolInfoJastAddList.add(buildToolSpecifics(PnmlConstants.TRANSITION_TOPIC_TYPE_LIMITED_IN, outLocation, outSubNet,
......@@ -106,9 +102,10 @@ public class GlobalToLocalNetsPostProcessor implements PostProcessor<PetriNet> {
channelIst.getTransitionInformation().getInputLimit(), channelIst.getTransitionInformation().getOutputLimit(), null));
}
targetIst.setToolspecificList(outputToolInfoJastAddList);
// STEP 2: Reconnect Input Signals
for(InputSignalBinding isb : channelIst.getMutualInputSignalBindingList()){
for(InputSignalBinding isb : channelIst.getStaticInputSignalBindingList()){
InputSignalBinding newIsb = new InputSignalBinding();
newIsb.setInputSignalValue(isb.getInputSignalValue());
......@@ -122,14 +119,14 @@ public class GlobalToLocalNetsPostProcessor implements PostProcessor<PetriNet> {
// STEP 3: Get all incoming arcs and connect them to new output transition
for (Arc arc : channelIst.getInArcList().toArray(new Arc[0])) {
arc.setTarget(sourceIst);
logger.error("###");
//logger.error("###");
//break;
}
// STEP 4: Gel all outgoing arcs and connect them to new input transition
for (Arc arc : channelIst.getOutArcList().toArray(new Arc[0])) {
arc.setSource(targetIst);
logger.error("+++");
//logger.error("+++");
//break;
}
......@@ -191,6 +188,7 @@ public class GlobalToLocalNetsPostProcessor implements PostProcessor<PetriNet> {
Element bindings = doc.createElement("inputsignalbindings");
if(inputSignalBindings != null) {
for (InputSignalBinding isb : inputSignalBindings) {
Element binding = doc.createElement("inputsignalbinding");
......@@ -209,6 +207,7 @@ public class GlobalToLocalNetsPostProcessor implements PostProcessor<PetriNet> {
bindings.appendChild(binding);
}
}
rootElement.appendChild(bindings);
......@@ -222,6 +221,8 @@ public class GlobalToLocalNetsPostProcessor implements PostProcessor<PetriNet> {
toolInfo.setVersion("0.0.1");
toolInfo.setTool("de.tudresden.inf.st.pnml.distributedPN");
System.out.println("ToolInfo: " + toolInfo.getFormattedXMLBuffer().toString());
return toolInfo;
} catch (ParserConfigurationException | TransformerConfigurationException pce) {
pce.printStackTrace();
......@@ -256,7 +257,7 @@ public class GlobalToLocalNetsPostProcessor implements PostProcessor<PetriNet> {
logger.info("Arc: " + a.getId() + " -- source: " + a.getSource().getName().getText() + " -- target: " + a.getTarget().getName().getText());
}
logger.info("--------------- SIGNALS ---------------");
logger.info("--------------- SIGNALS (STATIC)---------------");
for (Transition t : petriNet.allTransitions()) {
InputSignalTransition ist = t.asInputSignalTransition();
......@@ -265,5 +266,15 @@ public class GlobalToLocalNetsPostProcessor implements PostProcessor<PetriNet> {
ist.getStaticInputSignalBindingList().forEach(inputSignalBinding -> logger.info(" (" + t.getName().getText() + ") Signal: " + inputSignalBinding.getInputSignalID()));
}
}
logger.info("--------------- SIGNALS (MUTUAL)---------------");
for (Transition t : petriNet.allTransitions()) {
InputSignalTransition ist = t.asInputSignalTransition();
if (ist != null && ist.getMutualInputSignalBindingList() != null) {
ist.getMutualInputSignalBindingList().forEach(inputSignalBinding -> logger.info(" (" + t.getName().getText() + ") Signal: " + inputSignalBinding.getInputSignalID()));
}
}
}
}
......@@ -36,8 +36,6 @@ public class IoPetriNetPostProcessor implements PostProcessor<PetriNet> {
private static JastAddList<InputSignalBinding> parseInputSignalBindingDefinitionsInternal(Document doc) {
logger.error("!!!");
NodeList isBindingDefList = doc.getElementsByTagName(PnmlConstants.INPUT_SIGNAL_BINDINGS_KEY);
JastAddList<InputSignalBinding> jastAddBindingList = new JastAddList<>();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment