diff options
author | Ansgar Radermacher | 2019-07-08 15:34:46 +0000 |
---|---|---|
committer | Ansgar Radermacher | 2019-07-08 15:50:29 +0000 |
commit | dd5f935c4de805e10181cdc4b3b27eca573659e7 (patch) | |
tree | 344a0f268ca5062e2b7145dc34e2d87f282cb812 | |
parent | f48e36e12338c5e713873d33043c7f80d05b66b4 (diff) | |
download | org.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>
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"); |