Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrás Szabolcs Nagy2015-06-19 16:35:15 +0000
committerAndrás Szabolcs Nagy2015-06-19 16:35:15 +0000
commit623968715da5e1ba5614849128bafa1eb77e5953 (patch)
treeeb780490f4ba47f5a480348161b675a20119e4b2
parent192e476c15c4f90a2ce900c90343c3134bb13165 (diff)
downloadorg.eclipse.viatra.examples-623968715da5e1ba5614849128bafa1eb77e5953.tar.gz
org.eclipse.viatra.examples-623968715da5e1ba5614849128bafa1eb77e5953.tar.xz
org.eclipse.viatra.examples-623968715da5e1ba5614849128bafa1eb77e5953.zip
Fixed a small state coder bug in the BPMN example
-rw-r--r--dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/problems/BpmnProblems.java18
-rw-r--r--dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/problems/SimplifiedBpmnBuilder.java18
-rw-r--r--dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/rules/MakeParallelRule.java6
-rw-r--r--dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/statecoder/BpmnStateCoder.java10
4 files changed, 27 insertions, 25 deletions
diff --git a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/problems/BpmnProblems.java b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/problems/BpmnProblems.java
index 2790dd8..ee99d64 100644
--- a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/problems/BpmnProblems.java
+++ b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/problems/BpmnProblems.java
@@ -9,11 +9,6 @@
*******************************************************************************/
package org.eclipse.viatra.dse.examples.bpmn.problems;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import org.eclipse.viatra.dse.examples.simplifiedbpmn.BaseElement;
import org.eclipse.viatra.dse.examples.simplifiedbpmn.EndEvent;
import org.eclipse.viatra.dse.examples.simplifiedbpmn.Gateway;
import org.eclipse.viatra.dse.examples.simplifiedbpmn.ParallelGateway;
@@ -108,13 +103,14 @@ public class BpmnProblems {
builder.createFlow(gw, taskPurchase, 33);
builder.createFlow(taskPurchase, endElement);
- ParallelGateway pgw = builder.createParallelGateway("DivergingParallelGateway", true);
- builder.createFlow(gw, pgw, 66);
-
Task taskRecommend = builder.createTask("Recommend", 15, nosql);
Task taskFetchData = builder.createTask("FetchData", 10, sql);
+
+ ParallelGateway pgw = builder.createParallelGateway(taskRecommend, taskFetchData, true);
+ builder.createFlow(gw, pgw, 66);
+
Task taskLog = builder.createTask("Log", 12, nosql);
- ParallelGateway pgw2 = builder.createParallelGateway("ConvergingParallelGateway", false);
+ ParallelGateway pgw2 = builder.createParallelGateway(taskRecommend, taskLog, false);
builder.createFlow(pgw, taskRecommend);
builder.createFlow(pgw, taskFetchData);
builder.createFlow(taskRecommend, pgw2);
@@ -162,8 +158,8 @@ public class BpmnProblems {
Gateway mismatchChackingGW = builder.createGateway("Mismach checking");
Gateway dummy = builder.createGateway("Dummy");
- ParallelGateway divPgw = builder.createParallelGateway("pgw", true);
- ParallelGateway convPgw = builder.createParallelGateway("pgw", false);
+ ParallelGateway divPgw = builder.createParallelGateway(insertInvoiceTask, insertCustomerTask, true);
+ ParallelGateway convPgw = builder.createParallelGateway(insertInvoiceTask, insertCustomerTask, false);
builder.createFlow(startEvent, inTask);
builder.createFlow(inTask, checkInvoiceTask);
diff --git a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/problems/SimplifiedBpmnBuilder.java b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/problems/SimplifiedBpmnBuilder.java
index e14715f..f2e5af0 100644
--- a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/problems/SimplifiedBpmnBuilder.java
+++ b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/problems/SimplifiedBpmnBuilder.java
@@ -16,8 +16,8 @@ import org.eclipse.viatra.dse.examples.simplifiedbpmn.ParallelGateway;
import org.eclipse.viatra.dse.examples.simplifiedbpmn.ResourceInstance;
import org.eclipse.viatra.dse.examples.simplifiedbpmn.ResourceType;
import org.eclipse.viatra.dse.examples.simplifiedbpmn.ResourceTypeVariant;
-import org.eclipse.viatra.dse.examples.simplifiedbpmn.SimplifiedBPMN;
import org.eclipse.viatra.dse.examples.simplifiedbpmn.SequenceFlow;
+import org.eclipse.viatra.dse.examples.simplifiedbpmn.SimplifiedBPMN;
import org.eclipse.viatra.dse.examples.simplifiedbpmn.SimplifiedbpmnFactory;
import org.eclipse.viatra.dse.examples.simplifiedbpmn.StartEvent;
import org.eclipse.viatra.dse.examples.simplifiedbpmn.Task;
@@ -80,9 +80,16 @@ public class SimplifiedBpmnBuilder {
return gateway;
}
- public ParallelGateway createParallelGateway(String name, boolean isDiverging) {
+ public ParallelGateway createParallelGateway(BaseElement e1, BaseElement e2, boolean isDiverging) {
ParallelGateway gateway = factory.createParallelGateway();
- gateway.setName(name);
+ StringBuilder sb = new StringBuilder();
+ if (isDiverging) {
+ sb.append("Diverging:");
+ } else {
+ sb.append("Conerging:");
+ }
+ sb.append(createOrderedString(e1.getName(), e2.getName()));
+ gateway.setName(sb.toString());
gateway.setDiverging(isDiverging);
root.getParallelGateways().add(gateway);
return gateway;
@@ -146,4 +153,9 @@ public class SimplifiedBpmnBuilder {
flow.setIsDataFlow(true);
return flow;
}
+
+ public static String createOrderedString(String s1, String s2) {
+ int sign = s1.compareTo(s2);
+ return (sign > 0 ? s1 : s2) + "%" + (sign > 0 ? s2 : s1);
+ }
} \ No newline at end of file
diff --git a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/rules/MakeParallelRule.java b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/rules/MakeParallelRule.java
index 2208953..8d12fa0 100644
--- a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/rules/MakeParallelRule.java
+++ b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/rules/MakeParallelRule.java
@@ -17,7 +17,6 @@ import org.eclipse.viatra.dse.examples.bpmn.patterns.MakeParallelMatcher;
import org.eclipse.viatra.dse.examples.bpmn.patterns.util.MakeParallelProcessor;
import org.eclipse.viatra.dse.examples.bpmn.patterns.util.MakeParallelQuerySpecification;
import org.eclipse.viatra.dse.examples.bpmn.problems.SimplifiedBpmnBuilder;
-import org.eclipse.viatra.dse.examples.bpmn.statecoder.BpmnStateCoder;
import org.eclipse.viatra.dse.examples.simplifiedbpmn.ParallelGateway;
import org.eclipse.viatra.dse.examples.simplifiedbpmn.SequenceFlow;
import org.eclipse.viatra.dse.examples.simplifiedbpmn.SimplifiedBPMN;
@@ -34,12 +33,11 @@ public class MakeParallelRule {
new MakeParallelProcessor() {
@Override
public void process(Task pT1, Task pT2, SimplifiedBPMN pRoot) {
- String name = BpmnStateCoder.createOrderedString(pT1.getName(), pT2.getName());
SimplifiedBpmnBuilder builder = new SimplifiedBpmnBuilder(pRoot);
- ParallelGateway divergingGateway = builder.createParallelGateway("Diverging:" + name, true);
- ParallelGateway convergingGateway = builder.createParallelGateway("Converging:" + name, false);
+ ParallelGateway divergingGateway = builder.createParallelGateway(pT1, pT2, true);
+ ParallelGateway convergingGateway = builder.createParallelGateway(pT1, pT2, false);
EList<SequenceFlow> flows = pT1.getInFlows();
while (!flows.isEmpty()) {
diff --git a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/statecoder/BpmnStateCoder.java b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/statecoder/BpmnStateCoder.java
index 8d467e3..d5e1a5d 100644
--- a/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/statecoder/BpmnStateCoder.java
+++ b/dse/bpmn/org.eclipse.viatra.dse.examples.bpmn.dse/src/org/eclipse/viatra/dse/examples/bpmn/statecoder/BpmnStateCoder.java
@@ -20,6 +20,7 @@ import org.eclipse.viatra.dse.examples.bpmn.patterns.AllocateTaskToVariantMatch;
import org.eclipse.viatra.dse.examples.bpmn.patterns.CreateResourceMatch;
import org.eclipse.viatra.dse.examples.bpmn.patterns.MakeParallelMatch;
import org.eclipse.viatra.dse.examples.bpmn.patterns.MakeSequentialMatch;
+import org.eclipse.viatra.dse.examples.bpmn.problems.SimplifiedBpmnBuilder;
import org.eclipse.viatra.dse.examples.simplifiedbpmn.ParallelGateway;
import org.eclipse.viatra.dse.examples.simplifiedbpmn.ResourceType;
import org.eclipse.viatra.dse.examples.simplifiedbpmn.ResourceTypeVariant;
@@ -103,18 +104,13 @@ public class BpmnStateCoder implements IStateCoder {
return (m.getT().getName() + "-" + m.getRTV().getName()).intern();
} else if (match instanceof MakeParallelMatch) {
MakeParallelMatch m = (MakeParallelMatch) match;
- return ("Parallel:" + createOrderedString(m.getT1().getName(), m.getT2().getName())).intern();
+ return ("Parallel:" + SimplifiedBpmnBuilder.createOrderedString(m.getT1().getName(), m.getT2().getName())).intern();
} else if (match instanceof MakeSequentialMatch) {
MakeSequentialMatch m = (MakeSequentialMatch) match;
- return ("Sequential:" + createOrderedString(m.getT1().getName(), m.getT2().getName())).intern();
+ return ("Sequential:" + SimplifiedBpmnBuilder.createOrderedString(m.getT1().getName(), m.getT2().getName())).intern();
} else {
throw new DSEException("Unsupported rule.");
}
}
- public static String createOrderedString(String s1, String s2) {
- int sign = s1.compareTo(s2);
- return (sign > 0 ? s1 : s2) + "%" + (sign > 0 ? s2 : s1);
- }
-
}

Back to the top