diff options
5 files changed, 17 insertions, 16 deletions
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/transformation/CppModelElementsCreator.java b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/transformation/CppModelElementsCreator.java index cd8d62498a8..ff974a517e5 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/transformation/CppModelElementsCreator.java +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/transformation/CppModelElementsCreator.java @@ -178,11 +178,10 @@ public class CppModelElementsCreator extends ModelElementsCreator { final String bindHeaderFileName = locStrategy.getFileName(classifier) + Constants.DOT + hppExt;
generateFile(bindHeaderFileName, commentHeader + CppClassifierGenerator.generateBindHeaderCode(classifier));
- final String bindBodyFileName = classifier.getName() + Constants.DOT + cppExt;
+ final String bindBodyFileName = locStrategy.getFileName(classifier) + Constants.DOT + cppExt;
generateFile(bindBodyFileName, commentHeader + CppClassifierGenerator.generateBindBodyCode(classifier));
}
else {
-
// Class Header file generation
final String classHeaderFileName = locStrategy.getFileName(classifier) + Constants.DOT + hppExt;
generateFile(classHeaderFileName, commentHeader + CppClassifierGenerator.generateClassHeaderCode(classifier));
@@ -241,6 +240,4 @@ public class CppModelElementsCreator extends ModelElementsCreator { GenUtils.hasStereotype(element, External.class) ||
GenUtils.hasStereotypeTree(element, ExternLibrary.class);
}
-
-
}
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/CppGenUtils.java b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/CppGenUtils.java index 9dd72f63bd6..7679a73abfe 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/CppGenUtils.java +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/utils/CppGenUtils.java @@ -138,6 +138,10 @@ public class CppGenUtils { // always use the short name for types within the ANSI C library return ne.getName(); } + else if (owner instanceof ClassifierTemplateParameter) { + // return short name for template in Type + return ne.getName(); + } String qName = ne.getName(); if (currentNS == ne.getNamespace()) { diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassifierGenerator.xtend b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassifierGenerator.xtend index 633f6c52673..184390e5135 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassifierGenerator.xtend +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassifierGenerator.xtend @@ -48,16 +48,16 @@ class CppClassifierGenerator { «CppIncludeUtil.CppIncludeHeader(classifier)» - «var tb = classifier.templateBindings» - «var templateElement = tb.get(0)» + «var tb = GenUtils.getTemplateBinding(classifier)» + «var templateElement = tb.targets.get(0)» «CppIncludeUtil.includeDirective( GenUtils.getFullPath(classifier.package) + '/' + (templateElement.owner as NamedElement).name + '.' + CppCodeGenUtils.getHeaderSuffix())» «CppGenUtils.openNS(classifier)» /************************************************************/ - typedef «(templateElement.owner as NamedElement).name»«FOR ps : templateElement.parameterSubstitutions»«CppTemplates. - CppTemplateBindingParameter(ps)»«ENDFOR» «classifier.name»; + typedef «(templateElement.owner as NamedElement).name»<«FOR ps : tb.parameterSubstitutions SEPARATOR ', '»« + CppTemplates.CppTemplateBindingParameter(ps)»«ENDFOR»> «classifier.name»; «CppGenUtils.closeNS(classifier)» @@ -96,10 +96,10 @@ class CppClassifierGenerator { «ENDFOR» /************************************************************/ - «var tb = GenUtils.getTemplateBindings(classifier as Class)» + «var tb = GenUtils.getTemplateBinding(classifier)» «var templateElement = tb.targets.get(0)» - template class «(templateElement.owner as NamedElement).name»<«FOR ps : tb.parameterSubstitutions»«CppTemplates. - CppTemplateBindingParameter(ps)»«ENDFOR»; + template class «(templateElement.owner as NamedElement).name»<«FOR ps : tb.parameterSubstitutions SEPARATOR ', '»« + CppTemplates.CppTemplateBindingParameter(ps)»«ENDFOR»>; «CppGenUtils.closeNS(classifier)» diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppEnumerations.xtend b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppEnumerations.xtend index 1898a8c38c2..7ab2661f252 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppEnumerations.xtend +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppEnumerations.xtend @@ -20,10 +20,10 @@ import org.eclipse.papyrus.codegen.base.GenUtils * @author Önder GÜRCAN (onder.gurcan@cea.fr) */ class CppEnumerations { - static def CppEnumerationDefinition(Enumeration enume) ''' - «CppDocumentation.CppElementDoc(enume)» - enum «enume.name» { - «FOR ownedLiteral : enume.ownedLiterals» + static def CppEnumerationDefinition(Enumeration enumeration) ''' + «CppDocumentation.CppElementDoc(enumeration)» + enum «enumeration.name» { + «FOR ownedLiteral : enumeration.ownedLiterals» «CppDocumentation.CppElementDoc(ownedLiteral)» «ownedLiteral.name»«IF GenUtils.hasStereotype(ownedLiteral, CppInit)»«UMLUtil. getStereotypeApplication(ownedLiteral, CppInit).value»«ENDIF», diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppOperations.xtend b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppOperations.xtend index 5d644df9701..b510c788a42 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppOperations.xtend +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppOperations.xtend @@ -76,7 +76,7 @@ class CppOperations { static def CppConstInit(Operation operation) { if (GenUtils.hasStereotype(operation, ConstInit) && GenUtils.hasStereotype(operation, Create)) { - (UMLUtil.getStereotypeApplication(operation, ConstInit) as ConstInit).initialisation + ": " + UMLUtil.getStereotypeApplication(operation, ConstInit).initialisation } } |