Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassOperationsDeclaration.xtend')
-rw-r--r--extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassOperationsDeclaration.xtend25
1 files changed, 25 insertions, 0 deletions
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassOperationsDeclaration.xtend b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassOperationsDeclaration.xtend
new file mode 100644
index 00000000000..e986acbb236
--- /dev/null
+++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen/src/org/eclipse/papyrus/cpp/codegen/xtend/CppClassOperationsDeclaration.xtend
@@ -0,0 +1,25 @@
+package org.eclipse.papyrus.cpp.codegen.xtend
+
+import org.eclipse.uml2.uml.Classifier
+import org.eclipse.uml2.uml.OpaqueBehavior
+import org.eclipse.uml2.uml.VisibilityKind
+
+/**
+ * @author Önder GÜRCAN (onder.gurcan@cea.fr)
+ */
+class CppClassOperationsDeclaration {
+
+ static def CppClassOperationsDeclaration(Classifier clazz, VisibilityKind visibilityFilter) '''
+ «FOR op : CppOperations.getOwnedOperations(clazz).filter[it.visibility == visibilityFilter]»
+
+ «CppOperations.CppOperationDeclaration(op)»
+ «ENDFOR»
+ «FOR b : clazz.eAllContents.toList.filter(OpaqueBehavior).filter[it.visibility == visibilityFilter]»
+ «IF b.specification == null»
+
+ // opaque behavior without specification (typically from state machine)
+ «CppOperations.CppBehaviorDeclaration(b)»
+ «ENDIF»
+ «ENDFOR»
+ '''
+} \ No newline at end of file

Back to the top