Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnsgar Radermacher2019-07-08 15:34:46 +0000
committerAnsgar Radermacher2019-07-08 15:50:29 +0000
commitdd5f935c4de805e10181cdc4b3b27eca573659e7 (patch)
tree344a0f268ca5062e2b7145dc34e2d87f282cb812
parentf48e36e12338c5e713873d33043c7f80d05b66b4 (diff)
downloadorg.eclipse.papyrus-designer-dd5f935c4de805e10181cdc4b3b27eca573659e7.tar.gz
org.eclipse.papyrus-designer-dd5f935c4de805e10181cdc4b3b27eca573659e7.tar.xz
org.eclipse.papyrus-designer-dd5f935c4de805e10181cdc4b3b27eca573659e7.zip
Bug 546545 - [C++ Gen] properties with undefined multiplicity should be generated in a correct way
- Fix regression caused by refactoring done in bug 547911 (Facilitate the use of template bindings) - Update C++ code generation test to cover listHint case (which was already in the model, but was not executed) Change-Id: I772c9f980d1480f113e1267f1e2afa51d267bf6e Signed-off-by: Ansgar Radermacher <ansgar.radermacher@cea.fr>
-rw-r--r--plugins/languages/cpp/org.eclipse.papyrus.designer.languages.cpp.codegen/src/org/eclipse/papyrus/designer/languages/cpp/codegen/xtend/CppTypedElement.xtend18
-rw-r--r--plugins/languages/cpp/org.eclipse.papyrus.designer.languages.cpp.tests/src/org/eclipse/papyrus/designer/languages/cpp/codegen/tests/CppCodegenTest.java9
2 files changed, 17 insertions, 10 deletions
diff --git a/plugins/languages/cpp/org.eclipse.papyrus.designer.languages.cpp.codegen/src/org/eclipse/papyrus/designer/languages/cpp/codegen/xtend/CppTypedElement.xtend b/plugins/languages/cpp/org.eclipse.papyrus.designer.languages.cpp.codegen/src/org/eclipse/papyrus/designer/languages/cpp/codegen/xtend/CppTypedElement.xtend
index f1f96815b..0d258c3c5 100644
--- a/plugins/languages/cpp/org.eclipse.papyrus.designer.languages.cpp.codegen/src/org/eclipse/papyrus/designer/languages/cpp/codegen/xtend/CppTypedElement.xtend
+++ b/plugins/languages/cpp/org.eclipse.papyrus.designer.languages.cpp.codegen/src/org/eclipse/papyrus/designer/languages/cpp/codegen/xtend/CppTypedElement.xtend
@@ -48,16 +48,14 @@ class CppTypedElement {
val listHint = GenUtils.getApplicationTree(propertyOrParameter, ListHint)
val lower = (propertyOrParameter as MultiplicityElement).getLower()
val upper = (propertyOrParameter as MultiplicityElement).getUpper()
- if (type !== null) {
- if (upper == -1) {
- type = listHint.getVariable()
- } else if (upper > 1) {
- if (upper == lower) {
- type = listHint.getFixed()
- }
- else {
- type = listHint.getBounded()
- }
+ if (upper == -1) {
+ type = listHint.getVariable()
+ } else if (upper > 1) {
+ if (upper == lower) {
+ type = listHint.getFixed()
+ }
+ else {
+ type = listHint.getBounded()
}
}
if (type !== null) {
diff --git a/plugins/languages/cpp/org.eclipse.papyrus.designer.languages.cpp.tests/src/org/eclipse/papyrus/designer/languages/cpp/codegen/tests/CppCodegenTest.java b/plugins/languages/cpp/org.eclipse.papyrus.designer.languages.cpp.tests/src/org/eclipse/papyrus/designer/languages/cpp/codegen/tests/CppCodegenTest.java
index a2e76b596..bba1badd9 100644
--- a/plugins/languages/cpp/org.eclipse.papyrus.designer.languages.cpp.tests/src/org/eclipse/papyrus/designer/languages/cpp/codegen/tests/CppCodegenTest.java
+++ b/plugins/languages/cpp/org.eclipse.papyrus.designer.languages.cpp.tests/src/org/eclipse/papyrus/designer/languages/cpp/codegen/tests/CppCodegenTest.java
@@ -73,6 +73,8 @@ public class CppCodegenTest {
private static final String TestSTL_fragment = "_VzoE8DSOEeeZL4rbVc-GpQ";
+ private static final String ClassM_fragment = "_ZTRMcG3nEemapKh3s4UAmQ";
+
private static final String Package1_fragment = "_nZ5DgDEmEeOSfbt-FmCdoQ";
private static final String Model_fragment = "_1_ToYCoNEeOncLSXAkfRBA";
@@ -205,6 +207,13 @@ public class CppCodegenTest {
}
@Test
+ public void testGenerateClassM() throws Exception {
+ assertGenerate(ClassM_fragment);
+ assertGeneratedMatchesExpected("ClassM.h", "Package1");
+ assertGeneratedMatchesExpected("ClassM.cpp", "Package1");
+ }
+
+ @Test
public void testGeneratePackage1NamespaceHeader() throws Exception {
assertGenerate(Package1_fragment);
assertGeneratedMatchesExpected("Pkg_Package1.h", "Package1");

Back to the top