Migration of ModeConditionConjuction entries to ModeValueCondition entries.
Signed-off-by: Swapna Rachapalli <swapna.rachapalli@de.bosch.com>
diff --git a/plugins/org.eclipse.app4mc.amalthea.converters.096/src/org/eclipse/app4mc/amalthea/converters096/impl/SwConverter.java b/plugins/org.eclipse.app4mc.amalthea.converters.096/src/org/eclipse/app4mc/amalthea/converters096/impl/SwConverter.java
index 5cbd878..eac2e3a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.converters.096/src/org/eclipse/app4mc/amalthea/converters096/impl/SwConverter.java
+++ b/plugins/org.eclipse.app4mc.amalthea.converters.096/src/org/eclipse/app4mc/amalthea/converters096/impl/SwConverter.java
@@ -52,7 +52,12 @@
updateCustomPropsToCounter(rootElement);
+ updateModeConditions(rootElement);
+ }
+
+ private void updateModeConditions(Element rootElement) {
updateModeCondition(rootElement);
+ updateModeConditionConjunction(rootElement);
}
private void updateModeCondition(Element rootElement) {
@@ -72,7 +77,31 @@
this.helper.getNS_096("am"), this.helper.getGenericNS("xsi"));
for (Element element : modeCondition) {
- element.setAttribute("type", "am:ModelValueCondition", this.helper.getGenericNS("xsi"));
+ element.setAttribute("type", "am:ModeValueCondition", this.helper.getGenericNS("xsi"));
+ }
+ }
+
+ private void updateModeConditionConjunction(Element rootElement) {
+ final StringBuffer xpathBuffer = new StringBuffer();
+
+ xpathBuffer.append("./swModel/tasks/callGraph/items//entries[@xsi:type=\"am:ModeConditionConjunction\"]");
+ xpathBuffer.append("|");
+ xpathBuffer.append("./swModel/isrs/callGraph/items//entries[@xsi:type=\"am:ModeConditionConjunction\"]");
+ xpathBuffer.append("|");
+ xpathBuffer.append("./swModel/runnables/callGraph/items//entries[@xsi:type=\"am:ModeConditionConjunction\"]");
+ xpathBuffer.append("|");
+ xpathBuffer.append("./swModel/runnables/executionCondition//entries[@xsi:type=\"am:ModeConditionConjunction\"]");
+ xpathBuffer.append("|");
+ xpathBuffer.append("./stimuliModel/stimuli/executionCondition//entries[@xsi:type=\"am:ModeConditionConjunction\"]");
+
+ final List<Element> modeConditions = this.helper.getXpathResult(rootElement, xpathBuffer.toString(), Element.class,
+ this.helper.getNS_096("am"), this.helper.getGenericNS("xsi"));
+
+ for (Element element : modeConditions) {
+ List<Element> entries = element.getChildren("entries");
+ for (Element entry : entries) {
+ entry.setAttribute("type", "am:ModeValueCondition", this.helper.getGenericNS("xsi"));
+ }
}
}
diff --git a/tests/org.eclipse.app4mc.amalthea.converters.096.tests/TestModels/input/modecondition/modecondition.amxmi b/tests/org.eclipse.app4mc.amalthea.converters.096.tests/TestModels/input/modecondition/modecondition.amxmi
index 20d1f6a..7855963 100644
--- a/tests/org.eclipse.app4mc.amalthea.converters.096.tests/TestModels/input/modecondition/modecondition.amxmi
+++ b/tests/org.eclipse.app4mc.amalthea.converters.096.tests/TestModels/input/modecondition/modecondition.amxmi
@@ -9,6 +9,14 @@
<entries xsi:type="am:ModeCondition" label="Sensor?type=ModeLabel" value="Enable" relation="EQUAL"/>
</condition>
</entries>
+ <entries name="case2">
+ <condition>
+ <entries xsi:type="am:ModeConditionConjunction">
+ <entries label="Sensor?type=ModeLabel" value="Enable" relation="EQUAL"/>
+ <entries label="Lab_Offset?type=ModeLabel" value="0" relation="NOT_EQUAL"/>
+ </entries>
+ </condition>
+ </entries>
</items>
</callGraph>
</tasks>
@@ -86,7 +94,10 @@
<stimuli xsi:type="am:SingleStimulus" name="Startup">
<executionCondition>
<entries xsi:type="am:ModeCondition" label="MainLight?type=ModeLabel" value="ON"/>
- <entries xsi:type="am:ModeConditionConjunction"/>
+ <entries xsi:type="am:ModeConditionConjunction">
+ <entries label="MainLight?type=ModeLabel" value="ON" relation="EQUAL"/>
+ <entries label="Lab_Offset?type=ModeLabel" value="1" relation="GREATER_THAN"/>
+ </entries>
<entries xsi:type="am:ModeCondition" label="Lab_Offset?type=ModeLabel" value="2" relation="EQUAL"/>
</executionCondition>
</stimuli>