Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: 0c3ab27938db8bab4c9efff06c51a799d26861a7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[module CppClassOperationsImplementation('http://www.eclipse.org/uml2/4.0.0/UML', 'http://www.eclipse.org/papyrus/C_Cpp/1')/]
[import org::eclipse::papyrus::acceleo::GenUtils/]
[import org::eclipse::papyrus::cpp::codegen::acceleo::util::operation::CppOperations/]


[comment implementations of a classifier, parameter controls whether only inline (or only not inline) operations
  are produced/]
[template public CppClassOperationsImplementation(class : Classifier, inline : Boolean)]
[for (getOwnedOperations()->select(
		(not (hasStereotype(NoCodeGen) or isAbstract)) and
		(hasStereotype(C_Cpp::Inline) = inline)))]

[CppOperationImplementation()/]
[/for]
[for (b : OpaqueBehavior | eAllContents(OpaqueBehavior)->select(
		(hasStereotype(C_Cpp::Inline) = inline)))]
	[if (b.specification = null)]

// opaque behavior without specification (typically from state machine)
[CppBehaviorImplementation()/]
	[/if]
[/for]
[/template]

Back to the top