Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuergen Haug2018-03-07 19:05:01 +0000
committerJuergen Haug2018-03-07 19:05:01 +0000
commit588763d247c6132579eab3df528526e27c1e7f04 (patch)
tree5e15532dbeeef4a6b7930966ddc88e4d99c6a9cc
parent621c23026acab07c7dd9fe42e0b1fd3faec62fff (diff)
downloadorg.eclipse.etrice-588763d247c6132579eab3df528526e27c1e7f04.tar.gz
org.eclipse.etrice-588763d247c6132579eab3df528526e27c1e7f04.tar.xz
org.eclipse.etrice-588763d247c6132579eab3df528526e27c1e7f04.zip
[generator] fix for enums from messages
-rw-r--r--plugins/org.eclipse.etrice.core.genmodel/src/org/eclipse/etrice/core/genmodel/util/RoomCrossReferencer.java3
-rw-r--r--tests/org.eclipse.etrice.generator.common.tests/build.gradle3
-rw-r--r--tests/org.eclipse.etrice.generator.common.tests/models/DetailExpressionTest.room8
3 files changed, 8 insertions, 6 deletions
diff --git a/plugins/org.eclipse.etrice.core.genmodel/src/org/eclipse/etrice/core/genmodel/util/RoomCrossReferencer.java b/plugins/org.eclipse.etrice.core.genmodel/src/org/eclipse/etrice/core/genmodel/util/RoomCrossReferencer.java
index ca49c767e..97d6ec238 100644
--- a/plugins/org.eclipse.etrice.core.genmodel/src/org/eclipse/etrice/core/genmodel/util/RoomCrossReferencer.java
+++ b/plugins/org.eclipse.etrice.core.genmodel/src/org/eclipse/etrice/core/genmodel/util/RoomCrossReferencer.java
@@ -163,6 +163,9 @@ public class RoomCrossReferencer {
do {
getAttributeDataClasses(dataClasses, enumClasses, cls.getAttributes());
getOperationDataClasses(dataClasses, enumClasses, cls.getOperations());
+ for(ProtocolClass protocol : getReferencedProtocolClasses(cls)) {
+ enumClasses.addAll(getReferencedEnumClasses(protocol));
+ }
cls = cls.getActorBase();
}
while (cls!=null);
diff --git a/tests/org.eclipse.etrice.generator.common.tests/build.gradle b/tests/org.eclipse.etrice.generator.common.tests/build.gradle
index 2e4523e5b..7f797943e 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/build.gradle
+++ b/tests/org.eclipse.etrice.generator.common.tests/build.gradle
@@ -13,8 +13,7 @@ def tests = [
dataDrivenTest: ['models/DataDrivenTest.room', genericPhysical],
/* enumTest: ['models/EnumTest.room', genericPhysical], not supported in c++ */
- // to add 'models/DetailExpressionEnum.room', 'models/DetailExpressionTypes.room'
- compileTests: ['models/CompileTests.room', genericPhysical, 'models/DetailExpressionTest.room', 'models/StatemachineInterfaceTest.room', 'models/StatemachineInterfaceInheritedTest.room', 'models/StatemachineInterfaceTest.room', 'models/ContinuationTransitionTest.room'],
+ compileTests: ['models/CompileTests.room', genericPhysical, 'models/DetailExpressionTest.room', 'models/DetailExpressionEnum.room', 'models/DetailExpressionTypes.room', 'models/StatemachineInterfaceTest.room', 'models/StatemachineInterfaceInheritedTest.room', 'models/StatemachineInterfaceTest.room', 'models/ContinuationTransitionTest.room'],
handlerTest: ['models/HandlerTest.room', genericPhysical],
operationInheritanceTest: ['models/OperationInheritanceTest.room', genericPhysical],
diff --git a/tests/org.eclipse.etrice.generator.common.tests/models/DetailExpressionTest.room b/tests/org.eclipse.etrice.generator.common.tests/models/DetailExpressionTest.room
index b29ed5fda..3fc01f00c 100644
--- a/tests/org.eclipse.etrice.generator.common.tests/models/DetailExpressionTest.room
+++ b/tests/org.eclipse.etrice.generator.common.tests/models/DetailExpressionTest.room
@@ -3,7 +3,7 @@ RoomModel DetailExpressionTestModel {
import room.basic.types.* from "../../../runtime/${etModellib}/model/Types.room"
import room.basic.test.* from "../../../runtime/${etModellib}/model/Tests.room"
// import room.basic.service.timing.* from "../../../runtime/${etModellib}/model/TimingService.room"
-// import DetailExpressionEnum.* from "DetailExpressionEnum.room"
+ import DetailExpressionEnum.* from "DetailExpressionEnum.room"
Enumeration LocalEnum of int32 {
FIRST=1, SECOND=2, THIRD=3
@@ -29,7 +29,7 @@ RoomModel DetailExpressionTestModel {
conjugated Port cPortData: PDatadriven
conjugated Port cReplEvent [*]: PEventdriven
// no supported yet
- // conjugated Port enumEvent: PEnumProtocol
+ conjugated Port enumEvent: PEnumProtocol
}
Behavior {
ctor '''
@@ -83,8 +83,8 @@ RoomModel DetailExpressionTestModel {
// infoData.nested.dataOp("127.0.0.1", 8080);
// enum
- // enumEvent.enumMsg(ProtocolEnum.ACK);
- // enumEvent.enumMsg2(ColorEnum.WHITE);
+ enumEvent.enumMsg(ProtocolEnum.ACK);
+ enumEvent.enumMsg2(ColorEnum.WHITE);
// numberArray[0] = LocalEnum.FIRST;
'''
}

Back to the top