Bug 582709 - [Designer, transformation] Make transformation chain more robust
* handle signal event name with "-" inside
Change-Id: I0c163bb16f994cb65b7d6d1e9f1c671736649f57
Signed-off-by: aradermache <ansgar.radermacher@cea.fr>
diff --git a/plugins/transformation/languages/cpp/org.eclipse.papyrus.designer.transformation.languages.cpp.library/src/org/eclipse/papyrus/designer/transformation/languages/cpp/library/statemachine/EventTransformation.xtend b/plugins/transformation/languages/cpp/org.eclipse.papyrus.designer.transformation.languages.cpp.library/src/org/eclipse/papyrus/designer/transformation/languages/cpp/library/statemachine/EventTransformation.xtend
index abcbd36..d901ac8 100644
--- a/plugins/transformation/languages/cpp/org.eclipse.papyrus.designer.transformation.languages.cpp.library/src/org/eclipse/papyrus/designer/transformation/languages/cpp/library/statemachine/EventTransformation.xtend
+++ b/plugins/transformation/languages/cpp/org.eclipse.papyrus.designer.transformation.languages.cpp.library/src/org/eclipse/papyrus/designer/transformation/languages/cpp/library/statemachine/EventTransformation.xtend
@@ -325,13 +325,14 @@
}
core.createOpaqueBehavior(superContext, op, body)
} else if (e instanceof SignalEvent) {
- var send = superContext.createOwnedOperation("send" + e.name, null, null)
+ val eName = e.name.replace("_-_", "_") // replace " - ", signal names use "SE - <signalName" by default
+ var send = superContext.createOwnedOperation("send" + eName, null, null)
if (e.signal !== null) {
StereotypeUtil.apply(send.createOwnedParameter("sig", e.signal), Ref)
StereotypeUtil.apply(evMethod.createOwnedParameter("sig", e.signal), Ref)
}
core.createOpaqueBehavior(superContext, send, '''
- «EVENT_QUEUE».push(statemachine::EventPriority_t::PRIORITY_2, «IF e.signal !== null»&sig«ELSE»NULL«ENDIF», «e.name.toUpperCase»_ID, statemachine::EventType_t::SIGNAL_EVENT, 0«IF e.signal !== null», sizeof(«CppGenUtils.cgu(superContext).cppQualifiedName(e.signal)»)«ENDIF»);''')
+ «EVENT_QUEUE».push(statemachine::EventPriority_t::PRIORITY_2, «IF e.signal !== null»&sig«ELSE»NULL«ENDIF», «eName.toUpperCase»_ID, statemachine::EventType_t::SIGNAL_EVENT, 0«IF e.signal !== null», sizeof(«CppGenUtils.cgu(superContext).cppQualifiedName(e.signal)»)«ENDIF»);''')
}
}