Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremie Tatibouet2015-03-24 13:15:15 +0000
committerCamille Letavernier2015-03-24 13:19:29 +0000
commit246b5ad5b70a9d974448ec9c2dfd8fdfe10553e2 (patch)
tree3fafa30290597619ed71bc13fafad1eb8d5f5bb1 /tests/junit
parentdef2c21b7ea8a1529fa6b06a96dd1a30ddc4f6da (diff)
downloadorg.eclipse.papyrus-246b5ad5b70a9d974448ec9c2dfd8fdfe10553e2.tar.gz
org.eclipse.papyrus-246b5ad5b70a9d974448ec9c2dfd8fdfe10553e2.tar.xz
org.eclipse.papyrus-246b5ad5b70a9d974448ec9c2dfd8fdfe10553e2.zip
462954: [ALF] Integrate the new ALF grammar & tooling
https://bugs.eclipse.org/bugs/show_bug.cgi?id=462954 - Squash the committers/cletavernie/alf-integration branch Also-by: Ed Seidewitz <ed-s@modeldriven.com> Also-by: Arnaud Cuccuru <arnaud.cuccuru@cea.fr> Signed-off-by: Jeremie Tatibouet <jeremie.tatibouet@cea.fr>
Diffstat (limited to 'tests/junit')
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/.classpath9
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/.gitignore1
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/.project34
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/AcceptStatementTest.alf14
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/AssertEqual.alf3
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/AssertFalse.alf4
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/AssertList.alf7
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/AssertTrue.alf2
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Class_Redefinitions.alf36
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/ConstructorDestructorTest.alf10
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/DisambiguationTest.alf19
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/DistinguishabilityTest.alf10
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/ElementImportResolutionTest.alf11
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Assignment.alf15
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Assignment_Feature.alf41
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Assignment_Feature_Indexed.alf38
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Assignment_Indexed.alf12
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Assignment_Null.alf26
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Association.alf82
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Constructor_Destructor.alf87
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Increment_Decrement.alf15
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Invocation.alf49
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Invocation_Reception.alf53
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Literal_Name.alf18
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Object.alf35
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Operator.alf58
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Sequence_Construction.alf27
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Sequence_Expansion_Reduction.alf73
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Sequence_Operation.alf22
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_SuperConstructors.alf78
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Template.alf66
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Interactive_HelloWorld.alf2
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Interactive_InputOutput.alf13
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Interactive_PingPong.alf41
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Interactive_Read.alf2
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/ModelLibraryTest.alf13
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/ReferentTest.alf18
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/SelfReferenceTest.alf9
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_Accept.alf63
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_Classify.alf137
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_Conditional.alf27
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_For_Looping.alf37
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_Return.alf17
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_Simple.alf60
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_While_Do_Looping.alf75
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/TemplateActivityTest.alf2
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/TemplateBindingTest.alf18
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/TestActivity.alf3
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/TestClass.alf19
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Test_EmptyAssociationName.alf16
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Units_ActiveClass.alf39
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Units_Map.alf27
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Write.alf2
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/META-INF/MANIFEST.MF49
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/AcceptStatementTest.uml75
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/AssertEqual.uml43
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/AssertFalse.uml40
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/AssertList.uml59
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/AssertTrue.uml34
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Class_Redefinitions.uml239
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/ConstructorDestructorTest.uml99
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/DisambiguationTest.uml126
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/DistinguishabilityTest.uml107
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/ElementImportResolutionTest.uml75
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Assignment.uml205
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Assignment_Feature.uml247
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Assignment_Feature_Indexed.uml235
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Assignment_Indexed.uml122
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Assignment_Null.uml305
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Association.uml586
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Constructor_Destructor.uml656
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Increment_Decrement.uml186
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Invocation.uml535
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Invocation_Reception.uml308
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Literal_Name.uml217
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Object.uml252
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Operator.uml622
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Sequence_Construction.uml322
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Sequence_Expansion_Reduction.uml552
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Sequence_Operation.uml225
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_SuperConstructors.uml697
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Template.uml509
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Interactive_HelloWorld.uml24
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Interactive_InputOutput.uml140
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Interactive_PingPong.uml215
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Interactive_Read.uml38
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/ModelLibraryTest.uml68
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/ReferentTest.uml134
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/SelfReferenceTest.uml67
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_Accept.uml373
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_Classify.uml773
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_Conditional.uml273
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_For_Looping.uml345
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_Return.uml237
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_Simple.uml464
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_While_Do_Looping.uml657
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/TemplateActivityTest.uml34
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/TemplateBindingTest.uml140
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/TestActivity.uml34
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/TestClass.uml152
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Test_EmptyAssociationName.uml23
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Units_ActiveClass.uml242
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Units_Map.uml244
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Write.uml28
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/about.html28
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/build.properties11
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/pom.xml14
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src-gen/org/eclipse/papyrus/uml/alf/AlfInjectorProvider.java45
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src-gen/org/eclipse/papyrus/uml/alf/AlfUiInjectorProvider.java16
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/Parse.xtend69
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/ParserTest.xtend100
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SemanticTest.xtend76
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SingleTest.xtend77
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SyntacticTest.xtend70
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/generator/AlfGenerator.java166
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/generator/GenerationTest.xtend89
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/AlfCompiler.java103
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/AlfMapper.java168
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/CompilerTests.java456
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/MappingTest.xtend98
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/MergeTest.xtend136
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/utils/ContextModelArea.java134
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/utils/RegisteredItemLoader.java209
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/AcceptStatementTest.alf9
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/AssertEqual.alf9
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/AssertList.alf9
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Class_Redefinitions.alf19
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/ConstructorDestructorTest.alf8
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/DisambiguationTest.alf11
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/DistinguishabilityTest.alf6
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/ElementImportResolutionTest.alf6
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Assignment.alf53
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Assignment_Feature.alf79
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Association.alf151
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Constructor_Destructor.alf108
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Invocation.alf97
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Invocation_Reception.alf84
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Literal_Name.alf46
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Operator.alf134
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Sequence_Construction.alf80
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Sequence_Expansion_Reduction.alf120
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Sequence_Operation.alf55
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_SuperConstructors.alf115
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Template.alf79
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/ModelLibraryTest.alf6
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/ReferentTest.alf10
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/SelfReferenceTest.alf3
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Statements_Accept.alf124
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Statements_Classify.alf79
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Statements_Conditional.alf102
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Statements_For_Looping.alf93
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/TemplateActivityTest.alf3
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/TemplateBindingTest.alf8
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/TestActivity.alf5
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/TestClass.alf11
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/xtend-gen/org/eclipse/papyrus/uml/alf/tests/.gitignore5
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/xtend-gen/org/eclipse/papyrus/uml/alf/tests/generator/.gitignore1
-rw-r--r--tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/xtend-gen/org/eclipse/papyrus/uml/alf/tests/mapper/.gitignore2
160 files changed, 17831 insertions, 0 deletions
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/.classpath b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/.classpath
new file mode 100644
index 00000000000..c76b7dcedf7
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins" />
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="src" path="xtend-gen"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/.gitignore b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/.gitignore
new file mode 100644
index 00000000000..ae3c1726048
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/.project b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/.project
new file mode 100644
index 00000000000..6c3ba830c22
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.uml.alf.tests</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ </natures>
+</projectDescription>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/.settings/org.eclipse.core.resources.prefs b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..99f26c0203a
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/.settings/org.eclipse.jdt.core.prefs b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..f42de363afa
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/AcceptStatementTest.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/AcceptStatementTest.alf
new file mode 100644
index 00000000000..8955a7a0745
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/AcceptStatementTest.alf
@@ -0,0 +1,14 @@
+active class AcceptStatementTest {
+
+ public receive signal S1 {
+ }
+
+ public receive signal S2 {
+ }
+
+ @Create
+ public AcceptStatementTest();
+ @Destroy
+ public destroy();
+
+} do 'AcceptStatementTest$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/AssertEqual.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/AssertEqual.alf
new file mode 100644
index 00000000000..6a2ab1903bf
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/AssertEqual.alf
@@ -0,0 +1,3 @@
+activity AssertEqual(in label: String, in value1: any[0..1],
+ in value2: any[0..1]) {
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/AssertFalse.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/AssertFalse.alf
new file mode 100644
index 00000000000..fe3447593f1
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/AssertFalse.alf
@@ -0,0 +1,4 @@
+private import
+FoundationalModelLibrary::PrimitiveBehaviors::BooleanFunctions::ToString as ;
+activity AssertFalse(in label: String, in condition: Boolean[0..1]) {
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/AssertList.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/AssertList.alf
new file mode 100644
index 00000000000..69de4dc260f
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/AssertList.alf
@@ -0,0 +1,7 @@
+package AssertList {
+
+ public activity AssertList(in label: String, in list: any[0..*] sequence,
+ in expected: any[0..*] sequence);
+ public activity AssertEqual(in label: String, in value1: any, in value2: any);
+
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/AssertTrue.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/AssertTrue.alf
new file mode 100644
index 00000000000..84bfc8b94e4
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/AssertTrue.alf
@@ -0,0 +1,2 @@
+activity AssertTrue(in label: String, in condition: Boolean[0..1]) {
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Class_Redefinitions.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Class_Redefinitions.alf
new file mode 100644
index 00000000000..abdeb319827
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Class_Redefinitions.alf
@@ -0,0 +1,36 @@
+package Redefinitions {
+
+ public abstract class B {
+
+ abstract p(in x: Integer);
+ @Create
+ public B();
+ @Destroy
+ public destroy();
+
+ }
+
+ public class Redefinitions specializes A, B {
+
+ p(in x: Integer);
+ renamed1(in x: Integer);
+ q(in y: Boolean);
+ @Create
+ public Redefinitions();
+ @Destroy
+ public destroy();
+
+ }
+
+ public abstract class A {
+
+ abstract p(in x: Integer);
+ abstract q(in y: Boolean);
+ @Create
+ public A();
+ @Destroy
+ public destroy();
+
+ }
+
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/ConstructorDestructorTest.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/ConstructorDestructorTest.alf
new file mode 100644
index 00000000000..fc94650347b
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/ConstructorDestructorTest.alf
@@ -0,0 +1,10 @@
+class ConstructorDestructorTest {
+
+ @Create
+ public ConstructorDestructorTest(in n: Integer);
+ @Create
+ public create();
+ @Destroy
+ public destroy();
+
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/DisambiguationTest.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/DisambiguationTest.alf
new file mode 100644
index 00000000000..a6e5656f532
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/DisambiguationTest.alf
@@ -0,0 +1,19 @@
+active class DisambiguationTest {
+
+ class Customer {
+
+ public name: String;
+ @Create
+ public Customer();
+ @Destroy
+ public destroy();
+
+ }
+
+ customer: Customer;
+ @Create
+ public DisambiguationTest();
+ @Destroy
+ public destroy();
+
+} do 'DisambiguationTest$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/DistinguishabilityTest.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/DistinguishabilityTest.alf
new file mode 100644
index 00000000000..33b035141f7
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/DistinguishabilityTest.alf
@@ -0,0 +1,10 @@
+class DistinguishibilityTest {
+
+ @Create
+ public create(in x: Integer);
+ @Create
+ public create(in x: String);
+ @Destroy
+ public destroy();
+
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/ElementImportResolutionTest.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/ElementImportResolutionTest.alf
new file mode 100644
index 00000000000..b3fe1be0997
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/ElementImportResolutionTest.alf
@@ -0,0 +1,11 @@
+private import PrimitiveTypes::Boolean;
+private import PrimitiveTypes::Integer;
+private import PrimitiveTypes::String;
+class ElementImportResolution {
+
+ @Create
+ public ElementImportResolution();
+ @Destroy
+ public destroy();
+
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Assignment.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Assignment.alf
new file mode 100644
index 00000000000..fb3d48bff53
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Assignment.alf
@@ -0,0 +1,15 @@
+/**
+ * Test non-indexed assignment expressions.
+ **/
+active class Expressions_Assignment {
+
+ public activity AssertEqual(in label: String, in value1: any, in value2: any);
+ public activity AssertFalse(in label: String, in value: Boolean);
+ public test(out i: Integer, out f: Boolean, out h: BitString,
+ out filename: String, out a: Integer);
+ @Create
+ public Expressions_Assignment();
+ @Destroy
+ public destroy();
+
+} do 'Expressions_Assignment$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Assignment_Feature.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Assignment_Feature.alf
new file mode 100644
index 00000000000..a64400062e8
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Assignment_Feature.alf
@@ -0,0 +1,41 @@
+/**
+ * Test non-indexed feature assignment expressions
+ **/
+active class Expressions_Assignment_Feature {
+
+ private class C {
+
+ public x: Integer;
+ public y: Integer[0..*] sequence;
+ @Create
+ public C();
+ @Destroy
+ public destroy();
+
+ }
+
+ private datatype D {
+ public x: Integer;
+ public y: Integer[0..*] sequence;
+ }
+
+ private assoc A {
+ public c: C;
+ public n: Integer;
+ }
+
+ private assoc B {
+ public d: D;
+ public m: Integer;
+ }
+
+ private x: Integer;
+ private y: Integer[0..*] sequence;
+ public test(out c: C, out d: D, out n: Integer, out m: Integer,
+ out self: Expressions_Assignment_Feature);
+ @Create
+ public Expressions_Assignment_Feature();
+ @Destroy
+ public destroy();
+
+} do 'Expressions_Assignment_Feature$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Assignment_Feature_Indexed.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Assignment_Feature_Indexed.alf
new file mode 100644
index 00000000000..2c48a0890de
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Assignment_Feature_Indexed.alf
@@ -0,0 +1,38 @@
+/**
+ * Test indexed feature assignment expressions
+ **/
+active class Expressions_Assignment_Feature_Indexed {
+
+ private class C {
+
+ public y: Integer[0..*] sequence;
+ @Create
+ public C();
+ @Destroy
+ public destroy();
+
+ }
+
+ private datatype D {
+ public y: Integer[0..*] sequence;
+ }
+
+ private assoc A {
+ public c: C;
+ public n: Integer[0..*] sequence;
+ }
+
+ private assoc B {
+ public d: D;
+ public m: Integer[0..*] sequence;
+ }
+
+ private y: Integer[0..*] sequence;
+ public test(out c: C, out d: D, out n: Integer, out m: Integer,
+ out self: Expressions_Assignment_Feature_Indexed);
+ @Create
+ public Expressions_Assignment_Feature_Indexed();
+ @Destroy
+ public destroy();
+
+} do 'Expressions_Assignment_Feature_Indexed$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Assignment_Indexed.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Assignment_Indexed.alf
new file mode 100644
index 00000000000..3e1060d0afe
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Assignment_Indexed.alf
@@ -0,0 +1,12 @@
+/**
+ * Test indexed assignment expressions.
+ **/
+active class Expressions_Assignment_Indexed {
+
+ public test(out i: Integer[0..*], out a: Integer[0..*]);
+ @Create
+ public Expressions_Assignment_Indexed();
+ @Destroy
+ public destroy();
+
+} do 'Expressions_Assignment_Indexed$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Assignment_Null.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Assignment_Null.alf
new file mode 100644
index 00000000000..5a8d796573b
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Assignment_Null.alf
@@ -0,0 +1,26 @@
+/**
+ * Test non-literal assignment of null.
+ **/
+active class Expressions_Assignment_Null {
+
+ datatype D {
+ public k: Integer[0..1];
+ }
+
+ public activity 'd$defaultValue$1'(): D;
+ private i: Integer[0..1];
+ private j: Integer[0..*] sequence;
+ private d: D = 'd$defaultValue$1'();
+ public set(in i: Integer[0..1]);
+ public get(): Integer[0..1];
+ public setAt(in j: Integer[0..1], in index: Integer);
+ public getAt(in index: Integer): Integer[0..1];
+ public setData(in k: Integer[0..1]);
+ public getData(): Integer;
+ public test(out i: Integer[0..1], out j: Integer[0..1], out k: Integer[0..1]);
+ @Create
+ public Expressions_Assignment_Null();
+ @Destroy
+ public destroy();
+
+} do 'Expressions_Assignment_Null$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Association.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Association.alf
new file mode 100644
index 00000000000..e802d25843a
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Association.alf
@@ -0,0 +1,82 @@
+/**
+ * Test association-related expressions.
+ **/
+active class Expressions_Association {
+
+ class Person {
+
+ public activity 'name$defaultValue$1'(): String;
+ public name: String = 'name$defaultValue$1'();
+ @Create
+ public Person(in name: String[0..1]);
+ @Destroy
+ public destroy();
+
+ }
+
+ class House {
+
+ public id: Integer;
+ @Create
+ public House(in id: Integer);
+ @Destroy
+ public destroy();
+
+ }
+
+ class Player specializes Person {
+
+ @Create
+ public Player(in name: String[0..1]);
+ @Destroy
+ public destroy();
+
+ }
+
+ class Team {
+
+ public name: String;
+ @Create
+ public Team(in name: String);
+ @Destroy
+ public destroy();
+
+ }
+
+ class Season {
+
+ public year: Integer;
+ @Create
+ public Season(in year: Integer);
+ @Destroy
+ public destroy();
+
+ }
+
+ assoc Owns {
+ owner: Person;
+ house: House;
+ }
+
+ assoc Owns1 {
+ owner1: Person;
+ house1: House[0..*] ordered;
+ }
+
+ assoc Roster {
+ player: Player[0..*];
+ team: Team;
+ season: Season[0..*];
+ }
+
+ test(out owner: Person, out house: House, out house_a: House,
+ out house_b: House[0..1], out owner1_a: Person, out house1_a: House[0..*],
+ out owner1_b: Person, out house1_b: House[0..*], out house1_c: House[0..*],
+ out players1_a: Player[0..*], out players2_a: Player[0..*],
+ out players1_b: Player[0..*], out players2_b: Player[0..*]);
+ @Create
+ public Expressions_Association();
+ @Destroy
+ public destroy();
+
+} do 'Expressions_Association$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Constructor_Destructor.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Constructor_Destructor.alf
new file mode 100644
index 00000000000..92bcfecec46
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Constructor_Destructor.alf
@@ -0,0 +1,87 @@
+/**
+ * Test constructor and destructor expressions.
+ **/
+active class Expressions_Constructor_Destructor {
+
+ class Initialization {
+
+ public activity 'b$defaultValue$1'(): Integer;
+ public activity 'a$defaultValue$1'(): Integer;
+ public a: Integer = 'a$defaultValue$1'();
+ public b: Integer = 'b$defaultValue$1'();
+ @Create
+ public Initialization();
+ @Destroy
+ public destroy();
+
+ }
+
+ class Initialization2 specializes Initialization {
+
+ public activity 'c$defaultValue$1'(): Integer;
+ public c: Integer = 'c$defaultValue$1'();
+ @Create
+ public Initialization2();
+ @Destroy
+ public destroy();
+
+ }
+
+ class Monitor {
+
+ @Destroy
+ public destroy(in recoveryLog: Log);
+ @Create
+ public Monitor();
+
+ }
+
+ class Log {
+
+ public activity 'name$defaultValue$1'(): String;
+ public activity 'logged$defaultValue$1'(): Boolean;
+ public name: String = 'name$defaultValue$1'();
+ public logged: Boolean = 'logged$defaultValue$1'();
+ @Create
+ public Log();
+ @Destroy
+ public destroy();
+
+ }
+
+ class Employee {
+
+ public activity 'transferred$defaultValue$1'(): Boolean;
+ public activity 'relocated$defaultValue$1'(): Boolean;
+ public id: Integer;
+ public name: String;
+ public transferred: Boolean = 'transferred$defaultValue$1'();
+ public relocated: Boolean = 'relocated$defaultValue$1'();
+ @Create
+ public Employee(in id: Integer, in name: String);
+ @Create
+ public transferred(in employeeInfo: Employee);
+ @Create
+ public relocated(in employeeInfo: Employee);
+ @Destroy
+ public destroy();
+
+ }
+
+ datatype D0 {
+ public y: Integer[0..*] sequence;
+ }
+
+ datatype D specializes D0 {
+ public x: String;
+ }
+
+ test(out employee1: Employee, out employee2: Employee,
+ out employee3: Employee, out init: Initialization, out log: Log,
+ out monitor1: Monitor, out monitor2: Monitor, out d: D);
+ @Create
+ public Expressions_Constructor_Destructor();
+ @Destroy
+ public destroy();
+
+} do 'Expressions_Constructor_Destructor$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Increment_Decrement.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Increment_Decrement.alf
new file mode 100644
index 00000000000..75d09aceac9
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Increment_Decrement.alf
@@ -0,0 +1,15 @@
+/**
+ * Test increment and decrement expressions.
+ **/
+active class Expressions_Increment_Decrement {
+
+ private x: Integer;
+ private list: Integer[0..*] sequence;
+ public test(out s: Integer[0..*] sequence, out i: Integer, out x: Integer,
+ out list: Integer[0..*] sequence, out j: Integer, out k: Integer);
+ @Create
+ public Expressions_Increment_Decrement();
+ @Destroy
+ public destroy();
+
+} do 'Expressions_Increment_Decrement$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Invocation.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Invocation.alf
new file mode 100644
index 00000000000..c37f2e529c7
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Invocation.alf
@@ -0,0 +1,49 @@
+private import
+FoundationalModelLibrary::PrimitiveBehaviors::IntegerFunctions::ToString;
+
+/**
+ * Test behavior, operation and super invocation expressions.
+ **/
+active class Expressions_Invocation {
+
+ activity A(in x: Integer, in y: Boolean[0..1]): Integer;
+ activity ComputeInterest(in amount: Integer): Integer;
+ activity B(out s: String);
+ activity C(in b: BitString, out c: Integer);
+ class Super {
+
+ public activity 'value$defaultValue$1'(): Integer;
+ public activity 'name$defaultValue$1'(): String;
+ public value: Integer = 'value$defaultValue$1'();
+ public name: String = 'name$defaultValue$1'();
+ public run();
+ public initialize(in value: Integer);
+ public setName(in name: String);
+ @Create
+ public Super();
+ @Destroy
+ public destroy();
+
+ }
+
+ class Super1 specializes Super {
+
+ public 'do'(in i: Integer);
+ @Create
+ public Super1();
+ @Destroy
+ public destroy();
+
+ }
+
+ test(out c: Integer, out b: BitString, inout status1: String,
+ out status2: String, out statuses: String[0..*], out i: Integer,
+ out j: Integer, out k: Integer, out l: Integer, out m: Integer,
+ out n: Integer, out n1: Integer, out obj: Super1, out list: Super[0..*]
+ sequence, out ns: Integer);
+ @Create
+ public Expressions_Invocation();
+ @Destroy
+ public destroy();
+
+} do 'Expressions_Invocation$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Invocation_Reception.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Invocation_Reception.alf
new file mode 100644
index 00000000000..2169548f6c8
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Invocation_Reception.alf
@@ -0,0 +1,53 @@
+/**
+ * Test reception invocation expressions.
+ */
+active class Expressions_Invocation_Reception {
+
+ public active class Receiver {
+
+ public receive signal A {
+ }
+
+ public receive signal B {
+ x: Integer;
+ }
+
+ public receive signal C {
+ x: Integer[0..1];
+ y: Integer[0..1];
+ }
+
+ public activity 'a$defaultValue$1'(): Integer;
+ public a: Integer = 'a$defaultValue$1'();
+ public x: Integer[0..*] sequence;
+ public y: Integer[0..*] sequence;
+ public tester: TestRunner;
+ @Create
+ public Receiver(in tester: TestRunner);
+ @Destroy
+ public destroy();
+
+ } do 'Receiver$behavior$1'
+
+ public active class TestRunner {
+
+ public receive signal Start {
+ }
+
+ public receive signal SignalLoop {
+ }
+
+ public test(out receiver: Receiver, out n: Integer);
+ @Create
+ public TestRunner();
+ @Destroy
+ public destroy();
+
+ } do 'TestRunner$behavior$1'
+
+ @Create
+ public Expressions_Invocation_Reception();
+ @Destroy
+ public destroy();
+
+} do 'Expressions_Invocation_Reception$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Literal_Name.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Literal_Name.alf
new file mode 100644
index 00000000000..8c78a2eac93
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Literal_Name.alf
@@ -0,0 +1,18 @@
+/**
+ * Test literal and name expressions.
+ **/
+active class Expressions_Literal_Name {
+
+ enum Empty { }
+
+ enum E { A, B, C, D }
+
+ test(in a: Integer, out i: any, out j: any, out k: any, out l: any,
+ out m: any, out n: any, out x: any, out y: any, out b: Integer,
+ out c: Integer, out d: Integer, out e: E);
+ @Create
+ public Expressions_Literal_Name();
+ @Destroy
+ public destroy();
+
+} do 'Expressions_Literal_Name$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Object.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Object.alf
new file mode 100644
index 00000000000..e2499a47a89
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Object.alf
@@ -0,0 +1,35 @@
+/**
+ * Test object structure expressions.
+ **/
+active class Expressions_Object {
+
+ class Member {
+
+ public isActive: Boolean;
+ public name: String;
+ public address: String;
+ @Create
+ public Member();
+ @Destroy
+ public destroy();
+
+ }
+
+ datatype Customer {
+ public name: String;
+ public email: String;
+ public address: String[0..*] sequence;
+ }
+
+ members: Member[0..*] sequence;
+ principal: Integer;
+ rate: Integer;
+ interest: Integer;
+ test(out member: Member, out customer0: Customer, out customer1: Customer,
+ out names: String[0..*], out self: Expressions_Object);
+ @Create
+ public Expressions_Object();
+ @Destroy
+ public destroy();
+
+} do 'Expressions_Object$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Operator.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Operator.alf
new file mode 100644
index 00000000000..935d1555812
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Operator.alf
@@ -0,0 +1,58 @@
+/**
+ * Test various operator expressions.
+ **/
+active class Expressions_Operator {
+
+ class Monitor {
+
+ public getActiveSensor(): Sensor;
+ @Create
+ public Monitor();
+ @Destroy
+ public destroy();
+
+ }
+
+ class Sensor {
+
+ public getReading(): Integer;
+ @Create
+ public Sensor();
+ @Destroy
+ public destroy();
+
+ }
+
+ class Person {
+
+ @Create
+ public Person();
+ @Destroy
+ public destroy();
+
+ }
+
+ class Employee specializes Person {
+
+ public id: Integer;
+ public name: String;
+ @Create
+ public Employee();
+ @Destroy
+ public destroy();
+
+ }
+
+ test(out i: Integer, out j: Integer, out bs: BitString, out h: Integer,
+ out a: Boolean, out b: Boolean, out c: Boolean, out d: Boolean,
+ out e: Boolean, out e1: Boolean, out e2: Boolean, out e3: Boolean,
+ out e4: Boolean, out e5: Boolean, out e6: Boolean, out e7: Boolean,
+ out e8: Boolean, out e9: Boolean, out f: Boolean, out f1: Boolean,
+ out f2: Boolean, out x: any, out y: any[0..*] sequence, out z: Integer[0..*],
+ out r: Integer);
+ @Create
+ public Expressions_Operator();
+ @Destroy
+ public destroy();
+
+} do 'Expressions_Operator$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Sequence_Construction.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Sequence_Construction.alf
new file mode 100644
index 00000000000..83fb9c602ca
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Sequence_Construction.alf
@@ -0,0 +1,27 @@
+/**
+ * Test sequence construction expressions.
+ **/
+active class Expressions_Sequence_Construction {
+
+ class Customer {
+
+ public name: String;
+ @Create Customer(in name: String);
+ @Destroy
+ public destroy();
+
+ }
+
+ getList(): Integer[1..*];
+ test(out seq1: String[0..*] sequence, out seq2: String[0..*] sequence,
+ out seq3: any[0..*] sequence, out seq4: Integer[0..*] sequence,
+ out seq5: Integer[0..*] sequence, out seq6: Integer[0..*] sequence,
+ out seq7: Integer[0..*] sequence, out x: Integer,
+ out customers: Customer[0..*] sequence, out set1: Set< Integer >,
+ out set2: Set< Integer >, out list: List< List< String > >);
+ @Create
+ public Expressions_Sequence_Construction();
+ @Destroy
+ public destroy();
+
+} do 'Expressions_Sequence_Construction$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Sequence_Expansion_Reduction.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Sequence_Expansion_Reduction.alf
new file mode 100644
index 00000000000..ec2a8b47a9d
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Sequence_Expansion_Reduction.alf
@@ -0,0 +1,73 @@
+private import Alf::Library::PrimitiveBehaviors::IntegerFunctions::*;
+
+/**
+ * Test sequence expansion and reduction expressions.
+ **/
+active class Expressions_Sequence_Expansion_Reduction {
+
+ public class Employee {
+
+ public activity 'age$defaultValue$1'(): Integer;
+ public activity 'title$defaultValue$1'(): String;
+ public activity 'isMarried$defaultValue$1'(): Boolean;
+ public activity 'name$defaultValue$1'(): String;
+ public activity 'id$defaultValue$1'(): Integer;
+ public age: Integer = 'age$defaultValue$1'();
+ public isMarried: Boolean = 'isMarried$defaultValue$1'();
+ public name: String = 'name$defaultValue$1'();
+ public title: String = 'title$defaultValue$1'();
+ public id: Integer = 'id$defaultValue$1'();
+ @Create
+ public Employee();
+ @Destroy
+ public destroy();
+
+ }
+
+ public class Attribute {
+
+ public activity 'type$defaultValue$1'(): Integer;
+ public type: Integer = 'type$defaultValue$1'();
+ @Create
+ public Attribute();
+ @Destroy
+ public destroy();
+
+ }
+
+ public class Something {
+
+ public activity 'attribute$defaultValue$1'(): Attribute[0..*];
+ public attribute: Attribute[0..*] = 'attribute$defaultValue$1'();
+ @Create
+ public Something();
+ @Destroy
+ public destroy();
+
+ }
+
+ public class Object {
+
+ public attr: Attribute;
+ public init(in attr: Attribute);
+ @Create
+ public Object();
+ @Destroy
+ public destroy();
+
+ }
+
+ activity Bad(in x: Integer, in y: Integer): Integer;
+ public activity test(out sum: Integer, out remainder: Integer,
+ out bad: Integer, out select: Employee[0..*] sequence,
+ out reject: Employee[0..*] sequence, out collect: String[0..*] sequence,
+ out iterate: String[0..*] sequence, out forAll: Boolean,
+ out exists: Boolean, out one: Boolean, out unique: Boolean,
+ out jack: Employee, out joan: Employee, out something: Something,
+ out obj: Object);
+ @Create
+ public Expressions_Sequence_Expansion_Reduction();
+ @Destroy
+ public destroy();
+
+ } do 'Expressions_Sequence_Expansion_Reduction$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Sequence_Operation.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Sequence_Operation.alf
new file mode 100644
index 00000000000..41cdc27c1f9
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Sequence_Operation.alf
@@ -0,0 +1,22 @@
+/**
+ * Test sequence operation expressions.
+ **/
+active class Expressions_Sequence_Operation {
+
+ class Customer {
+
+ public name: String;
+ @Create Customer(in name: String);
+ @Destroy
+ public destroy();
+
+ }
+
+ test(out notEmpty: Boolean, out includes: Boolean, out m: Integer,
+ out n: Integer, out customers: Customer[0..*], out list: any[0..*]);
+ @Create
+ public Expressions_Sequence_Operation();
+ @Destroy
+ public destroy();
+
+} do 'Expressions_Sequence_Operation$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_SuperConstructors.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_SuperConstructors.alf
new file mode 100644
index 00000000000..22001436d87
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_SuperConstructors.alf
@@ -0,0 +1,78 @@
+/**
+ * Test super constructor invocation expressions.
+ **/
+active class Expressions_SuperConstructors {
+
+ class Super1 {
+
+ public activity 'x$defaultValue$1'(): Integer;
+ public x: Integer = 'x$defaultValue$1'();
+ @Create
+ public Super1();
+ @Create
+ public create(in x: Integer);
+ @Destroy
+ public destroy();
+
+ }
+
+ class Sub1 specializes Super1 {
+
+ public activity 'z1$defaultValue$1'(): Integer;
+ public z1: Integer = 'z1$defaultValue$1'();
+ @Create
+ public Sub1();
+ @Create
+ public a();
+ @Create
+ public b(in x: Integer);
+ @Destroy
+ public destroy();
+
+ }
+
+ class Super2 {
+
+ public activity 'y$defaultValue$1'(): Integer;
+ public y: Integer = 'y$defaultValue$1'();
+ @Create
+ public Super2();
+ @Create
+ public create(in y: Integer);
+ @Destroy
+ public destroy();
+
+ }
+
+ class Sub2 specializes Super2, Super1 {
+
+ public activity 'z2$defaultValue$1'(): Integer;
+ public z2: Integer = 'z2$defaultValue$1'();
+ @Create
+ public Sub2();
+ @Create
+ public create1(in x: Integer);
+ @Create
+ public create2(in x: Integer, in y: Integer);
+ @Destroy
+ public destroy();
+
+ }
+
+ class Sub3 specializes Sub1, Sub2 {
+
+ @Create
+ public Sub3();
+ @Destroy
+ public destroy();
+
+ }
+
+ test(out super0: Super1, out super1: Super1, out s0: Sub1, out s1: Sub1,
+ out s2: Sub1, out s00: Sub2, out s10: Sub2, out s11: Sub2, out s3: Sub3);
+ @Create
+ public Expressions_SuperConstructors();
+ @Destroy
+ public destroy();
+
+} do 'Expressions_SuperConstructors$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Template.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Template.alf
new file mode 100644
index 00000000000..68b9286fc3d
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Expressions_Template.alf
@@ -0,0 +1,66 @@
+/**
+ * Test expressions involving templates.
+ **/
+active class Expressions_Template {
+
+ public receive signal Continue {
+ }
+
+ public activity A<T specializes B>(in x: T): Integer;
+ public class B {
+
+ public i: Integer;
+ @Create
+ public B(in i: Integer);
+ @Destroy
+ public destroy();
+
+ }
+
+ public class C<T> {
+
+ activity E(in x: T): T;
+ p: T;
+ @Create
+ public C(in p: T);
+ r(): T;
+ @Destroy
+ public destroy();
+
+ }
+
+ public active class H<T> {
+
+ public a: T;
+ public b: T;
+ public t: TestRunner;
+ @Create
+ public H(in a: T, in t: TestRunner);
+ @Destroy
+ public destroy();
+
+ } do 'H$behavior$1'
+
+ public active class TestRunner {
+
+ public receive signal Start {
+ }
+
+ public receive signal Continue {
+ }
+
+ public test(out i: Integer, out j: Integer, out h: H< B >,
+ out s: Set< Integer >, out list: List< Integer >);
+ @Create
+ public TestRunner();
+ @Destroy
+ public destroy();
+
+ } do 'TestRunner$behavior$1'
+
+ @Create
+ public Expressions_Template();
+ @Destroy
+ public destroy();
+
+} do 'Expressions_Template$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Interactive_HelloWorld.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Interactive_HelloWorld.alf
new file mode 100644
index 00000000000..5c4a5f4691b
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Interactive_HelloWorld.alf
@@ -0,0 +1,2 @@
+activity Interactive_HelloWorld() {
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Interactive_InputOutput.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Interactive_InputOutput.alf
new file mode 100644
index 00000000000..f87940beff9
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Interactive_InputOutput.alf
@@ -0,0 +1,13 @@
+private import FoundationalModelLibrary::BasicInputOutput as ;
+active class Interactive_InputOutput {
+
+ activity Input(): StandardInputChannel;
+ activity Output(): StandardOutputChannel;
+ activity A(out x: any[0..1], out y: any[0..1], out status1: Status[0..1],
+ out status2: Status[0..1]);
+ @Create
+ public Interactive_InputOutput();
+ @Destroy
+ public destroy();
+
+} do 'Interactive_InputOutput$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Interactive_PingPong.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Interactive_PingPong.alf
new file mode 100644
index 00000000000..6c973627965
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Interactive_PingPong.alf
@@ -0,0 +1,41 @@
+active class Interactive_PingPong {
+
+ active class A {
+
+ receive signal Start {
+ public b: B;
+ }
+
+ receive signal Ping {
+ }
+
+ @Create
+ public A();
+ @Destroy
+ public destroy();
+
+ } do 'A$behavior$1'
+
+ active class B {
+
+ receive signal Start {
+ public a: A;
+ public n: Integer;
+ }
+
+ receive signal Pong {
+ }
+
+ @Create
+ public B();
+ @Destroy
+ public destroy();
+
+ } do 'B$behavior$1'
+
+ @Create
+ public Interactive_PingPong();
+ @Destroy
+ public destroy();
+
+} do 'Interactive_PingPong$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Interactive_Read.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Interactive_Read.alf
new file mode 100644
index 00000000000..9667bac90e2
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Interactive_Read.alf
@@ -0,0 +1,2 @@
+activity Interactive_Read() {
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/ModelLibraryTest.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/ModelLibraryTest.alf
new file mode 100644
index 00000000000..e962f816c18
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/ModelLibraryTest.alf
@@ -0,0 +1,13 @@
+@ModelLibrary
+package ModelLibraryTest {
+
+ public class C {
+
+ @Create
+ public C();
+ @Destroy
+ public destroy();
+
+ }
+
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/ReferentTest.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/ReferentTest.alf
new file mode 100644
index 00000000000..044e2ac2159
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/ReferentTest.alf
@@ -0,0 +1,18 @@
+class ReferentTest {
+
+ public active class Test {
+
+ private test(out test: Test);
+ @Create
+ public Test();
+ @Destroy
+ public destroy();
+
+ } do 'Test$behavior$1'
+
+ @Create
+ public ReferentTest();
+ @Destroy
+ public destroy();
+
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/SelfReferenceTest.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/SelfReferenceTest.alf
new file mode 100644
index 00000000000..b5296aa5414
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/SelfReferenceTest.alf
@@ -0,0 +1,9 @@
+class SelfReferenceTest {
+
+ public self: SelfReferenceTest;
+ @Create
+ public SelfReferenceTest();
+ @Destroy
+ public destroy();
+
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_Accept.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_Accept.alf
new file mode 100644
index 00000000000..4f055e98296
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_Accept.alf
@@ -0,0 +1,63 @@
+/**
+ * Test accept statements.
+ **/
+active class Statements_Accept {
+
+ private abstract active class Super {
+
+ public signal SignalNewArrival {
+ public name: String;
+ }
+
+ public receive signal SignalTermination {
+ }
+
+ @Create
+ public Super();
+ @Destroy
+ public destroy();
+
+ }
+
+ private active class Test specializes Super {
+
+ public activity 'count$defaultValue$1'(): Integer;
+ public sig: any;
+ public sig1: any;
+ public name: String;
+ public terminate: Boolean;
+ public arrival: SignalNewArrival;
+ public count: Integer = 'count$defaultValue$1'();
+ public signals: any[0..*] sequence;
+ public flag: Boolean;
+ public tester: TestRunner;
+ @Create
+ public Test(in tester: TestRunner);
+ @Destroy
+ public destroy();
+ public receive SignalNewArrival;
+
+ } do 'Test$behavior$1'
+
+ public active class TestRunner {
+
+ public receive signal Start {
+ }
+
+ public receive signal Continue {
+ }
+
+ private run(out test: Test);
+ @Create
+ public TestRunner();
+ @Destroy
+ public destroy();
+
+ } do 'TestRunner$behavior$1'
+
+ @Create
+ public Statements_Accept();
+ @Destroy
+ public destroy();
+
+} do 'Statements_Accept$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_Classify.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_Classify.alf
new file mode 100644
index 00000000000..bd0541d8540
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_Classify.alf
@@ -0,0 +1,137 @@
+/**
+ * Test classify statements.
+ **/
+active class Statements_Classify {
+
+ class Monitor {
+
+ @Create
+ public Monitor();
+ @Destroy
+ public destroy();
+
+ }
+
+ class InActiveMonitor specializes Monitor {
+
+ @Create
+ public InActiveMonitor();
+ @Destroy
+ public destroy();
+
+ }
+
+ active class ActiveMonitor specializes Monitor {
+
+ public activity 'n$defaultValue$1'(): Integer;
+ public n: Integer = 'n$defaultValue$1'();
+ @Create
+ public ActiveMonitor();
+ @Destroy
+ public destroy();
+
+ } do 'ActiveMonitor$behavior$1'
+
+ class Employee {
+
+ @Create
+ public Employee();
+ @Destroy
+ public destroy();
+
+ }
+
+ class Administrator specializes Employee {
+
+ @Create
+ public Administrator();
+ @Destroy
+ public destroy();
+
+ }
+
+ class Staff specializes Employee {
+
+ @Create
+ public Staff();
+ @Destroy
+ public destroy();
+
+ }
+
+ class PartTime specializes Employee {
+
+ @Create
+ public PartTime();
+ @Destroy
+ public destroy();
+
+ }
+
+ class Issue {
+
+ @Create
+ public Issue();
+ @Destroy
+ public destroy();
+
+ }
+
+ class Pending specializes Issue {
+
+ @Create
+ public Pending();
+ @Destroy
+ public destroy();
+
+ }
+
+ class InProcess specializes Issue {
+
+ @Create
+ public InProcess();
+ @Destroy
+ public destroy();
+
+ }
+
+ class Overdue specializes Issue {
+
+ @Create
+ public Overdue();
+ @Destroy
+ public destroy();
+
+ }
+
+ class Resolved specializes Issue {
+
+ @Create
+ public Resolved();
+ @Destroy
+ public destroy();
+
+ }
+
+ active class TestRunner {
+
+ public receive signal Start {
+ }
+
+ public receive signal Continue {
+ }
+
+ public test(out employee: Employee, out monitor: Monitor, out issue: Issue);
+ @Create
+ public TestRunner();
+ @Destroy
+ public destroy();
+
+ } do 'TestRunner$behavior$1'
+
+ @Create
+ public Statements_Classify();
+ @Destroy
+ public destroy();
+
+} do 'Statements_Classify$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_Conditional.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_Conditional.alf
new file mode 100644
index 00000000000..b0b11f07338
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_Conditional.alf
@@ -0,0 +1,27 @@
+/**
+ * Test if and switch statements.
+ **/
+active class Statements_Conditional {
+
+ class Monitor {
+
+ public raiseAlarm(in sensorId: Integer);
+ public cleanUp();
+ @Create
+ public Monitor();
+ @Destroy
+ public destroy();
+
+ }
+
+ enum Condition { normal, alert, critical, error }
+
+ test(out condition1: Condition, out condition2: Condition,
+ out condition3: Condition, out year: Integer, out month: Integer,
+ out numDays: Integer);
+ @Create
+ public Statements_Conditional();
+ @Destroy
+ public destroy();
+
+} do 'Statements_Conditional$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_For_Looping.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_For_Looping.alf
new file mode 100644
index 00000000000..7ac166dcb38
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_For_Looping.alf
@@ -0,0 +1,37 @@
+/**
+ * Test for statements.
+ **/
+active class Statements_For_Looping {
+
+ private class Sensor {
+
+ private reading: Integer[0..1];
+ @Create
+ public Sensor(in reading: Integer[0..1]);
+ public getNextReading(): Integer[0..1];
+ @Destroy
+ public destroy();
+
+ }
+
+ private class ActivityEdgeInstance {
+
+ public token: Integer;
+ public sendOffer(in token: Integer);
+ @Create
+ public ActivityEdgeInstance();
+ @Destroy
+ public destroy();
+
+ }
+
+ private activity processRecord(in index: Integer);
+ public test(out readings: Integer[0..*], out sum1: Integer,
+ out outgoingEdges: ActivityEdgeInstance[0..*], out SnEven: Integer[0..*],
+ out SnOdd: Integer[0..*]);
+ @Create
+ public Statements_For_Looping();
+ @Destroy
+ public destroy();
+
+} do 'Statements_For_Looping$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_Return.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_Return.alf
new file mode 100644
index 00000000000..01a07d3fdc4
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_Return.alf
@@ -0,0 +1,17 @@
+/**
+ * Test return statements.
+ **/
+active class Statements_Return {
+
+ public activity test1(): Integer;
+ public activity test2(): Integer;
+ public activity test3(): String;
+ public activity test4(inout x: Integer, out y: Integer): Integer;
+ public test(out a: Integer, out b: Integer, out c: String, out x: Integer,
+ out y: Integer, out z: Integer, out n: Integer);
+ @Create
+ public Statements_Return();
+ @Destroy
+ public destroy();
+
+} do 'Statements_Return$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_Simple.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_Simple.alf
new file mode 100644
index 00000000000..74c533c969a
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_Simple.alf
@@ -0,0 +1,60 @@
+/**
+ * Test block, empty and local name declaration statements.
+ **/
+active class Statements_Simple {
+
+ class Offer {
+
+ @Create
+ public Offer();
+ @Destroy
+ public destroy();
+
+ }
+
+ class Member {
+
+ public isActive: Boolean;
+ public name: String;
+ @Create
+ public Member(in isActive: Boolean, in name: String);
+ @Destroy
+ public destroy();
+
+ }
+
+ class RealProperty {
+
+ public name: String;
+ @Create
+ public RealProperty(in name: String);
+ @Destroy
+ public destroy();
+
+ }
+
+ datatype Point {
+ public x: Integer;
+ public y: Integer;
+ }
+
+ datatype Money {
+ public amount: Integer;
+ }
+
+ public activity 'offers$defaultValue$1'(): Offer[0..*];
+ public activity 'principal$defaultValue$1'(): Integer;
+ public activity 'rate$defaultValue$1'(): Integer;
+ offers: Offer[0..*] = 'offers$defaultValue$1'();
+ principal: Integer = 'principal$defaultValue$1'();
+ rate: Integer = 'rate$defaultValue$1'();
+ test(out i: Integer, out last: Integer, out collection: Integer[0..*]
+ sequence, out offer: Offer, out money: Money, out members: Member[0..*]
+ sequence, out properties: RealProperty[0..*] sequence,
+ out assets: RealProperty[0..*] sequence, out point: Point);
+ @Create
+ public Statements_Simple();
+ @Destroy
+ public destroy();
+
+} do 'Statements_Simple$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_While_Do_Looping.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_While_Do_Looping.alf
new file mode 100644
index 00000000000..c64a543a5ad
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Statements_While_Do_Looping.alf
@@ -0,0 +1,75 @@
+/**
+ * Test while and do statements.
+ **/
+active class Statements_While_Do_Looping {
+
+ class Monitor {
+
+ public cleanUp();
+ @Create
+ public Monitor();
+ @Destroy
+ public destroy();
+
+ }
+
+ class File {
+
+ private more: Boolean;
+ public endMarker: FileRecord;
+ @Create
+ public File();
+ public hasMore(): Boolean;
+ public readNext(): FileRecord[0..1];
+ public reset();
+ @Destroy
+ public destroy();
+
+ }
+
+ class FileRecord {
+
+ public label: String;
+ @Create
+ public FileRecord(in label: String);
+ public toString(): String;
+ @Destroy
+ public destroy();
+
+ }
+
+ class Sensor {
+
+ public count: Integer;
+ @Create
+ public Sensor(in count: Integer);
+ public getNextReading(): Reading[0..1];
+ @Destroy
+ public destroy();
+
+ }
+
+ class Reading {
+
+ private value: Integer;
+ @Create
+ public Reading(in value: Integer);
+ public isFinal(): Boolean;
+ public getValue(): Integer;
+ @Destroy
+ public destroy();
+
+ }
+
+ public activity 'list$defaultValue$1'(): Monitor[0..*] sequence;
+ list: Monitor[0..*] sequence = 'list$defaultValue$1'();
+ test(out count: Integer, out checksum: Integer,
+ out nextRecord: FileRecord[0..1], out file: File, out lines: String[0..*]
+ sequence, out readings: Reading[0..*] sequence, out i: Integer,
+ out j: Integer, out self: Statements_While_Do_Looping);
+ @Create
+ public Statements_While_Do_Looping();
+ @Destroy
+ public destroy();
+
+} do 'Statements_While_Do_Looping$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/TemplateActivityTest.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/TemplateActivityTest.alf
new file mode 100644
index 00000000000..571902bf442
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/TemplateActivityTest.alf
@@ -0,0 +1,2 @@
+activity A<T>(in x: T) {
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/TemplateBindingTest.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/TemplateBindingTest.alf
new file mode 100644
index 00000000000..eb8dd04ae88
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/TemplateBindingTest.alf
@@ -0,0 +1,18 @@
+active class TemplateBindingTest {
+
+ class C<T> {
+
+ @Create
+ public C();
+ @Destroy
+ public destroy();
+
+ }
+
+ public c: C< Integer >;
+ @Create
+ public TemplateBindingTest();
+ @Destroy
+ public destroy();
+
+} do 'TemplateBindingTest$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/TestActivity.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/TestActivity.alf
new file mode 100644
index 00000000000..6620a8aed15
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/TestActivity.alf
@@ -0,0 +1,3 @@
+private import Alf::Library::BasicInputOutput::*;
+activity TestActivity(): Integer {
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/TestClass.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/TestClass.alf
new file mode 100644
index 00000000000..fecd876d344
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/TestClass.alf
@@ -0,0 +1,19 @@
+/** Comment */
+abstract class A {
+
+ /** Another comment */
+ activity R(in x: Integer);
+ public activity 'x$defaultValue$1'(): Integer;
+
+ /** Member Comment */
+ private x: Integer = 'x$defaultValue$1'();
+ private y: String;
+ private z: any[0..*];
+ public abstract p(in x: Integer, out y: Integer);
+ public q(in s: String[0..*]): Boolean;
+ @Create
+ public A();
+ @Destroy
+ public destroy();
+
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Test_EmptyAssociationName.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Test_EmptyAssociationName.alf
new file mode 100644
index 00000000000..8e7b532dae0
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Test_EmptyAssociationName.alf
@@ -0,0 +1,16 @@
+package Test_EmptyAssociationName {
+
+ public assoc A_First_Second {
+ public First: A;
+ public Second: B;
+ }
+
+ public class A {
+
+ }
+
+ public class B {
+
+ }
+
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Units_ActiveClass.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Units_ActiveClass.alf
new file mode 100644
index 00000000000..d7e1b867494
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Units_ActiveClass.alf
@@ -0,0 +1,39 @@
+/**
+ * Test active class instantiation
+ */
+active class Units_ActiveClass {
+
+ public active class C {
+
+ public i: Integer;
+ public j: Integer;
+ public t: TestRunner;
+ @Create
+ public C(in i: Integer, in t: TestRunner);
+ @Destroy
+ public destroy();
+
+ } do 'C$behavior$1'
+
+ public active class TestRunner {
+
+ public receive signal Start {
+ }
+
+ public receive signal Continue {
+ }
+
+ public test(out c: C);
+ @Create
+ public TestRunner();
+ @Destroy
+ public destroy();
+
+ } do 'TestRunner$behavior$1'
+
+ @Create
+ public Units_ActiveClass();
+ @Destroy
+ public destroy();
+
+} do 'Units_ActiveClass$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Units_Map.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Units_Map.alf
new file mode 100644
index 00000000000..9c0498f8501
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Units_Map.alf
@@ -0,0 +1,27 @@
+active class Units_Map {
+
+ public class Listener {
+
+ public activity 'notifications$defaultValue$1'(): Integer;
+ public name: String;
+ public notifications: Integer = 'notifications$defaultValue$1'();
+ @Create
+ public Listener(in name: String);
+ public notify();
+ @Destroy
+ public destroy();
+
+ }
+
+ public activity 'listeners$defaultValue$1'(): Map< Key=>Integer,
+ Value=>Listener >;
+ public listeners: Map< Key=>Integer, Value=>Listener > =
+ 'listeners$defaultValue$1'();
+ public register(in listener: Listener, in id: Integer);
+ public test(out listener: Listener);
+ @Create
+ public Units_Map();
+ @Destroy
+ public destroy();
+
+} do 'Units_Map$behavior$1' \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Write.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Write.alf
new file mode 100644
index 00000000000..9f69eedbe35
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/Alf/Write.alf
@@ -0,0 +1,2 @@
+activity Write(in value: any) {
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/META-INF/MANIFEST.MF b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..9872945fe7a
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,49 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: ALF Tests
+Bundle-Version: 1.1.0.qualifier
+Bundle-SymbolicName: org.eclipse.papyrus.uml.alf.tests;singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.xtext.junit4,
+ org.eclipse.ui.workbench;resolution:=optional,
+ org.eclipse.ocl.examples.xtext.oclinecore;bundle-version="3.3.0",
+ org.eclipse.ocl.examples.xtext.oclstdlib;bundle-version="3.3.0",
+ org.eclipse.m2m.qvt.oml;bundle-version="3.3.0",
+ org.eclipse.emf.common,
+ org.eclipse.emf.ecore,
+ org.eclipse.m2m.qvt.oml.common;bundle-version="3.3.0",
+ org.eclipse.m2m.qvt.oml.emf.util;bundle-version="3.3.0",
+ org.eclipse.m2m.qvt.oml.ocl;bundle-version="3.3.0",
+ org.eclipse.m2m.qvt.oml.runtime;bundle-version="3.3.0",
+ org.eclipse.xtend.lib,
+ com.google.guava,
+ org.eclipse.xtext.xbase.lib,
+ org.eclipse.xtend;bundle-version="1.4.0",
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.junit;visibility:=reexport,
+ org.eclipse.uml2;bundle-version="5.0.0",
+ org.eclipse.uml2.uml,
+ org.objectweb.asm;bundle-version="[5.0.1,6.0.0)";resolution:=optional,
+ org.eclipse.ocl.uml;bundle-version="5.0.0",
+ org.eclipse.uml2.uml.resources;bundle-version="5.0.0",
+ org.eclipse.papyrus.uml.alf;bundle-version="1.1.0",
+ org.eclipse.papyrus.uml.alf.ui;bundle-version="1.1.0",
+ org.eclipse.papyrus.uml.alf.to.fuml;bundle-version="1.1.0",
+ org.eclipse.papyrus.uml.extensionpoints,
+ org.eclipse.xtext
+Import-Package: org.apache.log4j,
+ org.hamcrest.core,
+ org.junit;version="4.5.0",
+ org.junit.runner;version="4.5.0",
+ org.junit.runner.manipulation;version="4.5.0",
+ org.junit.runner.notification;version="4.5.0",
+ org.junit.runners;version="4.5.0",
+ org.junit.runners.model;version="4.5.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Export-Package: org.eclipse.papyrus.uml.alf
+Bundle-ClassPath: bin/,
+ .,
+ Alf/,
+ UML/
+Bundle-Vendor: Eclipse Modeling Project
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/AcceptStatementTest.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/AcceptStatementTest.uml
new file mode 100644
index 00000000000..4f5a07df8af
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/AcceptStatementTest.uml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_83VNMMOSEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_9EWVgMOSEeSiR-ar9ioVjA" name="AcceptStatementTest" classifierBehavior="_9EWVlMOSEeSiR-ar9ioVjA" isActive="true">
+ <ownedAttribute xmi:id="_9EWVg8OSEeSiR-ar9ioVjA" name="AcceptStatementTest$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9EWVhMOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9EWVhcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_9EWVhsOSEeSiR-ar9ioVjA" name="AcceptStatementTest$initialization$1" visibility="protected" specification="_9EWVh8OSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_9EWVlsOSEeSiR-ar9ioVjA" annotatedElement="_9EWVhsOSEeSiR-ar9ioVjA">
+ <body>activity 'AcceptStatementTest$initialization$1'(){
+ if (this.'AcceptStatementTest$initializationFlag$1' == null) {
+ this.'AcceptStatementTest$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_9EWViMOSEeSiR-ar9ioVjA" name="AcceptStatementTest$method$1" specification="_9EWVjMOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_9EWVlcOSEeSiR-ar9ioVjA" annotatedElement="_9EWViMOSEeSiR-ar9ioVjA">
+ <body>activity 'AcceptStatementTest$method$1'(): AcceptStatementTest {
+ this.'AcceptStatementTest$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_9EWVicOSEeSiR-ar9ioVjA" type="_9EWVgMOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9EWVisOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9EWVi8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_9EWVkMOSEeSiR-ar9ioVjA" name="destroy$method$1" specification="_9EWVkcOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_9EWVl8OSEeSiR-ar9ioVjA" annotatedElement="_9EWVkMOSEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_9EWVlMOSEeSiR-ar9ioVjA" name="AcceptStatementTest$behavior$1" visibility="private">
+ <ownedComment xmi:id="_9EWVmMOSEeSiR-ar9ioVjA" annotatedElement="_9EWVlMOSEeSiR-ar9ioVjA">
+ <body>activity 'AcceptStatementTest$behavior$1'() {
+ accept (S1, S2);
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_9EWVh8OSEeSiR-ar9ioVjA" name="AcceptStatementTest$initialization$1" visibility="protected" method="_9EWVhsOSEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_9EWVjMOSEeSiR-ar9ioVjA" name="AcceptStatementTest" method="_9EWViMOSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_9EWVjcOSEeSiR-ar9ioVjA" type="_9EWVgMOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9EWVjsOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9EWVj8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_9EWVkcOSEeSiR-ar9ioVjA" name="destroy" method="_9EWVkMOSEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Signal" xmi:id="_9EWVgcOSEeSiR-ar9ioVjA" name="S1" visibility="public"/>
+ <nestedClassifier xmi:type="uml:Signal" xmi:id="_9EWVgsOSEeSiR-ar9ioVjA" name="S2" visibility="public"/>
+ <ownedReception xmi:id="_9EWVksOSEeSiR-ar9ioVjA" name="S1" visibility="public" signal="_9EWVgcOSEeSiR-ar9ioVjA"/>
+ <ownedReception xmi:id="_9EWVk8OSEeSiR-ar9ioVjA" name="S2" visibility="public" signal="_9EWVgsOSEeSiR-ar9ioVjA"/>
+ </packagedElement>
+ <profileApplication xmi:id="_83VNMcOSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_83VNMsOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_83VNM8OSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_83VNNMOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Create xmi:id="_9EWVmcOSEeSiR-ar9ioVjA" base_BehavioralFeature="_9EWVjMOSEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_9EWVmsOSEeSiR-ar9ioVjA" base_BehavioralFeature="_9EWVkcOSEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_9EWVm8OSEeSiR-ar9ioVjA" base_Comment="_9EWVlcOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_9EWVnMOSEeSiR-ar9ioVjA" base_Comment="_9EWVlsOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_9EWVncOSEeSiR-ar9ioVjA" base_Comment="_9EWVl8OSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_9EWVnsOSEeSiR-ar9ioVjA" base_Comment="_9EWVmMOSEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/AssertEqual.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/AssertEqual.uml
new file mode 100644
index 00000000000..92af942854f
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/AssertEqual.uml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_9FHKgMOSEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Activity" xmi:id="_9Xes4MOSEeSiR-ar9ioVjA" name="AssertEqual" visibility="protected">
+ <ownedComment xmi:id="_9Xes6sOSEeSiR-ar9ioVjA" annotatedElement="_9Xes4MOSEeSiR-ar9ioVjA">
+ <body>activity AssertEqual(in label: String, in value1: any[0..1], in value2: any[0..1]) {
+ if (value1 != value2) {
+ WriteLine(&quot;FAILED: &quot; + label + &quot;==&quot;);
+ StandardOutputChannel.allInstances ()[1].write(value2 == null ?
+ &quot;null&quot;: value2 instanceof String ? &quot;\&quot;&quot; + (String) value2 + &quot;\&quot;&quot;: value2);
+ WriteLine(&quot;&quot;);
+ }
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_9Xes4cOSEeSiR-ar9ioVjA" name="label">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9Xes4sOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9Xes48OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_9Xes5MOSEeSiR-ar9ioVjA" name="value1">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9Xes5cOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9Xes5sOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_9Xes58OSEeSiR-ar9ioVjA" name="value2">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9Xes6MOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9Xes6cOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <profileApplication xmi:id="_9FHKgcOSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_9FHKgsOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_9FHKg8OSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_9FHKhMOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <ActionLanguage:TextualRepresentation xmi:id="_9Xes68OSEeSiR-ar9ioVjA" base_Comment="_9Xes6sOSEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/AssertFalse.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/AssertFalse.uml
new file mode 100644
index 00000000000..7439f55620a
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/AssertFalse.uml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_q8QTYIKGEeSFEt9m3bH63A" name="Model">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_tTJUgLeHEeS7pqPIgMux2Q">
+ <importedPackage xmi:type="uml:Model" href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Activity" xmi:id="_rHG4gIKGEeSFEt9m3bH63A" name="AssertFalse" visibility="protected">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_rHG4iIKGEeSFEt9m3bH63A" annotatedElement="_rHG4gIKGEeSFEt9m3bH63A">
+ <body>activity AssertFalse(in label: String, in condition: Boolean[0..1]) { AssertTrue(&quot;! &quot; + label, condition == false);
+}</body>
+ </ownedComment>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_rHG4h4KGEeSFEt9m3bH63A" alias="" visibility="private">
+ <importedElement xmi:type="uml:FunctionBehavior" href="pathmap://PAPYRUS_fUML_LIBRARY/fUML_Library.uml#PrimitiveBehaviors-BooleanFunctions-ToString"/>
+ </elementImport>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_rHG4gYKGEeSFEt9m3bH63A" name="label">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rHG4goKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rHG4g4KGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_rHG4hIKGEeSFEt9m3bH63A" name="condition">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rHG4hYKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rHG4hoKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_q8QTYYKGEeSFEt9m3bH63A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q8QTYoKGEeSFEt9m3bH63A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_TAijYLeHEeS7pqPIgMux2Q">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TAjKcLeHEeS7pqPIgMux2Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <ActionLanguage:TextualRepresentation xmi:id="_rHG4iYKGEeSFEt9m3bH63A" base_Comment="_rHG4iIKGEeSFEt9m3bH63A" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/AssertList.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/AssertList.uml
new file mode 100644
index 00000000000..7b4e096c569
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/AssertList.uml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_9X8m8MOSEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Package" xmi:id="_9itsgMOSEeSiR-ar9ioVjA" name="AssertList">
+ <packagedElement xmi:type="uml:Activity" xmi:id="_9itsgcOSEeSiR-ar9ioVjA" name="AssertEqual" visibility="public">
+ <ownedParameter xmi:id="_9itsgsOSEeSiR-ar9ioVjA" name="label">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9itsg8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9itshMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_9itshcOSEeSiR-ar9ioVjA" name="value1">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9itshsOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9itsh8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_9itsiMOSEeSiR-ar9ioVjA" name="value2">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9itsicOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9itsisOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Activity" xmi:id="_9itsi8OSEeSiR-ar9ioVjA" name="AssertList" visibility="public">
+ <ownedComment xmi:id="_9itslcOSEeSiR-ar9ioVjA" annotatedElement="_9itsi8OSEeSiR-ar9ioVjA">
+ <body>activity AssertList(in label: String, in list: any[0..*] sequence, in expected: any[0..*] sequence) {
+ AssertEqual(label + &quot;->size()&quot;, list->size(), expected->size());
+ for (i in 1..IntegerFunctions::Min(list->size(), expected->size())) {
+ AssertEqual(label + &quot;[&quot; + IntegerFunctions::ToString(i) + &quot;]&quot;, list[i],
+ expected[i]);
+ }
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_9itsjMOSEeSiR-ar9ioVjA" name="label">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9itsjcOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9itsjsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_9itsj8OSEeSiR-ar9ioVjA" name="list" isOrdered="true" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9itskMOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9itskcOSEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_9itsksOSEeSiR-ar9ioVjA" name="expected" isOrdered="true" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9itsk8OSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9itslMOSEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:id="_9X8m8cOSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_9X8m8sOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_9X8m88OSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_9X8m9MOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <ActionLanguage:TextualRepresentation xmi:id="_9itslsOSEeSiR-ar9ioVjA" base_Comment="_9itslcOSEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/AssertTrue.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/AssertTrue.uml
new file mode 100644
index 00000000000..a62a79177c8
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/AssertTrue.uml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_rSykEIKGEeSFEt9m3bH63A" name="Model">
+ <packagedElement xmi:type="uml:Activity" xmi:id="_rao4gIKGEeSFEt9m3bH63A" name="AssertTrue" visibility="protected">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_rapflYKGEeSFEt9m3bH63A" annotatedElement="_rao4gIKGEeSFEt9m3bH63A">
+ <body>activity AssertTrue(in label: String, in condition: Boolean[0..1]) { if (condition != true) { WriteLine(&quot;FAILED: &quot; + label);
+} }</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_rao4gYKGEeSFEt9m3bH63A" name="label">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rapfkIKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rapfkYKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_rapfkoKGEeSFEt9m3bH63A" name="condition">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rapfk4KGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rapflIKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_rSykEYKGEeSFEt9m3bH63A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rSykEoKGEeSFEt9m3bH63A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_Eu0p4LeKEeS_zZpc9I-Bsg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Eu1Q8LeKEeS_zZpc9I-Bsg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <ActionLanguage:TextualRepresentation xmi:id="_rapfloKGEeSFEt9m3bH63A" base_Comment="_rapflYKGEeSFEt9m3bH63A" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Class_Redefinitions.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Class_Redefinitions.uml
new file mode 100644
index 00000000000..55f6beeffe0
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Class_Redefinitions.uml
@@ -0,0 +1,239 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_9jIjQMOSEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Package" xmi:id="_95oXsMOSEeSiR-ar9ioVjA" name="Redefinitions">
+ <packagedElement xmi:type="uml:Class" xmi:id="_95oXscOSEeSiR-ar9ioVjA" name="A" visibility="public" isAbstract="true">
+ <ownedAttribute xmi:id="_95oXusOSEeSiR-ar9ioVjA" name="A$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_95oXu8OSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_95oXvMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_95oXvcOSEeSiR-ar9ioVjA" name="A$initialization$1" visibility="protected" specification="_95oXvsOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_95o-ycOSEeSiR-ar9ioVjA" annotatedElement="_95oXvcOSEeSiR-ar9ioVjA">
+ <body>activity 'A$initialization$1'(){
+ if (this.'A$initializationFlag$1' == null) {
+ this.'A$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_95oXv8OSEeSiR-ar9ioVjA" name="A$method$1" specification="_95oXw8OSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_95o-zsOSEeSiR-ar9ioVjA" annotatedElement="_95oXv8OSEeSiR-ar9ioVjA">
+ <body>activity 'A$method$1'(): A {
+ this.'A$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_95oXwMOSEeSiR-ar9ioVjA" type="_95oXscOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_95oXwcOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_95oXwsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_95oXx8OSEeSiR-ar9ioVjA" name="destroy$method$1" specification="_95oXyMOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_95o-0MOSEeSiR-ar9ioVjA" annotatedElement="_95oXx8OSEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_95oXssOSEeSiR-ar9ioVjA" name="p" visibility="package" isAbstract="true">
+ <ownedParameter xmi:id="_95oXs8OSEeSiR-ar9ioVjA" name="x">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_95oXtMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_95oXtcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_95oXtsOSEeSiR-ar9ioVjA" name="q" visibility="package" isAbstract="true">
+ <ownedParameter xmi:id="_95oXt8OSEeSiR-ar9ioVjA" name="y">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_95oXuMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_95oXucOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_95oXvsOSEeSiR-ar9ioVjA" name="A$initialization$1" visibility="protected" method="_95oXvcOSEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_95oXw8OSEeSiR-ar9ioVjA" name="A" method="_95oXv8OSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_95oXxMOSEeSiR-ar9ioVjA" type="_95oXscOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_95oXxcOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_95oXxsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_95oXyMOSEeSiR-ar9ioVjA" name="destroy" method="_95oXx8OSEeSiR-ar9ioVjA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_95oXycOSEeSiR-ar9ioVjA" name="B" visibility="public" isAbstract="true">
+ <ownedAttribute xmi:id="_95oXzsOSEeSiR-ar9ioVjA" name="B$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_95oXz8OSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_95oX0MOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_95oX0cOSEeSiR-ar9ioVjA" name="B$initialization$1" visibility="protected" specification="_95oX0sOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_95o-0cOSEeSiR-ar9ioVjA" annotatedElement="_95oX0cOSEeSiR-ar9ioVjA">
+ <body>activity 'B$initialization$1'(){
+ if (this.'B$initializationFlag$1' == null) {
+ this.'B$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_95oX08OSEeSiR-ar9ioVjA" name="B$method$1" specification="_95oX18OSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_95o-ysOSEeSiR-ar9ioVjA" annotatedElement="_95oX08OSEeSiR-ar9ioVjA">
+ <body>activity 'B$method$1'(): B {
+ this.'B$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_95oX1MOSEeSiR-ar9ioVjA" type="_95oXycOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_95oX1cOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_95oX1sOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_95oX28OSEeSiR-ar9ioVjA" name="destroy$method$1" specification="_95oX3MOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_95o-zMOSEeSiR-ar9ioVjA" annotatedElement="_95oX28OSEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_95oXysOSEeSiR-ar9ioVjA" name="p" visibility="package" isAbstract="true">
+ <ownedParameter xmi:id="_95oXy8OSEeSiR-ar9ioVjA" name="x">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_95oXzMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_95oXzcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_95oX0sOSEeSiR-ar9ioVjA" name="B$initialization$1" visibility="protected" method="_95oX0cOSEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_95oX18OSEeSiR-ar9ioVjA" name="B" method="_95oX08OSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_95oX2MOSEeSiR-ar9ioVjA" type="_95oXycOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_95oX2cOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_95oX2sOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_95oX3MOSEeSiR-ar9ioVjA" name="destroy" method="_95oX28OSEeSiR-ar9ioVjA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_95oX3cOSEeSiR-ar9ioVjA" name="Redefinitions" visibility="public">
+ <generalization xmi:id="_95oX3sOSEeSiR-ar9ioVjA" general="_95oXycOSEeSiR-ar9ioVjA"/>
+ <generalization xmi:id="_95oX38OSEeSiR-ar9ioVjA" general="_95oXscOSEeSiR-ar9ioVjA"/>
+ <ownedAttribute xmi:id="_95oX-MOSEeSiR-ar9ioVjA" name="Redefinitions$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_95oX-cOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_95oX-sOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_95oX5MOSEeSiR-ar9ioVjA" name="p$method$1" visibility="protected" specification="_95oX4MOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_95o-0sOSEeSiR-ar9ioVjA" annotatedElement="_95oX5MOSEeSiR-ar9ioVjA">
+ <body>activity 'p$method$1'(in x: Integer) {
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_95oX5cOSEeSiR-ar9ioVjA" name="x">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_95oX5sOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_95oX58OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_95oX7MOSEeSiR-ar9ioVjA" name="renamed1$method$1" visibility="protected" specification="_95oX6MOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_95o-08OSEeSiR-ar9ioVjA" annotatedElement="_95oX7MOSEeSiR-ar9ioVjA">
+ <body>activity 'renamed1$method$1'(in x: Integer) {
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_95oX7cOSEeSiR-ar9ioVjA" name="x">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_95oX7sOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_95oX78OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_95oX9MOSEeSiR-ar9ioVjA" name="q$method$1" visibility="protected" specification="_95oX8MOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_95o-zcOSEeSiR-ar9ioVjA" annotatedElement="_95oX9MOSEeSiR-ar9ioVjA">
+ <body>activity 'q$method$1'(in y: Boolean) {
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_95oX9cOSEeSiR-ar9ioVjA" name="y">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_95oX9sOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_95oX98OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_95oX-8OSEeSiR-ar9ioVjA" name="Redefinitions$initialization$1" visibility="protected" specification="_95oX_MOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_95o-y8OSEeSiR-ar9ioVjA" annotatedElement="_95oX-8OSEeSiR-ar9ioVjA">
+ <body>activity 'Redefinitions$initialization$1'(){
+ if (this.'Redefinitions$initializationFlag$1' == null) {
+ super.B::'B$initialization$1'();
+ super.A::'A$initialization$1'();
+ this.'Redefinitions$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_95oX_cOSEeSiR-ar9ioVjA" name="Redefinitions$method$1" specification="_95o-wsOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_95o-z8OSEeSiR-ar9ioVjA" annotatedElement="_95oX_cOSEeSiR-ar9ioVjA">
+ <body>activity 'Redefinitions$method$1'(): Redefinitions {
+ this.'Redefinitions$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_95oX_sOSEeSiR-ar9ioVjA" type="_95oX3cOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_95o-wMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_95o-wcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_95o-xsOSEeSiR-ar9ioVjA" name="destroy$method$1" specification="_95o-x8OSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_95o-yMOSEeSiR-ar9ioVjA" annotatedElement="_95o-xsOSEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_95oX4MOSEeSiR-ar9ioVjA" name="p" visibility="package" method="_95oX5MOSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_95oX4cOSEeSiR-ar9ioVjA" name="x">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_95oX4sOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_95oX48OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_95oX6MOSEeSiR-ar9ioVjA" name="renamed1" visibility="package" method="_95oX7MOSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_95oX6cOSEeSiR-ar9ioVjA" name="x">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_95oX6sOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_95oX68OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_95oX8MOSEeSiR-ar9ioVjA" name="q" visibility="package" method="_95oX9MOSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_95oX8cOSEeSiR-ar9ioVjA" name="y">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_95oX8sOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_95oX88OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_95oX_MOSEeSiR-ar9ioVjA" name="Redefinitions$initialization$1" visibility="protected" method="_95oX-8OSEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_95o-wsOSEeSiR-ar9ioVjA" name="Redefinitions" method="_95oX_cOSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_95o-w8OSEeSiR-ar9ioVjA" type="_95oX3cOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_95o-xMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_95o-xcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_95o-x8OSEeSiR-ar9ioVjA" name="destroy" method="_95o-xsOSEeSiR-ar9ioVjA"/>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:id="_9jIjQcOSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_9jIjQsOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_9jIjQ8OSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_9jIjRMOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Create xmi:id="_95o-1MOSEeSiR-ar9ioVjA" base_BehavioralFeature="_95oXw8OSEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_95o-1cOSEeSiR-ar9ioVjA" base_BehavioralFeature="_95oX18OSEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_95o-1sOSEeSiR-ar9ioVjA" base_BehavioralFeature="_95o-wsOSEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_95o-18OSEeSiR-ar9ioVjA" base_BehavioralFeature="_95o-x8OSEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_95o-2MOSEeSiR-ar9ioVjA" base_BehavioralFeature="_95oXyMOSEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_95o-2cOSEeSiR-ar9ioVjA" base_BehavioralFeature="_95oX3MOSEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_95o-2sOSEeSiR-ar9ioVjA" base_Comment="_95o-yMOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_95o-28OSEeSiR-ar9ioVjA" base_Comment="_95o-ycOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_95o-3MOSEeSiR-ar9ioVjA" base_Comment="_95o-ysOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_95o-3cOSEeSiR-ar9ioVjA" base_Comment="_95o-y8OSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_95o-3sOSEeSiR-ar9ioVjA" base_Comment="_95o-zMOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_95o-38OSEeSiR-ar9ioVjA" base_Comment="_95o-zcOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_95o-4MOSEeSiR-ar9ioVjA" base_Comment="_95o-zsOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_95o-4cOSEeSiR-ar9ioVjA" base_Comment="_95o-z8OSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_95o-4sOSEeSiR-ar9ioVjA" base_Comment="_95o-0MOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_95o-48OSEeSiR-ar9ioVjA" base_Comment="_95o-0cOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_95o-5MOSEeSiR-ar9ioVjA" base_Comment="_95o-0sOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_95o-5cOSEeSiR-ar9ioVjA" base_Comment="_95o-08OSEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/ConstructorDestructorTest.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/ConstructorDestructorTest.uml
new file mode 100644
index 00000000000..a3f5b975c75
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/ConstructorDestructorTest.uml
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_96GRwMOSEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_-OWDcMOSEeSiR-ar9ioVjA" name="ConstructorDestructorTest">
+ <ownedAttribute xmi:id="_-OWDicOSEeSiR-ar9ioVjA" name="ConstructorDestructorTest$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-OWDisOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-OWDi8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_-OWDeMOSEeSiR-ar9ioVjA" name="ConstructorDestructorTest$method$1" visibility="protected" specification="_-OWDccOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_-OWDkMOSEeSiR-ar9ioVjA" annotatedElement="_-OWDeMOSEeSiR-ar9ioVjA">
+ <body>activity 'ConstructorDestructorTest$method$1'(in n: Integer): ConstructorDestructorTest {
+if (this.'ConstructorDestructorTest$initializationFlag$1' == null) {
+this.'ConstructorDestructorTest$initialization$1'();
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_-OWDecOSEeSiR-ar9ioVjA" name="n">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-OWDesOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-OWDe8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_-OWDfMOSEeSiR-ar9ioVjA" name="" type="_-OWDcMOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-OWDfcOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-OWDfsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_-OWDg8OSEeSiR-ar9ioVjA" name="create$method$1" visibility="protected" specification="_-OWDf8OSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_-OWDj8OSEeSiR-ar9ioVjA" annotatedElement="_-OWDg8OSEeSiR-ar9ioVjA">
+ <body>activity 'create$method$1'(): ConstructorDestructorTest {
+if (this.'ConstructorDestructorTest$initializationFlag$1' == null) {
+this.'ConstructorDestructorTest$initialization$1'();
+this(0);
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_-OWDhMOSEeSiR-ar9ioVjA" name="" type="_-OWDcMOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-OWDhcOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-OWDhsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_-OWDiMOSEeSiR-ar9ioVjA" name="destroy$method$1" visibility="protected" specification="_-OWDh8OSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_-OWDjsOSEeSiR-ar9ioVjA" annotatedElement="_-OWDiMOSEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() {
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_-OWDjMOSEeSiR-ar9ioVjA" name="ConstructorDestructorTest$initialization$1" visibility="protected" specification="_-OWDjcOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_-OWDkcOSEeSiR-ar9ioVjA" annotatedElement="_-OWDjMOSEeSiR-ar9ioVjA">
+ <body>activity 'ConstructorDestructorTest$initialization$1'(){
+ if (this.'ConstructorDestructorTest$initializationFlag$1' == null) {
+ this.'ConstructorDestructorTest$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_-OWDccOSEeSiR-ar9ioVjA" name="ConstructorDestructorTest" visibility="public" method="_-OWDeMOSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_-OWDcsOSEeSiR-ar9ioVjA" name="n">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-OWDc8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-OWDdMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_-OWDdcOSEeSiR-ar9ioVjA" name="" type="_-OWDcMOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-OWDdsOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-OWDd8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-OWDf8OSEeSiR-ar9ioVjA" name="create" visibility="public" method="_-OWDg8OSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_-OWDgMOSEeSiR-ar9ioVjA" name="" type="_-OWDcMOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-OWDgcOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-OWDgsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-OWDh8OSEeSiR-ar9ioVjA" name="destroy" visibility="public" method="_-OWDiMOSEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_-OWDjcOSEeSiR-ar9ioVjA" name="ConstructorDestructorTest$initialization$1" visibility="protected" method="_-OWDjMOSEeSiR-ar9ioVjA"/>
+ </packagedElement>
+ <profileApplication xmi:id="_96GRwcOSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_96GRwsOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_96GRw8OSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_96GRxMOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Destroy xmi:id="_-OWqgMOSEeSiR-ar9ioVjA" base_BehavioralFeature="_-OWDh8OSEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_-OWqgcOSEeSiR-ar9ioVjA" base_BehavioralFeature="_-OWDf8OSEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_-OWqgsOSEeSiR-ar9ioVjA" base_BehavioralFeature="_-OWDccOSEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_-OWqg8OSEeSiR-ar9ioVjA" base_Comment="_-OWDjsOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_-OWqhMOSEeSiR-ar9ioVjA" base_Comment="_-OWDj8OSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_-OWqhcOSEeSiR-ar9ioVjA" base_Comment="_-OWDkMOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_-OWqhsOSEeSiR-ar9ioVjA" base_Comment="_-OWDkcOSEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/DisambiguationTest.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/DisambiguationTest.uml
new file mode 100644
index 00000000000..4e574579a63
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/DisambiguationTest.uml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_-Oz9gMOSEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_-dUTkMOSEeSiR-ar9ioVjA" name="DisambiguationTest" classifierBehavior="_-dUTtsOSEeSiR-ar9ioVjA" isActive="true">
+ <ownedAttribute xmi:id="_-dUTpMOSEeSiR-ar9ioVjA" name="customer" visibility="package" type="_-dUTkcOSEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-dUTpcOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-dUTpsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_-dUTp8OSEeSiR-ar9ioVjA" name="DisambiguationTest$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-dUTqMOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-dUTqcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_-dUTqsOSEeSiR-ar9ioVjA" name="DisambiguationTest$initialization$1" visibility="protected" specification="_-dUTq8OSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_-dUTuMOSEeSiR-ar9ioVjA" annotatedElement="_-dUTqsOSEeSiR-ar9ioVjA">
+ <body>activity 'DisambiguationTest$initialization$1'(){
+ if (this.'DisambiguationTest$initializationFlag$1' == null) {
+ this.'DisambiguationTest$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_-dUTrMOSEeSiR-ar9ioVjA" name="DisambiguationTest$method$1" specification="_-dUTsMOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_-dUTvcOSEeSiR-ar9ioVjA" annotatedElement="_-dUTrMOSEeSiR-ar9ioVjA">
+ <body>activity 'DisambiguationTest$method$1'(): DisambiguationTest {
+ this.'DisambiguationTest$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_-dUTrcOSEeSiR-ar9ioVjA" type="_-dUTkMOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-dUTrsOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-dUTr8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_-dUTtMOSEeSiR-ar9ioVjA" name="destroy$method$1" specification="_-dUTtcOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_-dUTvMOSEeSiR-ar9ioVjA" annotatedElement="_-dUTtMOSEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_-dUTtsOSEeSiR-ar9ioVjA" name="DisambiguationTest$behavior$1" visibility="private">
+ <ownedComment xmi:id="_-dUTt8OSEeSiR-ar9ioVjA" annotatedElement="_-dUTtsOSEeSiR-ar9ioVjA">
+ <body>activity 'DisambiguationTest$behavior$1'() {
+ customer.name;
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_-dUTq8OSEeSiR-ar9ioVjA" name="DisambiguationTest$initialization$1" visibility="protected" method="_-dUTqsOSEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_-dUTsMOSEeSiR-ar9ioVjA" name="DisambiguationTest" method="_-dUTrMOSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_-dUTscOSEeSiR-ar9ioVjA" type="_-dUTkMOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-dUTssOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-dUTs8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-dUTtcOSEeSiR-ar9ioVjA" name="destroy" method="_-dUTtMOSEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_-dUTkcOSEeSiR-ar9ioVjA" name="Customer" visibility="package">
+ <ownedAttribute xmi:id="_-dUTksOSEeSiR-ar9ioVjA" name="name" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-dUTk8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-dUTlMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_-dUTlcOSEeSiR-ar9ioVjA" name="Customer$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-dUTlsOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-dUTl8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_-dUTmMOSEeSiR-ar9ioVjA" name="Customer$initialization$1" visibility="protected" specification="_-dUTmcOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_-dUTu8OSEeSiR-ar9ioVjA" annotatedElement="_-dUTmMOSEeSiR-ar9ioVjA">
+ <body>activity 'Customer$initialization$1'(){
+ if (this.'Customer$initializationFlag$1' == null) {
+ this.'Customer$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_-dUTmsOSEeSiR-ar9ioVjA" name="Customer$method$1" specification="_-dUTnsOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_-dUTucOSEeSiR-ar9ioVjA" annotatedElement="_-dUTmsOSEeSiR-ar9ioVjA">
+ <body>activity 'Customer$method$1'(): Customer {
+ this.'Customer$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_-dUTm8OSEeSiR-ar9ioVjA" type="_-dUTkcOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-dUTnMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-dUTncOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_-dUTosOSEeSiR-ar9ioVjA" name="destroy$method$1" specification="_-dUTo8OSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_-dUTusOSEeSiR-ar9ioVjA" annotatedElement="_-dUTosOSEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_-dUTmcOSEeSiR-ar9ioVjA" name="Customer$initialization$1" visibility="protected" method="_-dUTmMOSEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_-dUTnsOSEeSiR-ar9ioVjA" name="Customer" method="_-dUTmsOSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_-dUTn8OSEeSiR-ar9ioVjA" type="_-dUTkcOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-dUToMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-dUTocOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-dUTo8OSEeSiR-ar9ioVjA" name="destroy" method="_-dUTosOSEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:id="_-Oz9gcOSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_-Oz9gsOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_-Oz9g8OSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_-Oz9hMOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Destroy xmi:id="_-dU6oMOSEeSiR-ar9ioVjA" base_BehavioralFeature="_-dUTtcOSEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_-dU6ocOSEeSiR-ar9ioVjA" base_BehavioralFeature="_-dUTnsOSEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_-dU6osOSEeSiR-ar9ioVjA" base_BehavioralFeature="_-dUTsMOSEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_-dU6o8OSEeSiR-ar9ioVjA" base_BehavioralFeature="_-dUTo8OSEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_-dU6pMOSEeSiR-ar9ioVjA" base_Comment="_-dUTt8OSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_-dU6pcOSEeSiR-ar9ioVjA" base_Comment="_-dUTuMOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_-dU6psOSEeSiR-ar9ioVjA" base_Comment="_-dUTucOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_-dU6p8OSEeSiR-ar9ioVjA" base_Comment="_-dUTusOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_-dU6qMOSEeSiR-ar9ioVjA" base_Comment="_-dUTu8OSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_-dU6qcOSEeSiR-ar9ioVjA" base_Comment="_-dUTvMOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_-dU6qsOSEeSiR-ar9ioVjA" base_Comment="_-dUTvcOSEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/DistinguishabilityTest.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/DistinguishabilityTest.uml
new file mode 100644
index 00000000000..cf94edf52f7
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/DistinguishabilityTest.uml
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_-daaMMOSEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_-mgEwMOSEeSiR-ar9ioVjA" name="DistinguishibilityTest">
+ <ownedAttribute xmi:id="_-mgE3cOSEeSiR-ar9ioVjA" name="DistinguishibilityTest$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-mgE3sOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-mgE38OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_-mgEyMOSEeSiR-ar9ioVjA" name="create$method$1" visibility="protected" specification="_-mgEwcOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_-mgE5sOSEeSiR-ar9ioVjA" annotatedElement="_-mgEyMOSEeSiR-ar9ioVjA">
+ <body>activity 'create$method$1'(in x: Integer): DistinguishibilityTest {
+if (this.'DistinguishibilityTest$initializationFlag$1' == null) {
+this.'DistinguishibilityTest$initialization$1'();
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_-mgEycOSEeSiR-ar9ioVjA" name="x">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-mgEysOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-mgEy8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_-mgEzMOSEeSiR-ar9ioVjA" name="" type="_-mgEwMOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-mgEzcOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-mgEzsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_-mgE1sOSEeSiR-ar9ioVjA" name="create$method$2" visibility="protected" specification="_-mgEz8OSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_-mgE5cOSEeSiR-ar9ioVjA" annotatedElement="_-mgE1sOSEeSiR-ar9ioVjA">
+ <body>activity 'create$method$2'(in x: String): DistinguishibilityTest {
+if (this.'DistinguishibilityTest$initializationFlag$1' == null) {
+this.'DistinguishibilityTest$initialization$1'();
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_-mgE18OSEeSiR-ar9ioVjA" name="x">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-mgE2MOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-mgE2cOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_-mgE2sOSEeSiR-ar9ioVjA" name="" type="_-mgEwMOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-mgE28OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-mgE3MOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_-mgE4MOSEeSiR-ar9ioVjA" name="DistinguishibilityTest$initialization$1" visibility="protected" specification="_-mgE4cOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_-mgE58OSEeSiR-ar9ioVjA" annotatedElement="_-mgE4MOSEeSiR-ar9ioVjA">
+ <body>activity 'DistinguishibilityTest$initialization$1'(){
+ if (this.'DistinguishibilityTest$initializationFlag$1' == null) {
+ this.'DistinguishibilityTest$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_-mgE4sOSEeSiR-ar9ioVjA" name="destroy$method$1" specification="_-mgE48OSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_-mgE5MOSEeSiR-ar9ioVjA" annotatedElement="_-mgE4sOSEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_-mgEwcOSEeSiR-ar9ioVjA" name="create" visibility="public" method="_-mgEyMOSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_-mgEwsOSEeSiR-ar9ioVjA" name="x">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-mgEw8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-mgExMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_-mgExcOSEeSiR-ar9ioVjA" name="" type="_-mgEwMOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-mgExsOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-mgEx8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-mgEz8OSEeSiR-ar9ioVjA" name="create" visibility="public" method="_-mgE1sOSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_-mgE0MOSEeSiR-ar9ioVjA" name="x">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-mgE0cOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-mgE0sOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_-mgE08OSEeSiR-ar9ioVjA" name="" type="_-mgEwMOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-mgE1MOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-mgE1cOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-mgE4cOSEeSiR-ar9ioVjA" name="DistinguishibilityTest$initialization$1" visibility="protected" method="_-mgE4MOSEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_-mgE48OSEeSiR-ar9ioVjA" name="destroy" method="_-mgE4sOSEeSiR-ar9ioVjA"/>
+ </packagedElement>
+ <profileApplication xmi:id="_-daaMcOSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_-daaMsOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_-daaM8OSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_-daaNMOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Create xmi:id="_-mgE6MOSEeSiR-ar9ioVjA" base_BehavioralFeature="_-mgEz8OSEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_-mgE6cOSEeSiR-ar9ioVjA" base_BehavioralFeature="_-mgE48OSEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_-mgE6sOSEeSiR-ar9ioVjA" base_BehavioralFeature="_-mgEwcOSEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_-mgE68OSEeSiR-ar9ioVjA" base_Comment="_-mgE5MOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_-mgE7MOSEeSiR-ar9ioVjA" base_Comment="_-mgE5cOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_-mgE7cOSEeSiR-ar9ioVjA" base_Comment="_-mgE5sOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_-mgE7sOSEeSiR-ar9ioVjA" base_Comment="_-mgE58OSEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/ElementImportResolutionTest.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/ElementImportResolutionTest.uml
new file mode 100644
index 00000000000..501ccc750f2
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/ElementImportResolutionTest.uml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_-ms5EMOSEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_-m_M8MOSEeSiR-ar9ioVjA" name="ElementImportResolution">
+ <elementImport xmi:id="_-m_NAcOSEeSiR-ar9ioVjA" visibility="private">
+ <alias xsi:nil="true"/>
+ <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </elementImport>
+ <elementImport xmi:id="_-m_NAsOSEeSiR-ar9ioVjA" visibility="private">
+ <alias xsi:nil="true"/>
+ <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </elementImport>
+ <elementImport xmi:id="_-m_NAMOSEeSiR-ar9ioVjA" visibility="private">
+ <alias xsi:nil="true"/>
+ <importedElement xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </elementImport>
+ <ownedAttribute xmi:id="_-m_M8cOSEeSiR-ar9ioVjA" name="ElementImportResolution$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-m_M8sOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-m_M88OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_-m_M9MOSEeSiR-ar9ioVjA" name="ElementImportResolution$initialization$1" visibility="protected" specification="_-m_M9cOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_-m_NBMOSEeSiR-ar9ioVjA" annotatedElement="_-m_M9MOSEeSiR-ar9ioVjA">
+ <body>activity 'ElementImportResolution$initialization$1'(){
+ if (this.'ElementImportResolution$initializationFlag$1' == null) {
+ this.'ElementImportResolution$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_-m_M9sOSEeSiR-ar9ioVjA" name="ElementImportResolution$method$1" specification="_-m_M-sOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_-m_NBcOSEeSiR-ar9ioVjA" annotatedElement="_-m_M9sOSEeSiR-ar9ioVjA">
+ <body>activity 'ElementImportResolution$method$1'(): ElementImportResolution {
+ this.'ElementImportResolution$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_-m_M98OSEeSiR-ar9ioVjA" type="_-m_M8MOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-m_M-MOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-m_M-cOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_-m_M_sOSEeSiR-ar9ioVjA" name="destroy$method$1" specification="_-m_M_8OSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_-m_NA8OSEeSiR-ar9ioVjA" annotatedElement="_-m_M_sOSEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_-m_M9cOSEeSiR-ar9ioVjA" name="ElementImportResolution$initialization$1" visibility="protected" method="_-m_M9MOSEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_-m_M-sOSEeSiR-ar9ioVjA" name="ElementImportResolution" method="_-m_M9sOSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_-m_M-8OSEeSiR-ar9ioVjA" type="_-m_M8MOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-m_M_MOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-m_M_cOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_-m_M_8OSEeSiR-ar9ioVjA" name="destroy" method="_-m_M_sOSEeSiR-ar9ioVjA"/>
+ </packagedElement>
+ <profileApplication xmi:id="_-ms5EcOSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_-ms5EsOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_-ms5E8OSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_-ms5FMOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Destroy xmi:id="_-m_NBsOSEeSiR-ar9ioVjA" base_BehavioralFeature="_-m_M_8OSEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_-m_NB8OSEeSiR-ar9ioVjA" base_BehavioralFeature="_-m_M-sOSEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_-m_NCMOSEeSiR-ar9ioVjA" base_Comment="_-m_NA8OSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_-m_NCcOSEeSiR-ar9ioVjA" base_Comment="_-m_NBMOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_-m_NCsOSEeSiR-ar9ioVjA" base_Comment="_-m_NBcOSEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Assignment.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Assignment.uml
new file mode 100644
index 00000000000..fe50ad82398
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Assignment.uml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_-nMoUMOSEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="__H3scMOSEeSiR-ar9ioVjA" name="Expressions_Assignment" classifierBehavior="__H3sscOSEeSiR-ar9ioVjA" isActive="true">
+ <ownedComment xmi:id="__H3sssOSEeSiR-ar9ioVjA" annotatedElement="__H3scMOSEeSiR-ar9ioVjA">
+ <body>&#xD;
+ * Test non-indexed assignment expressions.&#xD;
+ *</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="__H3sosOSEeSiR-ar9ioVjA" name="Expressions_Assignment$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__H3so8OSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__H3spMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__H3sgcOSEeSiR-ar9ioVjA" name="test$method$1" visibility="protected" specification="__H3sccOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__H3ss8OSEeSiR-ar9ioVjA" annotatedElement="__H3sgcOSEeSiR-ar9ioVjA">
+ <body>activity 'test$method$1'(out i: Integer, out f: Boolean, out h: BitString, out filename: String, out a: Integer) {
+ i = 1;
+ i += 4;
+ i += 1;
+ i -= 1;
+ i *= 1;
+ i %= 6;
+ i /= 1;
+ f = true;
+ f &amp;= true;
+ f |= true;
+ f ^= true;
+ h = (BitString) 0;
+ h = 0xab;
+ h &amp;= 0xff;
+ h |= 1;
+ h ^= 1;
+ h &lt;&lt;= 1;
+ h >>= 1;
+ h >>>= 1;
+ filename = &quot;xyz&quot;;
+ filename += &quot;.doc&quot;;
+ a = 1;
+ a += 1;
+ test::a = 1;
+ test::a += i;
+ test.a = 1;
+ test.a += 1;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="__H3sgsOSEeSiR-ar9ioVjA" name="i" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__H3sg8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__H3shMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__H3shcOSEeSiR-ar9ioVjA" name="f" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__H3shsOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__H3sh8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__H3siMOSEeSiR-ar9ioVjA" name="h" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf-Library-PrimitiveTypes-BitString"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__H3sicOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__H3sisOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__H3si8OSEeSiR-ar9ioVjA" name="filename" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__H3sjMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__H3sjcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__H3sjsOSEeSiR-ar9ioVjA" name="a" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__H3sj8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__H3skMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__H3spcOSEeSiR-ar9ioVjA" name="Expressions_Assignment$initialization$1" visibility="protected" specification="__H3spsOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__H3stMOSEeSiR-ar9ioVjA" annotatedElement="__H3spcOSEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Assignment$initialization$1'(){
+ if (this.'Expressions_Assignment$initializationFlag$1' == null) {
+ this.'Expressions_Assignment$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__H3sp8OSEeSiR-ar9ioVjA" name="Expressions_Assignment$method$1" specification="__H3sq8OSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__H3stcOSEeSiR-ar9ioVjA" annotatedElement="__H3sp8OSEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Assignment$method$1'(): Expressions_Assignment {
+ this.'Expressions_Assignment$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="__H3sqMOSEeSiR-ar9ioVjA" type="__H3scMOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__H3sqcOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__H3sqsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__H3sr8OSEeSiR-ar9ioVjA" name="destroy$method$1" specification="__H3ssMOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__H3stsOSEeSiR-ar9ioVjA" annotatedElement="__H3sr8OSEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__H3sscOSEeSiR-ar9ioVjA" name="Expressions_Assignment$behavior$1" visibility="private">
+ <ownedComment xmi:id="__H3sucOSEeSiR-ar9ioVjA" annotatedElement="__H3sscOSEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Assignment$behavior$1'() {
+ this.test(i, f, h, filename, a);
+ AssertEqual(&quot;i&quot;, i, 5);
+ AssertFalse(&quot;f&quot;, f);
+ AssertEqual(&quot;h&quot;, h, 0x55);
+ AssertEqual(&quot;filename&quot;, filename, &quot;xyz.doc&quot;);
+ AssertEqual(&quot;a&quot;, a, 2);
+ WriteLine(&quot;Done&quot;);
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="__H3sccOSEeSiR-ar9ioVjA" name="test" visibility="public" method="__H3sgcOSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="__H3scsOSEeSiR-ar9ioVjA" name="i" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__H3sc8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__H3sdMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__H3sdcOSEeSiR-ar9ioVjA" name="f" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__H3sdsOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__H3sd8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__H3seMOSEeSiR-ar9ioVjA" name="h" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf-Library-PrimitiveTypes-BitString"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__H3secOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__H3sesOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__H3se8OSEeSiR-ar9ioVjA" name="filename" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__H3sfMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__H3sfcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__H3sfsOSEeSiR-ar9ioVjA" name="a" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__H3sf8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__H3sgMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="__H3spsOSEeSiR-ar9ioVjA" name="Expressions_Assignment$initialization$1" visibility="protected" method="__H3spcOSEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="__H3sq8OSEeSiR-ar9ioVjA" name="Expressions_Assignment" method="__H3sp8OSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="__H3srMOSEeSiR-ar9ioVjA" type="__H3scMOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__H3srcOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__H3srsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="__H3ssMOSEeSiR-ar9ioVjA" name="destroy" method="__H3sr8OSEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Activity" xmi:id="__H3skcOSEeSiR-ar9ioVjA" name="AssertEqual" visibility="public">
+ <ownedComment xmi:id="__H3st8OSEeSiR-ar9ioVjA" annotatedElement="__H3skcOSEeSiR-ar9ioVjA">
+ <body>activity AssertEqual(in label: String, in value1: any, in value2: any) {
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="__H3sksOSEeSiR-ar9ioVjA" name="label">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__H3sk8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__H3slMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__H3slcOSEeSiR-ar9ioVjA" name="value1">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__H3slsOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__H3sl8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__H3smMOSEeSiR-ar9ioVjA" name="value2">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__H3smcOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__H3smsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Activity" xmi:id="__H3sm8OSEeSiR-ar9ioVjA" name="AssertFalse" visibility="public">
+ <ownedComment xmi:id="__H3suMOSEeSiR-ar9ioVjA" annotatedElement="__H3sm8OSEeSiR-ar9ioVjA">
+ <body>activity AssertFalse(in label: String, in value: Boolean) {
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="__H3snMOSEeSiR-ar9ioVjA" name="label">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__H3sncOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__H3snsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__H3sn8OSEeSiR-ar9ioVjA" name="value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__H3soMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__H3socOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:id="_-nMoUcOSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_-nMoUsOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_-nMoU8OSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_-nMoVMOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Destroy xmi:id="__H3susOSEeSiR-ar9ioVjA" base_BehavioralFeature="__H3ssMOSEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="__H3su8OSEeSiR-ar9ioVjA" base_BehavioralFeature="__H3sq8OSEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__H3svMOSEeSiR-ar9ioVjA" base_Comment="__H3ss8OSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__H3svcOSEeSiR-ar9ioVjA" base_Comment="__H3stMOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__H3svsOSEeSiR-ar9ioVjA" base_Comment="__H3stcOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__H3sv8OSEeSiR-ar9ioVjA" base_Comment="__H3stsOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__H3swMOSEeSiR-ar9ioVjA" base_Comment="__H3st8OSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__H3swcOSEeSiR-ar9ioVjA" base_Comment="__H3suMOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__H3swsOSEeSiR-ar9ioVjA" base_Comment="__H3sucOSEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Assignment_Feature.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Assignment_Feature.uml
new file mode 100644
index 00000000000..abce597a569
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Assignment_Feature.uml
@@ -0,0 +1,247 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="__I1VwMOSEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="__erp8MOSEeSiR-ar9ioVjA" name="Expressions_Assignment_Feature" classifierBehavior="__esRWMOSEeSiR-ar9ioVjA" isActive="true">
+ <ownedComment xmi:id="__esRWcOSEeSiR-ar9ioVjA" annotatedElement="__erp8MOSEeSiR-ar9ioVjA">
+ <body>&#xD;
+ * Test non-indexed feature assignment expressions&#xD;
+ *</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="__erp8cOSEeSiR-ar9ioVjA" name="x" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__erp8sOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__erp88OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__erp9MOSEeSiR-ar9ioVjA" name="y" visibility="private" isOrdered="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__erp9cOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__erp9sOSEeSiR-ar9ioVjA" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__esRScOSEeSiR-ar9ioVjA" name="Expressions_Assignment_Feature$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esRSsOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esRS8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__esROcOSEeSiR-ar9ioVjA" name="test$method$1" visibility="protected" specification="__esRKcOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__esRYMOSEeSiR-ar9ioVjA" annotatedElement="__esROcOSEeSiR-ar9ioVjA">
+ <body>activity 'test$method$1'(out c: C, out d: D, out n: Integer, out m: Integer, out self: Expressions_Assignment_Feature) {
+ c = new C();
+ c.x = 2;
+ c.y = 1;
+ c.y = null;
+ c.y = new Integer [] { 1, 2 };
+ c.n = 3;
+ n = A::n(c);
+ d = new D(0, null);
+ d.x = 2;
+ d.y = 1;
+ d.y = null;
+ d.y = new Integer [] { 1, 2 };
+ d.m = 3;
+ m = B::m(d);
+ this.x = 2;
+ this.y = 1;
+ this.y = null;
+ this.y = new Integer [] { 1, 2 };
+ self = this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="__esROsOSEeSiR-ar9ioVjA" name="c" type="__erp98OSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esRO8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esRPMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__esRPcOSEeSiR-ar9ioVjA" name="d" type="__esRFMOSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esRPsOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esRP8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__esRQMOSEeSiR-ar9ioVjA" name="n" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esRQcOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esRQsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__esRQ8OSEeSiR-ar9ioVjA" name="m" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esRRMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esRRcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__esRRsOSEeSiR-ar9ioVjA" name="self" type="__erp8MOSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esRR8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esRSMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__esRTMOSEeSiR-ar9ioVjA" name="Expressions_Assignment_Feature$initialization$1" visibility="protected" specification="__esRTcOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__esRW8OSEeSiR-ar9ioVjA" annotatedElement="__esRTMOSEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Assignment_Feature$initialization$1'(){
+ if (this.'Expressions_Assignment_Feature$initializationFlag$1' == null) {
+ this.'Expressions_Assignment_Feature$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__esRTsOSEeSiR-ar9ioVjA" name="Expressions_Assignment_Feature$method$1" specification="__esRUsOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__esRX8OSEeSiR-ar9ioVjA" annotatedElement="__esRTsOSEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Assignment_Feature$method$1'(): Expressions_Assignment_Feature {
+ this.'Expressions_Assignment_Feature$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="__esRT8OSEeSiR-ar9ioVjA" type="__erp8MOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esRUMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esRUcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__esRVsOSEeSiR-ar9ioVjA" name="destroy$method$1" specification="__esRV8OSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__esRYcOSEeSiR-ar9ioVjA" annotatedElement="__esRVsOSEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__esRWMOSEeSiR-ar9ioVjA" name="Expressions_Assignment_Feature$behavior$1" visibility="private">
+ <ownedComment xmi:id="__esRXcOSEeSiR-ar9ioVjA" annotatedElement="__esRWMOSEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Assignment_Feature$behavior$1'() {
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="__esRKcOSEeSiR-ar9ioVjA" name="test" visibility="public" method="__esROcOSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="__esRKsOSEeSiR-ar9ioVjA" name="c" type="__erp98OSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esRK8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esRLMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__esRLcOSEeSiR-ar9ioVjA" name="d" type="__esRFMOSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esRLsOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esRL8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__esRMMOSEeSiR-ar9ioVjA" name="n" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esRMcOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esRMsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__esRM8OSEeSiR-ar9ioVjA" name="m" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esRNMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esRNcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__esRNsOSEeSiR-ar9ioVjA" name="self" type="__erp8MOSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esRN8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esROMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="__esRTcOSEeSiR-ar9ioVjA" name="Expressions_Assignment_Feature$initialization$1" visibility="protected" method="__esRTMOSEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="__esRUsOSEeSiR-ar9ioVjA" name="Expressions_Assignment_Feature" method="__esRTsOSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="__esRU8OSEeSiR-ar9ioVjA" type="__erp8MOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esRVMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esRVcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="__esRV8OSEeSiR-ar9ioVjA" name="destroy" method="__esRVsOSEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="__erp98OSEeSiR-ar9ioVjA" name="C" visibility="private">
+ <ownedAttribute xmi:id="__erp-MOSEeSiR-ar9ioVjA" name="x" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esRAMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esRAcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__esRAsOSEeSiR-ar9ioVjA" name="y" visibility="public" isOrdered="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esRA8OSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esRBMOSEeSiR-ar9ioVjA" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__esRBcOSEeSiR-ar9ioVjA" name="C$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esRBsOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esRB8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__esRCMOSEeSiR-ar9ioVjA" name="C$initialization$1" visibility="protected" specification="__esRCcOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__esRXsOSEeSiR-ar9ioVjA" annotatedElement="__esRCMOSEeSiR-ar9ioVjA">
+ <body>activity 'C$initialization$1'(){
+ if (this.'C$initializationFlag$1' == null) {
+ this.'C$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__esRCsOSEeSiR-ar9ioVjA" name="C$method$1" specification="__esRDsOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__esRXMOSEeSiR-ar9ioVjA" annotatedElement="__esRCsOSEeSiR-ar9ioVjA">
+ <body>activity 'C$method$1'(): C {
+ this.'C$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="__esRC8OSEeSiR-ar9ioVjA" type="__erp98OSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esRDMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esRDcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__esREsOSEeSiR-ar9ioVjA" name="destroy$method$1" specification="__esRE8OSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__esRWsOSEeSiR-ar9ioVjA" annotatedElement="__esREsOSEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="__esRCcOSEeSiR-ar9ioVjA" name="C$initialization$1" visibility="protected" method="__esRCMOSEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="__esRDsOSEeSiR-ar9ioVjA" name="C" method="__esRCsOSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="__esRD8OSEeSiR-ar9ioVjA" type="__erp98OSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esREMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esREcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="__esRE8OSEeSiR-ar9ioVjA" name="destroy" method="__esREsOSEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:DataType" xmi:id="__esRFMOSEeSiR-ar9ioVjA" name="D" visibility="private">
+ <ownedAttribute xmi:id="__esRFcOSEeSiR-ar9ioVjA" name="x" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esRFsOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esRF8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__esRGMOSEeSiR-ar9ioVjA" name="y" visibility="public" isOrdered="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esRGcOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esRGsOSEeSiR-ar9ioVjA" value="*"/>
+ </ownedAttribute>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Association" xmi:id="__esRG8OSEeSiR-ar9ioVjA" name="A" visibility="private" memberEnd="__esRHMOSEeSiR-ar9ioVjA __esRH8OSEeSiR-ar9ioVjA">
+ <ownedEnd xmi:id="__esRHMOSEeSiR-ar9ioVjA" name="c" visibility="public" type="__erp98OSEeSiR-ar9ioVjA" association="__esRG8OSEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esRHcOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esRHsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="__esRH8OSEeSiR-ar9ioVjA" name="n" visibility="public" association="__esRG8OSEeSiR-ar9ioVjA">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esRIMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esRIcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedEnd>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Association" xmi:id="__esRIsOSEeSiR-ar9ioVjA" name="B" visibility="private" memberEnd="__esRI8OSEeSiR-ar9ioVjA __esRJsOSEeSiR-ar9ioVjA">
+ <ownedEnd xmi:id="__esRI8OSEeSiR-ar9ioVjA" name="d" visibility="public" type="__esRFMOSEeSiR-ar9ioVjA" association="__esRIsOSEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esRJMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esRJcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="__esRJsOSEeSiR-ar9ioVjA" name="m" visibility="public" association="__esRIsOSEeSiR-ar9ioVjA">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__esRJ8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__esRKMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedEnd>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:id="__I1VwcOSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="__I1VwsOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="__I1Vw8OSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="__I1VxMOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Create xmi:id="__esRYsOSEeSiR-ar9ioVjA" base_BehavioralFeature="__esRUsOSEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="__esRY8OSEeSiR-ar9ioVjA" base_BehavioralFeature="__esRV8OSEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="__esRZMOSEeSiR-ar9ioVjA" base_BehavioralFeature="__esRE8OSEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="__esRZcOSEeSiR-ar9ioVjA" base_BehavioralFeature="__esRDsOSEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__esRZsOSEeSiR-ar9ioVjA" base_Comment="__esRWsOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__esRZ8OSEeSiR-ar9ioVjA" base_Comment="__esRW8OSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__esRaMOSEeSiR-ar9ioVjA" base_Comment="__esRXMOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__esRacOSEeSiR-ar9ioVjA" base_Comment="__esRXcOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__esRasOSEeSiR-ar9ioVjA" base_Comment="__esRXsOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__esRa8OSEeSiR-ar9ioVjA" base_Comment="__esRX8OSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__esRbMOSEeSiR-ar9ioVjA" base_Comment="__esRYMOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__esRbcOSEeSiR-ar9ioVjA" base_Comment="__esRYcOSEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Assignment_Feature_Indexed.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Assignment_Feature_Indexed.uml
new file mode 100644
index 00000000000..fb8c99595ca
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Assignment_Feature_Indexed.uml
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_sbc1QIKGEeSFEt9m3bH63A" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_s03a0IKGEeSFEt9m3bH63A" name="Expressions_Assignment_Feature_Indexed" classifierBehavior="_s04B6YKGEeSFEt9m3bH63A" isActive="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_s04B6oKGEeSFEt9m3bH63A" annotatedElement="_s03a0IKGEeSFEt9m3bH63A">
+ <body>&#xD;
+ * Test indexed feature assignment expressions&#xD;
+ *</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_s03a0YKGEeSFEt9m3bH63A" name="y" visibility="private" isOrdered="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s03a0oKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s03a04KGEeSFEt9m3bH63A" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_s03bGYKGEeSFEt9m3bH63A" name="Expressions_Assignment_Feature_Indexed$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s03bGoKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s03bG4KGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_s03bCYKGEeSFEt9m3bH63A" name="test$method$1" visibility="protected" specification="_s03a-YKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_s04B64KGEeSFEt9m3bH63A" annotatedElement="_s03bCYKGEeSFEt9m3bH63A">
+ <body>activity 'test$method$1'(out c: C, out d: D, out n: Integer, out m: Integer, out self: Expressions_Assignment_Feature_Indexed) { c = new C();
+c.y = new Integer [] { 1, 2, 3 };
+c.y[2] = 4;
+c.y[1] = null;
+c.n[1] = 4;
+n = A::n(c)[1];
+d = new D(new Integer [] { 1, 2, 3 });
+d.y[2] = 4;
+d.y[1] = null;
+d.m[1] = 4;
+m = B::m(d)[1];
+this.y = new Integer [] { 1, 2 };
+this.y[2] = 4;
+this.y[1] = null;
+self = this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_s03bCoKGEeSFEt9m3bH63A" name="c" type="_s03a1IKGEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s03bC4KGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s03bDIKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_s03bDYKGEeSFEt9m3bH63A" name="d" type="_s03a54KGEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s03bDoKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s03bD4KGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_s03bEIKGEeSFEt9m3bH63A" name="n" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s03bEYKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s03bEoKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_s03bE4KGEeSFEt9m3bH63A" name="m" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s03bFIKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s03bFYKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_s03bFoKGEeSFEt9m3bH63A" name="self" type="_s03a0IKGEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s03bF4KGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s03bGIKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_s03bHIKGEeSFEt9m3bH63A" name="Expressions_Assignment_Feature_Indexed$initialization$1" visibility="protected" specification="_s03bHYKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_s04B8oKGEeSFEt9m3bH63A" annotatedElement="_s03bHIKGEeSFEt9m3bH63A">
+ <body>activity 'Expressions_Assignment_Feature_Indexed$initialization$1'(){
+ if (this.'Expressions_Assignment_Feature_Indexed$initializationFlag$1' == null) {
+ this.'Expressions_Assignment_Feature_Indexed$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_s03bHoKGEeSFEt9m3bH63A" name="Expressions_Assignment_Feature_Indexed$method$1" specification="_s04B44KGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_s04B7oKGEeSFEt9m3bH63A" annotatedElement="_s03bHoKGEeSFEt9m3bH63A">
+ <body>activity 'Expressions_Assignment_Feature_Indexed$method$1'(): Expressions_Assignment_Feature_Indexed {
+ this.'Expressions_Assignment_Feature_Indexed$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_s04B4IKGEeSFEt9m3bH63A" type="_s03a0IKGEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s04B4YKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s04B4oKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_s04B54KGEeSFEt9m3bH63A" name="destroy$method$1" specification="_s04B6IKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_s04B7YKGEeSFEt9m3bH63A" annotatedElement="_s04B54KGEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_s04B6YKGEeSFEt9m3bH63A" name="Expressions_Assignment_Feature_Indexed$behavior$1" visibility="private">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_s04B8YKGEeSFEt9m3bH63A" annotatedElement="_s04B6YKGEeSFEt9m3bH63A">
+ <body>activity 'Expressions_Assignment_Feature_Indexed$behavior$1'() { this.test(c, d, n, m, self);
+AssertEqual(&quot;c.y[1]&quot;, c.y[1], 4);
+AssertEqual(&quot;c.n[1]&quot;, c.n[1], 4);
+AssertEqual(&quot;d.y[1]&quot;, d.y[1], 4);
+AssertEqual(&quot;d.m[1]&quot;, d.m[1], 4);
+AssertEqual(&quot;n&quot;, n, 4);
+AssertEqual(&quot;m&quot;, m, 4);
+AssertEqual(&quot;self.y[1]&quot;, self.y[1], 4);
+WriteLine(&quot;Done&quot;);
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_s03a-YKGEeSFEt9m3bH63A" name="test" visibility="public" method="_s03bCYKGEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_s03a-oKGEeSFEt9m3bH63A" name="c" type="_s03a1IKGEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s03a-4KGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s03a_IKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_s03a_YKGEeSFEt9m3bH63A" name="d" type="_s03a54KGEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s03a_oKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s03a_4KGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_s03bAIKGEeSFEt9m3bH63A" name="n" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s03bAYKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s03bAoKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_s03bA4KGEeSFEt9m3bH63A" name="m" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s03bBIKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s03bBYKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_s03bBoKGEeSFEt9m3bH63A" name="self" type="_s03a0IKGEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s03bB4KGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s03bCIKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_s03bHYKGEeSFEt9m3bH63A" name="Expressions_Assignment_Feature_Indexed$initialization$1" visibility="protected" method="_s03bHIKGEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_s04B44KGEeSFEt9m3bH63A" name="Expressions_Assignment_Feature_Indexed" method="_s03bHoKGEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_s04B5IKGEeSFEt9m3bH63A" type="_s03a0IKGEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s04B5YKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s04B5oKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_s04B6IKGEeSFEt9m3bH63A" name="destroy" method="_s04B54KGEeSFEt9m3bH63A"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_s03a1IKGEeSFEt9m3bH63A" name="C" visibility="private">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_s03a1YKGEeSFEt9m3bH63A" name="y" visibility="public" isOrdered="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s03a1oKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s03a14KGEeSFEt9m3bH63A" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_s03a2IKGEeSFEt9m3bH63A" name="C$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s03a2YKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s03a2oKGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_s03a24KGEeSFEt9m3bH63A" name="C$initialization$1" visibility="protected" specification="_s03a3IKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_s04B8IKGEeSFEt9m3bH63A" annotatedElement="_s03a24KGEeSFEt9m3bH63A">
+ <body>activity 'C$initialization$1'(){
+ if (this.'C$initializationFlag$1' == null) {
+ this.'C$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_s03a3YKGEeSFEt9m3bH63A" name="C$method$1" specification="_s03a4YKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_s04B7IKGEeSFEt9m3bH63A" annotatedElement="_s03a3YKGEeSFEt9m3bH63A">
+ <body>activity 'C$method$1'(): C {
+ this.'C$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_s03a3oKGEeSFEt9m3bH63A" type="_s03a1IKGEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s03a34KGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s03a4IKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_s03a5YKGEeSFEt9m3bH63A" name="destroy$method$1" specification="_s03a5oKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_s04B74KGEeSFEt9m3bH63A" annotatedElement="_s03a5YKGEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_s03a3IKGEeSFEt9m3bH63A" name="C$initialization$1" visibility="protected" method="_s03a24KGEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_s03a4YKGEeSFEt9m3bH63A" name="C" method="_s03a3YKGEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_s03a4oKGEeSFEt9m3bH63A" type="_s03a1IKGEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s03a44KGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s03a5IKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_s03a5oKGEeSFEt9m3bH63A" name="destroy" method="_s03a5YKGEeSFEt9m3bH63A"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:DataType" xmi:id="_s03a54KGEeSFEt9m3bH63A" name="D" visibility="private">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_s03a6IKGEeSFEt9m3bH63A" name="y" visibility="public" isOrdered="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s03a6YKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s03a6oKGEeSFEt9m3bH63A" value="*"/>
+ </ownedAttribute>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Association" xmi:id="_s03a64KGEeSFEt9m3bH63A" name="A" visibility="private" memberEnd="_s03a7IKGEeSFEt9m3bH63A _s03a74KGEeSFEt9m3bH63A">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_s03a7IKGEeSFEt9m3bH63A" name="c" visibility="public" type="_s03a1IKGEeSFEt9m3bH63A" association="_s03a64KGEeSFEt9m3bH63A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s03a7YKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s03a7oKGEeSFEt9m3bH63A" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_s03a74KGEeSFEt9m3bH63A" name="n" visibility="public" isOrdered="true" isUnique="false" association="_s03a64KGEeSFEt9m3bH63A">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s03a8IKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s03a8YKGEeSFEt9m3bH63A" value="*"/>
+ </ownedEnd>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Association" xmi:id="_s03a8oKGEeSFEt9m3bH63A" name="B" visibility="private" memberEnd="_s03a84KGEeSFEt9m3bH63A _s03a9oKGEeSFEt9m3bH63A">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_s03a84KGEeSFEt9m3bH63A" name="d" visibility="public" type="_s03a54KGEeSFEt9m3bH63A" association="_s03a8oKGEeSFEt9m3bH63A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s03a9IKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s03a9YKGEeSFEt9m3bH63A" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_s03a9oKGEeSFEt9m3bH63A" name="m" visibility="public" isOrdered="true" isUnique="false" association="_s03a8oKGEeSFEt9m3bH63A">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_s03a94KGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_s03a-IKGEeSFEt9m3bH63A" value="*"/>
+ </ownedEnd>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_sbc1QYKGEeSFEt9m3bH63A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sbc1QoKGEeSFEt9m3bH63A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="__kKtd7eKEeS_zZpc9I-Bsg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__kL7kLeKEeS_zZpc9I-Bsg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <ActionLanguage:TextualRepresentation xmi:id="_s04B84KGEeSFEt9m3bH63A" base_Comment="_s04B74KGEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Create xmi:id="_s04B9IKGEeSFEt9m3bH63A" base_BehavioralFeature="_s04B44KGEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_s04B9YKGEeSFEt9m3bH63A" base_Comment="_s04B7oKGEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Create xmi:id="_s04B9oKGEeSFEt9m3bH63A" base_BehavioralFeature="_s03a4YKGEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_s04B94KGEeSFEt9m3bH63A" base_Comment="_s04B7YKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_s04B-IKGEeSFEt9m3bH63A" base_Comment="_s04B64KGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_s04B-YKGEeSFEt9m3bH63A" base_Comment="_s04B8IKGEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Destroy xmi:id="_s04B-oKGEeSFEt9m3bH63A" base_BehavioralFeature="_s03a5oKGEeSFEt9m3bH63A"/>
+ <standard:Destroy xmi:id="_s04B-4KGEeSFEt9m3bH63A" base_BehavioralFeature="_s04B6IKGEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_s04B_IKGEeSFEt9m3bH63A" base_Comment="_s04B7IKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_s04B_YKGEeSFEt9m3bH63A" base_Comment="_s04B8oKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_s04B_oKGEeSFEt9m3bH63A" base_Comment="_s04B8YKGEeSFEt9m3bH63A" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Assignment_Indexed.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Assignment_Indexed.uml
new file mode 100644
index 00000000000..18993c39566
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Assignment_Indexed.uml
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_s1u9gIKGEeSFEt9m3bH63A" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_tKYX0IKGEeSFEt9m3bH63A" name="Expressions_Assignment_Indexed" classifierBehavior="_tKYX7oKGEeSFEt9m3bH63A" isActive="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_tKYX74KGEeSFEt9m3bH63A" annotatedElement="_tKYX0IKGEeSFEt9m3bH63A">
+ <body>&#xD;
+ * Test indexed assignment expressions.&#xD;
+ *</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_tKYX34KGEeSFEt9m3bH63A" name="Expressions_Assignment_Indexed$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tKYX4IKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tKYX4YKGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_tKYX2IKGEeSFEt9m3bH63A" name="test$method$1" visibility="protected" specification="_tKYX0YKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_tKYX9IKGEeSFEt9m3bH63A" annotatedElement="_tKYX2IKGEeSFEt9m3bH63A">
+ <body>activity 'test$method$1'(out i: Integer[0..*], out a: Integer[0..*]) { i = new Integer [] { 1..4 };
+i[1] = 0;
+i[2] += i[3];
+a = i;
+a[3] = 5;
+test::a[3] = 5;
+test.a[3] = 5;
+a[4] += 1;
+test::a[4] += 1;
+test.a[4] += 1;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_tKYX2YKGEeSFEt9m3bH63A" name="i" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tKYX2oKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tKYX24KGEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_tKYX3IKGEeSFEt9m3bH63A" name="a" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tKYX3YKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tKYX3oKGEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_tKYX4oKGEeSFEt9m3bH63A" name="Expressions_Assignment_Indexed$initialization$1" visibility="protected" specification="_tKYX44KGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_tKYX84KGEeSFEt9m3bH63A" annotatedElement="_tKYX4oKGEeSFEt9m3bH63A">
+ <body>activity 'Expressions_Assignment_Indexed$initialization$1'(){
+ if (this.'Expressions_Assignment_Indexed$initializationFlag$1' == null) {
+ this.'Expressions_Assignment_Indexed$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_tKYX5IKGEeSFEt9m3bH63A" name="Expressions_Assignment_Indexed$method$1" specification="_tKYX6IKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_tKYX8YKGEeSFEt9m3bH63A" annotatedElement="_tKYX5IKGEeSFEt9m3bH63A">
+ <body>activity 'Expressions_Assignment_Indexed$method$1'(): Expressions_Assignment_Indexed {
+ this.'Expressions_Assignment_Indexed$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_tKYX5YKGEeSFEt9m3bH63A" type="_tKYX0IKGEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tKYX5oKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tKYX54KGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_tKYX7IKGEeSFEt9m3bH63A" name="destroy$method$1" specification="_tKYX7YKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_tKYX8oKGEeSFEt9m3bH63A" annotatedElement="_tKYX7IKGEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_tKYX7oKGEeSFEt9m3bH63A" name="Expressions_Assignment_Indexed$behavior$1" visibility="private">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_tKYX8IKGEeSFEt9m3bH63A" annotatedElement="_tKYX7oKGEeSFEt9m3bH63A">
+ <body>activity 'Expressions_Assignment_Indexed$behavior$1'() { this.test(i, a);
+AssertEqual(&quot;i[1]&quot;, i[1], 0);
+AssertEqual(&quot;i[2]&quot;, i[2], 5);
+AssertEqual(&quot;i[3]&quot;, i[3], 3);
+AssertEqual(&quot;i[4]&quot;, i[4], 4);
+AssertEqual(&quot;a[1]&quot;, a[1], 0);
+AssertEqual(&quot;a[2]&quot;, a[2], 5);
+AssertEqual(&quot;a[3]&quot;, a[3], 5);
+AssertEqual(&quot;a[4]&quot;, a[4], 7);
+WriteLine(&quot;Done&quot;);
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_tKYX0YKGEeSFEt9m3bH63A" name="test" visibility="public" method="_tKYX2IKGEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_tKYX0oKGEeSFEt9m3bH63A" name="i" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tKYX04KGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tKYX1IKGEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_tKYX1YKGEeSFEt9m3bH63A" name="a" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tKYX1oKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tKYX14KGEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_tKYX44KGEeSFEt9m3bH63A" name="Expressions_Assignment_Indexed$initialization$1" visibility="protected" method="_tKYX4oKGEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_tKYX6IKGEeSFEt9m3bH63A" name="Expressions_Assignment_Indexed" method="_tKYX5IKGEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_tKYX6YKGEeSFEt9m3bH63A" type="_tKYX0IKGEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tKYX6oKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tKYX64KGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_tKYX7YKGEeSFEt9m3bH63A" name="destroy" method="_tKYX7IKGEeSFEt9m3bH63A"/>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_s1u9gYKGEeSFEt9m3bH63A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s1u9goKGEeSFEt9m3bH63A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_QqvM0LeLEeS_zZpc9I-Bsg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QqvM0beLEeS_zZpc9I-Bsg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <ActionLanguage:TextualRepresentation xmi:id="_tKYX9YKGEeSFEt9m3bH63A" base_Comment="_tKYX84KGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_tKYX9oKGEeSFEt9m3bH63A" base_Comment="_tKYX8IKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_tKYX94KGEeSFEt9m3bH63A" base_Comment="_tKYX8oKGEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Destroy xmi:id="_tKYX-IKGEeSFEt9m3bH63A" base_BehavioralFeature="_tKYX7YKGEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_tKYX-YKGEeSFEt9m3bH63A" base_Comment="_tKYX9IKGEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Create xmi:id="_tKYX-oKGEeSFEt9m3bH63A" base_BehavioralFeature="_tKYX6IKGEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_tKYX-4KGEeSFEt9m3bH63A" base_Comment="_tKYX8YKGEeSFEt9m3bH63A" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Assignment_Null.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Assignment_Null.uml
new file mode 100644
index 00000000000..78c3d9231a2
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Assignment_Null.uml
@@ -0,0 +1,305 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_tLlRsIKGEeSFEt9m3bH63A" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_t5p4oIKGEeSFEt9m3bH63A" name="Expressions_Assignment_Null" classifierBehavior="_t5qf2oKGEeSFEt9m3bH63A" isActive="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_t5qf24KGEeSFEt9m3bH63A" annotatedElement="_t5p4oIKGEeSFEt9m3bH63A">
+ <body>
+ * Test non-literal assignment of null.
+ *</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_t5p4oYKGEeSFEt9m3bH63A" name="i" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5p4ooKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5p4o4KGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_t5p4pIKGEeSFEt9m3bH63A" name="j" visibility="private" isOrdered="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5p4pYKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5p4poKGEeSFEt9m3bH63A" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_t5p4p4KGEeSFEt9m3bH63A" name="d" visibility="private" type="_t5p4qoKGEeSFEt9m3bH63A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5p4qIKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5p4qYKGEeSFEt9m3bH63A" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_t5p4roKGEeSFEt9m3bH63A" behavior="_t5p4r4KGEeSFEt9m3bH63A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_t5qfy4KGEeSFEt9m3bH63A" name="Expressions_Assignment_Null$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5qfzIKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5qfzYKGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_t5p4t4KGEeSFEt9m3bH63A" name="set$method$1" visibility="protected" specification="_t5p4s4KGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_t5qf44KGEeSFEt9m3bH63A" annotatedElement="_t5p4t4KGEeSFEt9m3bH63A">
+ <body>activity 'set$method$1'(in i: Integer[0..1]) { this.i = i;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5p4uIKGEeSFEt9m3bH63A" name="i">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5p4uYKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5p4uoKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_t5p4v4KGEeSFEt9m3bH63A" name="get$method$1" visibility="protected" specification="_t5p4u4KGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_t5qf5oKGEeSFEt9m3bH63A" annotatedElement="_t5p4v4KGEeSFEt9m3bH63A">
+ <body>activity 'get$method$1'(): Integer[0..1] { return this.i;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5p4wIKGEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5p4wYKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5p4woKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_t5p4yoKGEeSFEt9m3bH63A" name="setAt$method$1" visibility="protected" specification="_t5p4w4KGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_t5qf5YKGEeSFEt9m3bH63A" annotatedElement="_t5p4yoKGEeSFEt9m3bH63A">
+ <body>activity 'setAt$method$1'(in j: Integer[0..1], in index: Integer) { this.j[index] = j;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5p4y4KGEeSFEt9m3bH63A" name="j">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5p4zIKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5p4zYKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5p4zoKGEeSFEt9m3bH63A" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5p4z4KGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5p40IKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_t5p42IKGEeSFEt9m3bH63A" name="getAt$method$1" visibility="protected" specification="_t5p40YKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_t5qf54KGEeSFEt9m3bH63A" annotatedElement="_t5p42IKGEeSFEt9m3bH63A">
+ <body>activity 'getAt$method$1'(in index: Integer): Integer[0..1] { return this.j[index];
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5p42YKGEeSFEt9m3bH63A" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5p42oKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5p424KGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5p43IKGEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5p43YKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5p43oKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_t5p444KGEeSFEt9m3bH63A" name="setData$method$1" visibility="protected" specification="_t5p434KGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_t5qf4YKGEeSFEt9m3bH63A" annotatedElement="_t5p444KGEeSFEt9m3bH63A">
+ <body>activity 'setData$method$1'(in k: Integer[0..1]) { d = this.d;
+d.k = k;
+this.d = d;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5p45IKGEeSFEt9m3bH63A" name="k">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5p45YKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5p45oKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_t5qfs4KGEeSFEt9m3bH63A" name="getData$method$1" visibility="protected" specification="_t5p454KGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_t5qf3oKGEeSFEt9m3bH63A" annotatedElement="_t5qfs4KGEeSFEt9m3bH63A">
+ <body>activity 'getData$method$1'(): Integer { return this.d.k;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5qftIKGEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5qftYKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5qftoKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_t5qfwYKGEeSFEt9m3bH63A" name="test$method$1" visibility="protected" specification="_t5qft4KGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_t5qf34KGEeSFEt9m3bH63A" annotatedElement="_t5qfwYKGEeSFEt9m3bH63A">
+ <body>activity 'test$method$1'(out i: Integer[0..1], out j: Integer[0..1], out k: Integer[0..1]) { this.set(5);
+this.set(null);
+i = this.get();
+this.j = new Integer [] { 1, 2 };
+this.setAt(5, 1);
+this.setAt(null, 1);
+j = this.getAt(1);
+this.setData(5);
+this.setData(null);
+k = this.getData();
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5qfwoKGEeSFEt9m3bH63A" name="i" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5qfw4KGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5qfxIKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5qfxYKGEeSFEt9m3bH63A" name="j" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5qfxoKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5qfx4KGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5qfyIKGEeSFEt9m3bH63A" name="k" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5qfyYKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5qfyoKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_t5p4r4KGEeSFEt9m3bH63A" name="d$defaultValue$1">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_t5qf5IKGEeSFEt9m3bH63A" annotatedElement="_t5p4r4KGEeSFEt9m3bH63A">
+ <body>activity 'd$defaultValue$1'(): D {
+ return new D();
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5p4sIKGEeSFEt9m3bH63A" type="_t5p4qoKGEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5p4sYKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5p4soKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_t5qfzoKGEeSFEt9m3bH63A" name="Expressions_Assignment_Null$initialization$1" visibility="protected" specification="_t5qfz4KGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_t5qf3YKGEeSFEt9m3bH63A" annotatedElement="_t5qfzoKGEeSFEt9m3bH63A">
+ <body>activity 'Expressions_Assignment_Null$initialization$1'(){
+ if (this.'Expressions_Assignment_Null$initializationFlag$1' == null) {
+ this.d = 'd$defaultValue$1'();
+ this.'Expressions_Assignment_Null$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_t5qf0IKGEeSFEt9m3bH63A" name="Expressions_Assignment_Null$method$1" specification="_t5qf1IKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_t5qf3IKGEeSFEt9m3bH63A" annotatedElement="_t5qf0IKGEeSFEt9m3bH63A">
+ <body>activity 'Expressions_Assignment_Null$method$1'(): Expressions_Assignment_Null {
+ this.'Expressions_Assignment_Null$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5qf0YKGEeSFEt9m3bH63A" type="_t5p4oIKGEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5qf0oKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5qf04KGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_t5qf2IKGEeSFEt9m3bH63A" name="destroy$method$1" specification="_t5qf2YKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_t5qf4IKGEeSFEt9m3bH63A" annotatedElement="_t5qf2IKGEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_t5qf2oKGEeSFEt9m3bH63A" name="Expressions_Assignment_Null$behavior$1" visibility="private">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_t5qf4oKGEeSFEt9m3bH63A" annotatedElement="_t5qf2oKGEeSFEt9m3bH63A">
+ <body>activity 'Expressions_Assignment_Null$behavior$1'() { this.test(i, j, k);
+AssertEqual(&quot;i&quot;, i, null);
+AssertEqual(&quot;j&quot;, j, 2);
+AssertEqual(&quot;k&quot;, k, null);
+AssertTrue(&quot;this.d->notEmpty()&quot;, this.d->notEmpty());
+WriteLine(&quot;Done&quot;);
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_t5p4s4KGEeSFEt9m3bH63A" name="set" visibility="public" method="_t5p4t4KGEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5p4tIKGEeSFEt9m3bH63A" name="i">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5p4tYKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5p4toKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_t5p4u4KGEeSFEt9m3bH63A" name="get" visibility="public" method="_t5p4v4KGEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5p4vIKGEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5p4vYKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5p4voKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_t5p4w4KGEeSFEt9m3bH63A" name="setAt" visibility="public" method="_t5p4yoKGEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5p4xIKGEeSFEt9m3bH63A" name="j">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5p4xYKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5p4xoKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5p4x4KGEeSFEt9m3bH63A" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5p4yIKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5p4yYKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_t5p40YKGEeSFEt9m3bH63A" name="getAt" visibility="public" method="_t5p42IKGEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5p40oKGEeSFEt9m3bH63A" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5p404KGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5p41IKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5p41YKGEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5p41oKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5p414KGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_t5p434KGEeSFEt9m3bH63A" name="setData" visibility="public" method="_t5p444KGEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5p44IKGEeSFEt9m3bH63A" name="k">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5p44YKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5p44oKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_t5p454KGEeSFEt9m3bH63A" name="getData" visibility="public" method="_t5qfs4KGEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5qfsIKGEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5qfsYKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5qfsoKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_t5qft4KGEeSFEt9m3bH63A" name="test" visibility="public" method="_t5qfwYKGEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5qfuIKGEeSFEt9m3bH63A" name="i" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5qfuYKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5qfuoKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5qfu4KGEeSFEt9m3bH63A" name="j" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5qfvIKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5qfvYKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5qfvoKGEeSFEt9m3bH63A" name="k" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5qfv4KGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5qfwIKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_t5qfz4KGEeSFEt9m3bH63A" name="Expressions_Assignment_Null$initialization$1" visibility="protected" method="_t5qfzoKGEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_t5qf1IKGEeSFEt9m3bH63A" name="Expressions_Assignment_Null" method="_t5qf0IKGEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_t5qf1YKGEeSFEt9m3bH63A" type="_t5p4oIKGEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5qf1oKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5qf14KGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_t5qf2YKGEeSFEt9m3bH63A" name="destroy" method="_t5qf2IKGEeSFEt9m3bH63A"/>
+ <nestedClassifier xmi:type="uml:DataType" xmi:id="_t5p4qoKGEeSFEt9m3bH63A" name="D" visibility="package">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_t5p4q4KGEeSFEt9m3bH63A" name="k" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t5p4rIKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t5p4rYKGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_tLlRsYKGEeSFEt9m3bH63A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tLlRsoKGEeSFEt9m3bH63A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_XSAbybeLEeS_zZpc9I-Bsg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XSBC0LeLEeS_zZpc9I-Bsg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <ActionLanguage:TextualRepresentation xmi:id="_t5qf6IKGEeSFEt9m3bH63A" base_Comment="_t5qf5IKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_t5qf6YKGEeSFEt9m3bH63A" base_Comment="_t5qf3YKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_t5qf6oKGEeSFEt9m3bH63A" base_Comment="_t5qf4oKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_t5qf64KGEeSFEt9m3bH63A" base_Comment="_t5qf5oKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_t5qf7IKGEeSFEt9m3bH63A" base_Comment="_t5qf54KGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_t5qf7YKGEeSFEt9m3bH63A" base_Comment="_t5qf3IKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_t5qf7oKGEeSFEt9m3bH63A" base_Comment="_t5qf44KGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_t5qf74KGEeSFEt9m3bH63A" base_Comment="_t5qf5YKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_t5qf8IKGEeSFEt9m3bH63A" base_Comment="_t5qf3oKGEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Destroy xmi:id="_t5qf8YKGEeSFEt9m3bH63A" base_BehavioralFeature="_t5qf2YKGEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_t5qf8oKGEeSFEt9m3bH63A" base_Comment="_t5qf34KGEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Create xmi:id="_t5qf84KGEeSFEt9m3bH63A" base_BehavioralFeature="_t5qf1IKGEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_t5qf9IKGEeSFEt9m3bH63A" base_Comment="_t5qf4YKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_t5qf9YKGEeSFEt9m3bH63A" base_Comment="_t5qf4IKGEeSFEt9m3bH63A" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Association.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Association.uml
new file mode 100644
index 00000000000..0f144ee5e6f
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Association.uml
@@ -0,0 +1,586 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="__fapwMOSEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="__9DA8MOSEeSiR-ar9ioVjA" name="Expressions_Association" classifierBehavior="__9DoJ8OSEeSiR-ar9ioVjA" isActive="true">
+ <ownedComment xmi:id="__9DoKMOSEeSiR-ar9ioVjA" annotatedElement="__9DA8MOSEeSiR-ar9ioVjA">
+ <body>&#xD;
+ * Test association-related expressions.&#xD;
+ *</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="__9DoGMOSEeSiR-ar9ioVjA" name="Expressions_Association$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DoGcOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DoGsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__9DBscOSEeSiR-ar9ioVjA" name="test$method$1" visibility="protected" specification="__9DBicOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__9DoPMOSEeSiR-ar9ioVjA" annotatedElement="__9DBscOSEeSiR-ar9ioVjA">
+ <body>activity 'test$method$1'(out owner: Person, out house: House, out house_a: House, out house_b: House[0..1], out owner1_a: Person, out house1_a: House[0..*], out owner1_b: Person, out house1_b: House[0..*], out house1_c: House[0..*], out players1_a: Player[0..*], out players2_a: Player[0..*], out players1_b: Player[0..*], out players2_b: Player[0..*]) {
+ jack = new Person();
+ oldHouse = new House(1);
+ newHouse = new House(2);
+ Owns.createLink (jack, oldHouse);
+ Owns.createLink (owner=>jack, house=>oldHouse);
+ house = jack.house;
+ owner = Owns::owner(oldHouse);
+ Owns.createLink (oldHouse.owner, newHouse);
+ Owns.createLink (Owns.owner(oldHouse), newHouse);
+ house_a = jack.house;
+ Owns.destroyLink (owner=>jack, house=>newHouse);
+ house_b = jack.house;
+ Owns1.createLink (owner1=>jack, house1[1]=>oldHouse);
+ Owns1.createLink (owner1=>jack, house1[2]=>newHouse);
+ Owns1.createLink (owner1=>jack, house1[1]=>newHouse);
+ house1_a = jack.house1;
+ owner1_a = Owns1::owner1(newHouse);
+ Owns1.createLink (owner1=>new Person(&quot;Jane&quot;), house1[1]=>newHouse);
+ house1_b = jack.house1;
+ owner1_b = Owns1::owner1(newHouse);
+ Owns1.createLink (owner1=>jack, house1[2]=>new House(3));
+ house1_c = jack.house1;
+ Owns.clearAssoc (jack);
+ p1 = new Player(&quot;Fred&quot;);
+ p2 = new Player(&quot;Marvin&quot;);
+ t1 = new Team(&quot;A&quot;);
+ t2 = new Team(&quot;B&quot;);
+ y = new Season(2011);
+ Roster.createLink (p1, t1, y);
+ Roster.createLink (p2, t1, y);
+ players1_a = Roster.player(t1, y);
+ players2_a = Roster.player(t2, y);
+ Roster.createLink (p1, t2, y);
+ players1_b = Roster.player(t1, y);
+ players2_b = Roster.player(t2, y);
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="__9DBssOSEeSiR-ar9ioVjA" name="owner" type="__9DA8cOSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBs8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBtMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBtcOSEeSiR-ar9ioVjA" name="house" type="__9DBD8OSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBtsOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBt8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBuMOSEeSiR-ar9ioVjA" name="house_a" type="__9DBD8OSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBucOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBusOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBu8OSEeSiR-ar9ioVjA" name="house_b" type="__9DBD8OSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBvMOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBvcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBvsOSEeSiR-ar9ioVjA" name="owner1_a" type="__9DA8cOSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBv8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBwMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DoAMOSEeSiR-ar9ioVjA" name="house1_a" type="__9DBD8OSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DoAcOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DoAsOSEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DoA8OSEeSiR-ar9ioVjA" name="owner1_b" type="__9DA8cOSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DoBMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DoBcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DoBsOSEeSiR-ar9ioVjA" name="house1_b" type="__9DBD8OSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DoB8OSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DoCMOSEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DoCcOSEeSiR-ar9ioVjA" name="house1_c" type="__9DBD8OSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DoCsOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DoC8OSEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DoDMOSEeSiR-ar9ioVjA" name="players1_a" type="__9DBKMOSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DoDcOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DoDsOSEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DoD8OSEeSiR-ar9ioVjA" name="players2_a" type="__9DBKMOSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DoEMOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DoEcOSEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DoEsOSEeSiR-ar9ioVjA" name="players1_b" type="__9DBKMOSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DoE8OSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DoFMOSEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DoFcOSEeSiR-ar9ioVjA" name="players2_b" type="__9DBKMOSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DoFsOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DoF8OSEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__9DoG8OSEeSiR-ar9ioVjA" name="Expressions_Association$initialization$1" visibility="protected" specification="__9DoHMOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__9DoM8OSEeSiR-ar9ioVjA" annotatedElement="__9DoG8OSEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Association$initialization$1'(){
+ if (this.'Expressions_Association$initializationFlag$1' == null) {
+ this.'Expressions_Association$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__9DoHcOSEeSiR-ar9ioVjA" name="Expressions_Association$method$1" specification="__9DoIcOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__9DoOMOSEeSiR-ar9ioVjA" annotatedElement="__9DoHcOSEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Association$method$1'(): Expressions_Association {
+ this.'Expressions_Association$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="__9DoHsOSEeSiR-ar9ioVjA" type="__9DA8MOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DoH8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DoIMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__9DoJcOSEeSiR-ar9ioVjA" name="destroy$method$1" specification="__9DoJsOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__9DoNcOSEeSiR-ar9ioVjA" annotatedElement="__9DoJcOSEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__9DoJ8OSEeSiR-ar9ioVjA" name="Expressions_Association$behavior$1" visibility="private">
+ <ownedComment xmi:id="__9DoL8OSEeSiR-ar9ioVjA" annotatedElement="__9DoJ8OSEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Association$behavior$1'() {
+ this.test(owner, house, house_a, house_b, owner1_a, house1_a, owner1_b,
+ house1_b, house1_c, players1_a, players2_a, players1_b, players2_b);
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="__9DBicOSEeSiR-ar9ioVjA" name="test" visibility="package" method="__9DBscOSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="__9DBisOSEeSiR-ar9ioVjA" name="owner" type="__9DA8cOSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBi8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBjMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBjcOSEeSiR-ar9ioVjA" name="house" type="__9DBD8OSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBjsOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBj8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBkMOSEeSiR-ar9ioVjA" name="house_a" type="__9DBD8OSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBkcOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBksOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBk8OSEeSiR-ar9ioVjA" name="house_b" type="__9DBD8OSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBlMOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBlcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBlsOSEeSiR-ar9ioVjA" name="owner1_a" type="__9DA8cOSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBl8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBmMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBmcOSEeSiR-ar9ioVjA" name="house1_a" type="__9DBD8OSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBmsOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBm8OSEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBnMOSEeSiR-ar9ioVjA" name="owner1_b" type="__9DA8cOSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBncOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBnsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBn8OSEeSiR-ar9ioVjA" name="house1_b" type="__9DBD8OSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBoMOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBocOSEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBosOSEeSiR-ar9ioVjA" name="house1_c" type="__9DBD8OSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBo8OSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBpMOSEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBpcOSEeSiR-ar9ioVjA" name="players1_a" type="__9DBKMOSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBpsOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBp8OSEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBqMOSEeSiR-ar9ioVjA" name="players2_a" type="__9DBKMOSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBqcOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBqsOSEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBq8OSEeSiR-ar9ioVjA" name="players1_b" type="__9DBKMOSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBrMOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBrcOSEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBrsOSEeSiR-ar9ioVjA" name="players2_b" type="__9DBKMOSEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBr8OSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBsMOSEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="__9DoHMOSEeSiR-ar9ioVjA" name="Expressions_Association$initialization$1" visibility="protected" method="__9DoG8OSEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="__9DoIcOSEeSiR-ar9ioVjA" name="Expressions_Association" method="__9DoHcOSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="__9DoIsOSEeSiR-ar9ioVjA" type="__9DA8MOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DoI8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DoJMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="__9DoJsOSEeSiR-ar9ioVjA" name="destroy" method="__9DoJcOSEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="__9DA8cOSEeSiR-ar9ioVjA" name="Person" visibility="package">
+ <ownedAttribute xmi:id="__9DA8sOSEeSiR-ar9ioVjA" name="name" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DA88OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DA9MOSEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="__9DA9cOSEeSiR-ar9ioVjA" behavior="__9DA9sOSEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__9DBCMOSEeSiR-ar9ioVjA" name="Person$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBCcOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBCsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__9DBAcOSEeSiR-ar9ioVjA" name="Person$method$1" visibility="protected" specification="__9DA-sOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__9DoLcOSEeSiR-ar9ioVjA" annotatedElement="__9DBAcOSEeSiR-ar9ioVjA">
+ <body>activity 'Person$method$1'(in name: String[0..1]): Person {
+if (this.'Person$initializationFlag$1' == null) {
+this.'Person$initialization$1'();
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="__9DBAsOSEeSiR-ar9ioVjA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBA8OSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBBMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBBcOSEeSiR-ar9ioVjA" name="" type="__9DA8cOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBBsOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBB8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__9DA9sOSEeSiR-ar9ioVjA" name="name$defaultValue$1">
+ <ownedComment xmi:id="__9DoLsOSEeSiR-ar9ioVjA" annotatedElement="__9DA9sOSEeSiR-ar9ioVjA">
+ <body>activity 'name$defaultValue$1'(): String {
+ return &quot;Jack&quot;;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="__9DA98OSEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DA-MOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DA-cOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__9DBC8OSEeSiR-ar9ioVjA" name="Person$initialization$1" visibility="protected" specification="__9DBDMOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__9DoPcOSEeSiR-ar9ioVjA" annotatedElement="__9DBC8OSEeSiR-ar9ioVjA">
+ <body>activity 'Person$initialization$1'(){
+ if (this.'Person$initializationFlag$1' == null) {
+ this.name = 'name$defaultValue$1'();
+ this.'Person$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__9DBDcOSEeSiR-ar9ioVjA" name="destroy$method$1" specification="__9DBDsOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__9DoKcOSEeSiR-ar9ioVjA" annotatedElement="__9DBDcOSEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="__9DA-sOSEeSiR-ar9ioVjA" name="Person" visibility="public" method="__9DBAcOSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="__9DA-8OSEeSiR-ar9ioVjA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DA_MOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DA_cOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DA_sOSEeSiR-ar9ioVjA" name="" type="__9DA8cOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DA_8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBAMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="__9DBDMOSEeSiR-ar9ioVjA" name="Person$initialization$1" visibility="protected" method="__9DBC8OSEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="__9DBDsOSEeSiR-ar9ioVjA" name="destroy" method="__9DBDcOSEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="__9DBD8OSEeSiR-ar9ioVjA" name="House" visibility="package">
+ <ownedAttribute xmi:id="__9DBEMOSEeSiR-ar9ioVjA" name="id" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBEcOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBEsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__9DBIcOSEeSiR-ar9ioVjA" name="House$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBIsOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBI8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__9DBGsOSEeSiR-ar9ioVjA" name="House$method$1" visibility="protected" specification="__9DBE8OSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__9DoK8OSEeSiR-ar9ioVjA" annotatedElement="__9DBGsOSEeSiR-ar9ioVjA">
+ <body>activity 'House$method$1'(in id: Integer): House {
+if (this.'House$initializationFlag$1' == null) {
+this.'House$initialization$1'();
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="__9DBG8OSEeSiR-ar9ioVjA" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBHMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBHcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBHsOSEeSiR-ar9ioVjA" name="" type="__9DBD8OSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBH8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBIMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__9DBJMOSEeSiR-ar9ioVjA" name="House$initialization$1" visibility="protected" specification="__9DBJcOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__9DoOcOSEeSiR-ar9ioVjA" annotatedElement="__9DBJMOSEeSiR-ar9ioVjA">
+ <body>activity 'House$initialization$1'(){
+ if (this.'House$initializationFlag$1' == null) {
+ this.'House$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__9DBJsOSEeSiR-ar9ioVjA" name="destroy$method$1" specification="__9DBJ8OSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__9DoN8OSEeSiR-ar9ioVjA" annotatedElement="__9DBJsOSEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="__9DBE8OSEeSiR-ar9ioVjA" name="House" visibility="public" method="__9DBGsOSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="__9DBFMOSEeSiR-ar9ioVjA" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBFcOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBFsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBF8OSEeSiR-ar9ioVjA" name="" type="__9DBD8OSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBGMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBGcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="__9DBJcOSEeSiR-ar9ioVjA" name="House$initialization$1" visibility="protected" method="__9DBJMOSEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="__9DBJ8OSEeSiR-ar9ioVjA" name="destroy" method="__9DBJsOSEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="__9DBKMOSEeSiR-ar9ioVjA" name="Player" visibility="package">
+ <generalization xmi:id="__9DBKcOSEeSiR-ar9ioVjA" general="__9DA8cOSEeSiR-ar9ioVjA"/>
+ <ownedAttribute xmi:id="__9DBOMOSEeSiR-ar9ioVjA" name="Player$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBOcOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBOsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__9DBMcOSEeSiR-ar9ioVjA" name="Player$method$1" visibility="protected" specification="__9DBKsOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__9DoNsOSEeSiR-ar9ioVjA" annotatedElement="__9DBMcOSEeSiR-ar9ioVjA">
+ <body>activity 'Player$method$1'(in name: String[0..1]): Player {
+if (this.'Player$initializationFlag$1' == null) {
+this.'Player$initialization$1'();
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="__9DBMsOSEeSiR-ar9ioVjA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBM8OSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBNMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBNcOSEeSiR-ar9ioVjA" name="" type="__9DBKMOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBNsOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBN8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__9DBO8OSEeSiR-ar9ioVjA" name="Player$initialization$1" visibility="protected" specification="__9DBPMOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__9DoKsOSEeSiR-ar9ioVjA" annotatedElement="__9DBO8OSEeSiR-ar9ioVjA">
+ <body>activity 'Player$initialization$1'(){
+ if (this.'Player$initializationFlag$1' == null) {
+ super.Person::'Person$initialization$1'();
+ this.'Player$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__9DBPcOSEeSiR-ar9ioVjA" name="destroy$method$1" specification="__9DBPsOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__9DoMMOSEeSiR-ar9ioVjA" annotatedElement="__9DBPcOSEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="__9DBKsOSEeSiR-ar9ioVjA" name="Player" visibility="public" method="__9DBMcOSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="__9DBK8OSEeSiR-ar9ioVjA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBLMOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBLcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBLsOSEeSiR-ar9ioVjA" name="" type="__9DBKMOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBL8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBMMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="__9DBPMOSEeSiR-ar9ioVjA" name="Player$initialization$1" visibility="protected" method="__9DBO8OSEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="__9DBPsOSEeSiR-ar9ioVjA" name="destroy" method="__9DBPcOSEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="__9DBP8OSEeSiR-ar9ioVjA" name="Team" visibility="package">
+ <ownedAttribute xmi:id="__9DBQMOSEeSiR-ar9ioVjA" name="name" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBQcOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBQsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__9DBUcOSEeSiR-ar9ioVjA" name="Team$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBUsOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBU8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__9DBSsOSEeSiR-ar9ioVjA" name="Team$method$1" visibility="protected" specification="__9DBQ8OSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__9DoOsOSEeSiR-ar9ioVjA" annotatedElement="__9DBSsOSEeSiR-ar9ioVjA">
+ <body>activity 'Team$method$1'(in name: String): Team {
+if (this.'Team$initializationFlag$1' == null) {
+this.'Team$initialization$1'();
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="__9DBS8OSEeSiR-ar9ioVjA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBTMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBTcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBTsOSEeSiR-ar9ioVjA" name="" type="__9DBP8OSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBT8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBUMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__9DBVMOSEeSiR-ar9ioVjA" name="Team$initialization$1" visibility="protected" specification="__9DBVcOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__9DoLMOSEeSiR-ar9ioVjA" annotatedElement="__9DBVMOSEeSiR-ar9ioVjA">
+ <body>activity 'Team$initialization$1'(){
+ if (this.'Team$initializationFlag$1' == null) {
+ this.'Team$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__9DBVsOSEeSiR-ar9ioVjA" name="destroy$method$1" specification="__9DBV8OSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__9DoO8OSEeSiR-ar9ioVjA" annotatedElement="__9DBVsOSEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="__9DBQ8OSEeSiR-ar9ioVjA" name="Team" visibility="public" method="__9DBSsOSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="__9DBRMOSEeSiR-ar9ioVjA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBRcOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBRsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBR8OSEeSiR-ar9ioVjA" name="" type="__9DBP8OSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBSMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBScOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="__9DBVcOSEeSiR-ar9ioVjA" name="Team$initialization$1" visibility="protected" method="__9DBVMOSEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="__9DBV8OSEeSiR-ar9ioVjA" name="destroy" method="__9DBVsOSEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="__9DBWMOSEeSiR-ar9ioVjA" name="Season" visibility="package">
+ <ownedAttribute xmi:id="__9DBWcOSEeSiR-ar9ioVjA" name="year" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBWsOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBW8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="__9DBasOSEeSiR-ar9ioVjA" name="Season$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBa8OSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBbMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__9DBY8OSEeSiR-ar9ioVjA" name="Season$method$1" visibility="protected" specification="__9DBXMOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__9DoNMOSEeSiR-ar9ioVjA" annotatedElement="__9DBY8OSEeSiR-ar9ioVjA">
+ <body>activity 'Season$method$1'(in year: Integer): Season {
+if (this.'Season$initializationFlag$1' == null) {
+this.'Season$initialization$1'();
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="__9DBZMOSEeSiR-ar9ioVjA" name="year">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBZcOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBZsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBZ8OSEeSiR-ar9ioVjA" name="" type="__9DBWMOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBaMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBacOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__9DBbcOSEeSiR-ar9ioVjA" name="Season$initialization$1" visibility="protected" specification="__9DBbsOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__9DoMcOSEeSiR-ar9ioVjA" annotatedElement="__9DBbcOSEeSiR-ar9ioVjA">
+ <body>activity 'Season$initialization$1'(){
+ if (this.'Season$initializationFlag$1' == null) {
+ this.'Season$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="__9DBb8OSEeSiR-ar9ioVjA" name="destroy$method$1" specification="__9DBcMOSEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="__9DoMsOSEeSiR-ar9ioVjA" annotatedElement="__9DBb8OSEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="__9DBXMOSEeSiR-ar9ioVjA" name="Season" visibility="public" method="__9DBY8OSEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="__9DBXcOSEeSiR-ar9ioVjA" name="year">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBXsOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBX8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="__9DBYMOSEeSiR-ar9ioVjA" name="" type="__9DBWMOSEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBYcOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBYsOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="__9DBbsOSEeSiR-ar9ioVjA" name="Season$initialization$1" visibility="protected" method="__9DBbcOSEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="__9DBcMOSEeSiR-ar9ioVjA" name="destroy" method="__9DBb8OSEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Association" xmi:id="__9DBccOSEeSiR-ar9ioVjA" name="Owns" visibility="package" memberEnd="__9DBcsOSEeSiR-ar9ioVjA __9DBdcOSEeSiR-ar9ioVjA">
+ <ownedEnd xmi:id="__9DBcsOSEeSiR-ar9ioVjA" name="owner" visibility="package" type="__9DA8cOSEeSiR-ar9ioVjA" association="__9DBccOSEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBc8OSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBdMOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="__9DBdcOSEeSiR-ar9ioVjA" name="house" visibility="package" type="__9DBD8OSEeSiR-ar9ioVjA" association="__9DBccOSEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBdsOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBd8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedEnd>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Association" xmi:id="__9DBeMOSEeSiR-ar9ioVjA" name="Owns1" visibility="package" memberEnd="__9DBecOSEeSiR-ar9ioVjA __9DBfMOSEeSiR-ar9ioVjA">
+ <ownedEnd xmi:id="__9DBecOSEeSiR-ar9ioVjA" name="owner1" visibility="package" type="__9DA8cOSEeSiR-ar9ioVjA" association="__9DBeMOSEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBesOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBe8OSEeSiR-ar9ioVjA" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="__9DBfMOSEeSiR-ar9ioVjA" name="house1" visibility="package" type="__9DBD8OSEeSiR-ar9ioVjA" isOrdered="true" association="__9DBeMOSEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBfcOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBfsOSEeSiR-ar9ioVjA" value="*"/>
+ </ownedEnd>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Association" xmi:id="__9DBf8OSEeSiR-ar9ioVjA" name="Roster" visibility="package" memberEnd="__9DBgMOSEeSiR-ar9ioVjA __9DBg8OSEeSiR-ar9ioVjA __9DBhsOSEeSiR-ar9ioVjA">
+ <ownedEnd xmi:id="__9DBgMOSEeSiR-ar9ioVjA" name="player" visibility="package" type="__9DBKMOSEeSiR-ar9ioVjA" association="__9DBf8OSEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBgcOSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBgsOSEeSiR-ar9ioVjA" value="*"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="__9DBg8OSEeSiR-ar9ioVjA" name="team" visibility="package" type="__9DBP8OSEeSiR-ar9ioVjA" association="__9DBf8OSEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBhMOSEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBhcOSEeSiR-ar9ioVjA" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:id="__9DBhsOSEeSiR-ar9ioVjA" name="season" visibility="package" type="__9DBWMOSEeSiR-ar9ioVjA" association="__9DBf8OSEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__9DBh8OSEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__9DBiMOSEeSiR-ar9ioVjA" value="*"/>
+ </ownedEnd>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:id="__fapwcOSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="__fapwsOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="__fapw8OSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="__fapxMOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Create xmi:id="__9DoPsOSEeSiR-ar9ioVjA" base_BehavioralFeature="__9DBE8OSEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="__9DoP8OSEeSiR-ar9ioVjA" base_BehavioralFeature="__9DoIcOSEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="__9DoQMOSEeSiR-ar9ioVjA" base_BehavioralFeature="__9DoJsOSEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="__9DoQcOSEeSiR-ar9ioVjA" base_BehavioralFeature="__9DBV8OSEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="__9DoQsOSEeSiR-ar9ioVjA" base_BehavioralFeature="__9DA-sOSEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="__9DoQ8OSEeSiR-ar9ioVjA" base_BehavioralFeature="__9DBJ8OSEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="__9DoRMOSEeSiR-ar9ioVjA" base_BehavioralFeature="__9DBDsOSEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="__9DoRcOSEeSiR-ar9ioVjA" base_BehavioralFeature="__9DBPsOSEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="__9DoRsOSEeSiR-ar9ioVjA" base_BehavioralFeature="__9DBXMOSEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="__9DoR8OSEeSiR-ar9ioVjA" base_BehavioralFeature="__9DBcMOSEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="__9DoSMOSEeSiR-ar9ioVjA" base_BehavioralFeature="__9DBKsOSEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="__9DoScOSEeSiR-ar9ioVjA" base_BehavioralFeature="__9DBQ8OSEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__9DoSsOSEeSiR-ar9ioVjA" base_Comment="__9DoKcOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__9DoS8OSEeSiR-ar9ioVjA" base_Comment="__9DoKsOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__9DoTMOSEeSiR-ar9ioVjA" base_Comment="__9DoK8OSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__9DoTcOSEeSiR-ar9ioVjA" base_Comment="__9DoLMOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__9DoTsOSEeSiR-ar9ioVjA" base_Comment="__9DoLcOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__9DoT8OSEeSiR-ar9ioVjA" base_Comment="__9DoLsOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__9DoUMOSEeSiR-ar9ioVjA" base_Comment="__9DoL8OSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__9DoUcOSEeSiR-ar9ioVjA" base_Comment="__9DoMMOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__9DoUsOSEeSiR-ar9ioVjA" base_Comment="__9DoMcOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__9DoU8OSEeSiR-ar9ioVjA" base_Comment="__9DoMsOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__9DoVMOSEeSiR-ar9ioVjA" base_Comment="__9DoM8OSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__9DoVcOSEeSiR-ar9ioVjA" base_Comment="__9DoNMOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__9DoVsOSEeSiR-ar9ioVjA" base_Comment="__9DoNcOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__9DoV8OSEeSiR-ar9ioVjA" base_Comment="__9DoNsOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__9DoWMOSEeSiR-ar9ioVjA" base_Comment="__9DoN8OSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__9DoWcOSEeSiR-ar9ioVjA" base_Comment="__9DoOMOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__9DoWsOSEeSiR-ar9ioVjA" base_Comment="__9DoOcOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__9DoW8OSEeSiR-ar9ioVjA" base_Comment="__9DoOsOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__9DoXMOSEeSiR-ar9ioVjA" base_Comment="__9DoO8OSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__9DoXcOSEeSiR-ar9ioVjA" base_Comment="__9DoPMOSEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="__9DoXsOSEeSiR-ar9ioVjA" base_Comment="__9DoPcOSEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Constructor_Destructor.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Constructor_Destructor.uml
new file mode 100644
index 00000000000..0c24748c7ea
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Constructor_Destructor.uml
@@ -0,0 +1,656 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="__9qsAMOSEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_BmgSEMOTEeSiR-ar9ioVjA" name="Expressions_Constructor_Destructor" classifierBehavior="_Bmg5n8OTEeSiR-ar9ioVjA" isActive="true">
+ <ownedComment xmi:id="_Bmg5oMOTEeSiR-ar9ioVjA" annotatedElement="_BmgSEMOTEeSiR-ar9ioVjA">
+ <body>&#xD;
+ * Test constructor and destructor expressions.&#xD;
+ *</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_Bmg5kMOTEeSiR-ar9ioVjA" name="Expressions_Constructor_Destructor$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5kcOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5ksOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Bmg5d8OTEeSiR-ar9ioVjA" name="test$method$1" visibility="protected" specification="_Bmg5XsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Bmg5ocOTEeSiR-ar9ioVjA" annotatedElement="_Bmg5d8OTEeSiR-ar9ioVjA">
+ <body>activity 'test$method$1'(out employee1: Employee, out employee2: Employee, out employee3: Employee, out init: Initialization, out log: Log, out monitor1: Monitor, out monitor2: Monitor, out d: D) {
+ i = 100;
+ name = &quot;Fred&quot;;
+ employee1 = new Employee(i, name);
+ employee2 = new Employee::transferred(employee1);
+ employee3 = new Employee::relocated(employee2);
+ init = new Initialization2();
+ log = new Log();
+ monitor1 = new Monitor();
+ init.destroy();
+ (monitor2 = new Monitor()).destroy(log);
+ d = new D(&quot;test&quot;, new Integer [] { 1, 2 });
+ d = new D(x=>&quot;text&quot;);
+ d = new D('y'=>new Integer [] { 1, 2 }, 'x'=>&quot;Test&quot;);
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Bmg5eMOTEeSiR-ar9ioVjA" name="employee1" type="_BmgSgMOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5ecOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5esOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Bmg5e8OTEeSiR-ar9ioVjA" name="employee2" type="_BmgSgMOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5fMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5fcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Bmg5fsOTEeSiR-ar9ioVjA" name="employee3" type="_BmgSgMOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5f8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5gMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Bmg5gcOTEeSiR-ar9ioVjA" name="init" type="_BmgSEcOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5gsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5g8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Bmg5hMOTEeSiR-ar9ioVjA" name="log" type="_BmgST8OTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5hcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5hsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Bmg5h8OTEeSiR-ar9ioVjA" name="monitor1" type="_BmgSSsOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5iMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5icOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Bmg5isOTEeSiR-ar9ioVjA" name="monitor2" type="_BmgSSsOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5i8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5jMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Bmg5jcOTEeSiR-ar9ioVjA" name="d" type="_Bmg5WcOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5jsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5j8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Bmg5k8OTEeSiR-ar9ioVjA" name="Expressions_Constructor_Destructor$initialization$1" visibility="protected" specification="_Bmg5lMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Bm4sm8OTEeSiR-ar9ioVjA" annotatedElement="_Bmg5k8OTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Constructor_Destructor$initialization$1'(){
+ if (this.'Expressions_Constructor_Destructor$initializationFlag$1' == null) {
+ this.'Expressions_Constructor_Destructor$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Bmg5lcOTEeSiR-ar9ioVjA" name="Expressions_Constructor_Destructor$method$1" specification="_Bmg5mcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Bm4sqMOTEeSiR-ar9ioVjA" annotatedElement="_Bmg5lcOTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Constructor_Destructor$method$1'(): Expressions_Constructor_Destructor {
+ this.'Expressions_Constructor_Destructor$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Bmg5lsOTEeSiR-ar9ioVjA" type="_BmgSEMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5l8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5mMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Bmg5ncOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_Bmg5nsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Bm4sk8OTEeSiR-ar9ioVjA" annotatedElement="_Bmg5ncOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Bmg5n8OTEeSiR-ar9ioVjA" name="Expressions_Constructor_Destructor$behavior$1" visibility="private">
+ <ownedComment xmi:id="_Bm4sp8OTEeSiR-ar9ioVjA" annotatedElement="_Bmg5n8OTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Constructor_Destructor$behavior$1'() {
+ this.test(employee1, employee2, employee3, init, log, monitor1, monitor2, d);
+ WriteLine(&quot;Done&quot;);
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_Bmg5XsOTEeSiR-ar9ioVjA" name="test" visibility="package" method="_Bmg5d8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_Bmg5X8OTEeSiR-ar9ioVjA" name="employee1" type="_BmgSgMOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5YMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5YcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Bmg5YsOTEeSiR-ar9ioVjA" name="employee2" type="_BmgSgMOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5Y8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5ZMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Bmg5ZcOTEeSiR-ar9ioVjA" name="employee3" type="_BmgSgMOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5ZsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5Z8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Bmg5aMOTEeSiR-ar9ioVjA" name="init" type="_BmgSEcOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5acOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5asOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Bmg5a8OTEeSiR-ar9ioVjA" name="log" type="_BmgST8OTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5bMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5bcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Bmg5bsOTEeSiR-ar9ioVjA" name="monitor1" type="_BmgSSsOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5b8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5cMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Bmg5ccOTEeSiR-ar9ioVjA" name="monitor2" type="_BmgSSsOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5csOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5c8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Bmg5dMOTEeSiR-ar9ioVjA" name="d" type="_Bmg5WcOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5dcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5dsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Bmg5lMOTEeSiR-ar9ioVjA" name="Expressions_Constructor_Destructor$initialization$1" visibility="protected" method="_Bmg5k8OTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_Bmg5mcOTEeSiR-ar9ioVjA" name="Expressions_Constructor_Destructor" method="_Bmg5lcOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_Bmg5msOTEeSiR-ar9ioVjA" type="_BmgSEMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5m8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5nMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Bmg5nsOTEeSiR-ar9ioVjA" name="destroy" method="_Bmg5ncOTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_BmgSEcOTEeSiR-ar9ioVjA" name="Initialization" visibility="package">
+ <ownedAttribute xmi:id="_BmgSEsOTEeSiR-ar9ioVjA" name="a" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSE8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSFMOTEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_BmgSFcOTEeSiR-ar9ioVjA" behavior="_BmgSFsOTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BmgSGsOTEeSiR-ar9ioVjA" name="b" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSG8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSHMOTEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_BmgSHcOTEeSiR-ar9ioVjA" behavior="_BmgSHsOTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BmgSIsOTEeSiR-ar9ioVjA" name="Initialization$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSI8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSJMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_BmgSFsOTEeSiR-ar9ioVjA" name="a$defaultValue$1">
+ <ownedComment xmi:id="_Bm4snMOTEeSiR-ar9ioVjA" annotatedElement="_BmgSFsOTEeSiR-ar9ioVjA">
+ <body>activity 'a$defaultValue$1'(): Integer {
+ return this.b->size();
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_BmgSF8OTEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSGMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSGcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_BmgSHsOTEeSiR-ar9ioVjA" name="b$defaultValue$1">
+ <ownedComment xmi:id="_Bm4spMOTEeSiR-ar9ioVjA" annotatedElement="_BmgSHsOTEeSiR-ar9ioVjA">
+ <body>activity 'b$defaultValue$1'(): Integer {
+ return 1;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_BmgSH8OTEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSIMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSIcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_BmgSJcOTEeSiR-ar9ioVjA" name="Initialization$initialization$1" visibility="protected" specification="_BmgSJsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Bm4soMOTEeSiR-ar9ioVjA" annotatedElement="_BmgSJcOTEeSiR-ar9ioVjA">
+ <body>activity 'Initialization$initialization$1'(){
+ if (this.'Initialization$initializationFlag$1' == null) {
+ this.a = 'a$defaultValue$1'();
+ this.b = 'b$defaultValue$1'();
+ this.'Initialization$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_BmgSJ8OTEeSiR-ar9ioVjA" name="Initialization$method$1" specification="_BmgSK8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Bm4sqcOTEeSiR-ar9ioVjA" annotatedElement="_BmgSJ8OTEeSiR-ar9ioVjA">
+ <body>activity 'Initialization$method$1'(): Initialization {
+ this.'Initialization$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_BmgSKMOTEeSiR-ar9ioVjA" type="_BmgSEcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSKcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSKsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_BmgSL8OTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_BmgSMMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Bm4slMOTEeSiR-ar9ioVjA" annotatedElement="_BmgSL8OTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_BmgSJsOTEeSiR-ar9ioVjA" name="Initialization$initialization$1" visibility="protected" method="_BmgSJcOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_BmgSK8OTEeSiR-ar9ioVjA" name="Initialization" method="_BmgSJ8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_BmgSLMOTEeSiR-ar9ioVjA" type="_BmgSEcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSLcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSLsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BmgSMMOTEeSiR-ar9ioVjA" name="destroy" method="_BmgSL8OTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_BmgSMcOTEeSiR-ar9ioVjA" name="Initialization2" visibility="package">
+ <generalization xmi:id="_BmgSMsOTEeSiR-ar9ioVjA" general="_BmgSEcOTEeSiR-ar9ioVjA"/>
+ <ownedAttribute xmi:id="_BmgSM8OTEeSiR-ar9ioVjA" name="c" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSNMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSNcOTEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_BmgSNsOTEeSiR-ar9ioVjA" behavior="_BmgSN8OTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BmgSO8OTEeSiR-ar9ioVjA" name="Initialization2$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSPMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSPcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_BmgSN8OTEeSiR-ar9ioVjA" name="c$defaultValue$1">
+ <ownedComment xmi:id="_Bm4smMOTEeSiR-ar9ioVjA" annotatedElement="_BmgSN8OTEeSiR-ar9ioVjA">
+ <body>activity 'c$defaultValue$1'(): Integer {
+ return this.a + 2;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_BmgSOMOTEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSOcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSOsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_BmgSPsOTEeSiR-ar9ioVjA" name="Initialization2$initialization$1" visibility="protected" specification="_BmgSP8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Bm4smcOTEeSiR-ar9ioVjA" annotatedElement="_BmgSPsOTEeSiR-ar9ioVjA">
+ <body>activity 'Initialization2$initialization$1'(){
+ if (this.'Initialization2$initializationFlag$1' == null) {
+ super.Initialization::'Initialization$initialization$1'();
+ this.c = 'c$defaultValue$1'();
+ this.'Initialization2$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_BmgSQMOTEeSiR-ar9ioVjA" name="Initialization2$method$1" specification="_BmgSRMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Bm4sq8OTEeSiR-ar9ioVjA" annotatedElement="_BmgSQMOTEeSiR-ar9ioVjA">
+ <body>activity 'Initialization2$method$1'(): Initialization2 {
+ this.'Initialization2$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_BmgSQcOTEeSiR-ar9ioVjA" type="_BmgSMcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSQsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSQ8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_BmgSSMOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_BmgSScOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Bm4smsOTEeSiR-ar9ioVjA" annotatedElement="_BmgSSMOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_BmgSP8OTEeSiR-ar9ioVjA" name="Initialization2$initialization$1" visibility="protected" method="_BmgSPsOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_BmgSRMOTEeSiR-ar9ioVjA" name="Initialization2" method="_BmgSQMOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_BmgSRcOTEeSiR-ar9ioVjA" type="_BmgSMcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSRsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSR8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BmgSScOTEeSiR-ar9ioVjA" name="destroy" method="_BmgSSMOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_BmgSSsOTEeSiR-ar9ioVjA" name="Monitor" visibility="package">
+ <ownedAttribute xmi:id="_BmgSc8OTEeSiR-ar9ioVjA" name="Monitor$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSdMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSdcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_BmgSb8OTEeSiR-ar9ioVjA" name="destroy$method$1" visibility="protected" specification="_BmgSS8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Bm4spsOTEeSiR-ar9ioVjA" annotatedElement="_BmgSb8OTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'(in recoveryLog: Log) {
+ recoveryLog.logged = true;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_BmgScMOTEeSiR-ar9ioVjA" name="recoveryLog" type="_BmgST8OTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSccOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgScsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_BmgSdsOTEeSiR-ar9ioVjA" name="Monitor$initialization$1" visibility="protected" specification="_BmgSd8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Bm4sqsOTEeSiR-ar9ioVjA" annotatedElement="_BmgSdsOTEeSiR-ar9ioVjA">
+ <body>activity 'Monitor$initialization$1'(){
+ if (this.'Monitor$initializationFlag$1' == null) {
+ this.'Monitor$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_BmgSeMOTEeSiR-ar9ioVjA" name="Monitor$method$1" specification="_BmgSfMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Bm4socOTEeSiR-ar9ioVjA" annotatedElement="_BmgSeMOTEeSiR-ar9ioVjA">
+ <body>activity 'Monitor$method$1'(): Monitor {
+ this.'Monitor$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_BmgSecOTEeSiR-ar9ioVjA" type="_BmgSSsOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSesOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSe8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_BmgSS8OTEeSiR-ar9ioVjA" name="destroy" visibility="public" method="_BmgSb8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_BmgSTMOTEeSiR-ar9ioVjA" name="recoveryLog" type="_BmgST8OTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSTcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSTsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BmgSd8OTEeSiR-ar9ioVjA" name="Monitor$initialization$1" visibility="protected" method="_BmgSdsOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_BmgSfMOTEeSiR-ar9ioVjA" name="Monitor" method="_BmgSeMOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_BmgSfcOTEeSiR-ar9ioVjA" type="_BmgSSsOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSfsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSf8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_BmgST8OTEeSiR-ar9ioVjA" name="Log" visibility="package">
+ <ownedAttribute xmi:id="_BmgSUMOTEeSiR-ar9ioVjA" name="name" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSUcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSUsOTEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_BmgSU8OTEeSiR-ar9ioVjA" behavior="_BmgSVMOTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BmgSWMOTEeSiR-ar9ioVjA" name="logged" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSWcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSWsOTEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_BmgSW8OTEeSiR-ar9ioVjA" behavior="_BmgSXMOTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BmgSYMOTEeSiR-ar9ioVjA" name="Log$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSYcOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSYsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_BmgSVMOTEeSiR-ar9ioVjA" name="name$defaultValue$1">
+ <ownedComment xmi:id="_Bm4sosOTEeSiR-ar9ioVjA" annotatedElement="_BmgSVMOTEeSiR-ar9ioVjA">
+ <body>activity 'name$defaultValue$1'(): String {
+ return &quot;Default&quot;;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_BmgSVcOTEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSVsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSV8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_BmgSXMOTEeSiR-ar9ioVjA" name="logged$defaultValue$1">
+ <ownedComment xmi:id="_Bm4sksOTEeSiR-ar9ioVjA" annotatedElement="_BmgSXMOTEeSiR-ar9ioVjA">
+ <body>activity 'logged$defaultValue$1'(): Boolean {
+ return false;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_BmgSXcOTEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSXsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSX8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_BmgSY8OTEeSiR-ar9ioVjA" name="Log$initialization$1" visibility="protected" specification="_BmgSZMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Bm4skcOTEeSiR-ar9ioVjA" annotatedElement="_BmgSY8OTEeSiR-ar9ioVjA">
+ <body>activity 'Log$initialization$1'(){
+ if (this.'Log$initializationFlag$1' == null) {
+ this.name = 'name$defaultValue$1'();
+ this.logged = 'logged$defaultValue$1'();
+ this.'Log$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_BmgSZcOTEeSiR-ar9ioVjA" name="Log$method$1" specification="_BmgSacOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Bm4skMOTEeSiR-ar9ioVjA" annotatedElement="_BmgSZcOTEeSiR-ar9ioVjA">
+ <body>activity 'Log$method$1'(): Log {
+ this.'Log$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_BmgSZsOTEeSiR-ar9ioVjA" type="_BmgST8OTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSZ8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSaMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_BmgSbcOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_BmgSbsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Bm4sl8OTEeSiR-ar9ioVjA" annotatedElement="_BmgSbcOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_BmgSZMOTEeSiR-ar9ioVjA" name="Log$initialization$1" visibility="protected" method="_BmgSY8OTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_BmgSacOTEeSiR-ar9ioVjA" name="Log" method="_BmgSZcOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_BmgSasOTEeSiR-ar9ioVjA" type="_BmgST8OTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSa8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSbMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_BmgSbsOTEeSiR-ar9ioVjA" name="destroy" method="_BmgSbcOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_BmgSgMOTEeSiR-ar9ioVjA" name="Employee" visibility="package">
+ <ownedAttribute xmi:id="_BmgSgcOTEeSiR-ar9ioVjA" name="id" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSgsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSg8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BmgShMOTEeSiR-ar9ioVjA" name="name" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgShcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgShsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BmgSh8OTEeSiR-ar9ioVjA" name="transferred" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSiMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSicOTEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_BmgSisOTEeSiR-ar9ioVjA" behavior="_BmgSi8OTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_BmgSj8OTEeSiR-ar9ioVjA" name="relocated" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSkMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSkcOTEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_BmgSksOTEeSiR-ar9ioVjA" behavior="_BmgSk8OTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Bmg5TsOTEeSiR-ar9ioVjA" name="Employee$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5T8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5UMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Bmg5KMOTEeSiR-ar9ioVjA" name="Employee$method$1" visibility="protected" specification="_BmgSl8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Bm4sn8OTEeSiR-ar9ioVjA" annotatedElement="_Bmg5KMOTEeSiR-ar9ioVjA">
+ <body>activity 'Employee$method$1'(in id: Integer, in name: String): Employee {
+if (this.'Employee$initializationFlag$1' == null) {
+this.'Employee$initialization$1'();
+this.id = id; this.name = name;
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Bmg5KcOTEeSiR-ar9ioVjA" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5KsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5K8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Bmg5LMOTEeSiR-ar9ioVjA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5LcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5LsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Bmg5L8OTEeSiR-ar9ioVjA" name="" type="_BmgSgMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5MMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5McOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Bmg5OcOTEeSiR-ar9ioVjA" name="transferred$method$1" visibility="protected" specification="_Bmg5MsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Bm4spcOTEeSiR-ar9ioVjA" annotatedElement="_Bmg5OcOTEeSiR-ar9ioVjA">
+ <body>activity 'transferred$method$1'(in employeeInfo: Employee): Employee {
+if (this.'Employee$initializationFlag$1' == null) {
+this.'Employee$initialization$1'();
+this(employeeInfo.id, employeeInfo.name); this.transferred = true;
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Bmg5OsOTEeSiR-ar9ioVjA" name="employeeInfo" type="_BmgSgMOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5O8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5PMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Bmg5PcOTEeSiR-ar9ioVjA" name="" type="_BmgSgMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5PsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5P8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Bmg5R8OTEeSiR-ar9ioVjA" name="relocated$method$1" visibility="protected" specification="_Bmg5QMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Bm4so8OTEeSiR-ar9ioVjA" annotatedElement="_Bmg5R8OTEeSiR-ar9ioVjA">
+ <body>activity 'relocated$method$1'(in employeeInfo: Employee): Employee {
+if (this.'Employee$initializationFlag$1' == null) {
+this.'Employee$initialization$1'();
+this.transferred(employeeInfo); this.relocated = true;
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Bmg5SMOTEeSiR-ar9ioVjA" name="employeeInfo" type="_BmgSgMOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5ScOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5SsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Bmg5S8OTEeSiR-ar9ioVjA" name="" type="_BmgSgMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5TMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5TcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_BmgSi8OTEeSiR-ar9ioVjA" name="transferred$defaultValue$1">
+ <ownedComment xmi:id="_Bm4slsOTEeSiR-ar9ioVjA" annotatedElement="_BmgSi8OTEeSiR-ar9ioVjA">
+ <body>activity 'transferred$defaultValue$1'(): Boolean {
+ return false;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_BmgSjMOTEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSjcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSjsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_BmgSk8OTEeSiR-ar9ioVjA" name="relocated$defaultValue$1">
+ <ownedComment xmi:id="_Bm4slcOTEeSiR-ar9ioVjA" annotatedElement="_BmgSk8OTEeSiR-ar9ioVjA">
+ <body>activity 'relocated$defaultValue$1'(): Boolean {
+ return false;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_BmgSlMOTEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BmgSlcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BmgSlsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Bmg5UcOTEeSiR-ar9ioVjA" name="Employee$initialization$1" visibility="protected" specification="_Bmg5UsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Bm4sncOTEeSiR-ar9ioVjA" annotatedElement="_Bmg5UcOTEeSiR-ar9ioVjA">
+ <body>activity 'Employee$initialization$1'(){
+ if (this.'Employee$initializationFlag$1' == null) {
+ this.transferred = 'transferred$defaultValue$1'();
+ this.relocated = 'relocated$defaultValue$1'();
+ this.'Employee$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Bmg5U8OTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_Bmg5VMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Bm4snsOTEeSiR-ar9ioVjA" annotatedElement="_Bmg5U8OTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_BmgSl8OTEeSiR-ar9ioVjA" name="Employee" visibility="public" method="_Bmg5KMOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_BmgSmMOTEeSiR-ar9ioVjA" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5IMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5IcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Bmg5IsOTEeSiR-ar9ioVjA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5I8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5JMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Bmg5JcOTEeSiR-ar9ioVjA" name="" type="_BmgSgMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5JsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5J8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Bmg5MsOTEeSiR-ar9ioVjA" name="transferred" visibility="public" method="_Bmg5OcOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_Bmg5M8OTEeSiR-ar9ioVjA" name="employeeInfo" type="_BmgSgMOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5NMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5NcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Bmg5NsOTEeSiR-ar9ioVjA" name="" type="_BmgSgMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5N8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5OMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Bmg5QMOTEeSiR-ar9ioVjA" name="relocated" visibility="public" method="_Bmg5R8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_Bmg5QcOTEeSiR-ar9ioVjA" name="employeeInfo" type="_BmgSgMOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5QsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5Q8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Bmg5RMOTEeSiR-ar9ioVjA" name="" type="_BmgSgMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5RcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5RsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Bmg5UsOTEeSiR-ar9ioVjA" name="Employee$initialization$1" visibility="protected" method="_Bmg5UcOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_Bmg5VMOTEeSiR-ar9ioVjA" name="destroy" method="_Bmg5U8OTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:DataType" xmi:id="_Bmg5VcOTEeSiR-ar9ioVjA" name="D0" visibility="package">
+ <ownedAttribute xmi:id="_Bmg5VsOTEeSiR-ar9ioVjA" name="y" visibility="public" isOrdered="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5V8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5WMOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedAttribute>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:DataType" xmi:id="_Bmg5WcOTEeSiR-ar9ioVjA" name="D" visibility="package">
+ <generalization xmi:id="_Bmg5WsOTEeSiR-ar9ioVjA" general="_Bmg5VcOTEeSiR-ar9ioVjA"/>
+ <ownedAttribute xmi:id="_Bmg5W8OTEeSiR-ar9ioVjA" name="x" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bmg5XMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bmg5XcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:id="__9qsAcOSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="__9qsAsOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="__9qsA8OSEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="__9qsBMOSEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Create xmi:id="_Bm4srMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_BmgSK8OTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_Bm4srcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_BmgSbsOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_Bm4srsOTEeSiR-ar9ioVjA" base_BehavioralFeature="_Bmg5QMOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_Bm4sr8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_Bmg5mcOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_Bm4ssMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_Bmg5VMOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_Bm4sscOTEeSiR-ar9ioVjA" base_BehavioralFeature="_BmgSRMOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_Bm4sssOTEeSiR-ar9ioVjA" base_BehavioralFeature="_BmgSl8OTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_Bm4ss8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_Bmg5nsOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_Bm4stMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_BmgSS8OTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_Bm4stcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_BmgSMMOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_Bm4stsOTEeSiR-ar9ioVjA" base_BehavioralFeature="_BmgSScOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_Bm4st8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_BmgSfMOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_Bm4suMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_BmgSacOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_Bm4sucOTEeSiR-ar9ioVjA" base_BehavioralFeature="_Bmg5MsOTEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4susOTEeSiR-ar9ioVjA" base_Comment="_Bmg5ocOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4su8OTEeSiR-ar9ioVjA" base_Comment="_Bm4skMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4svMOTEeSiR-ar9ioVjA" base_Comment="_Bm4skcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4svcOTEeSiR-ar9ioVjA" base_Comment="_Bm4sksOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4svsOTEeSiR-ar9ioVjA" base_Comment="_Bm4sk8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4sv8OTEeSiR-ar9ioVjA" base_Comment="_Bm4slMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4swMOTEeSiR-ar9ioVjA" base_Comment="_Bm4slcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4swcOTEeSiR-ar9ioVjA" base_Comment="_Bm4slsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4swsOTEeSiR-ar9ioVjA" base_Comment="_Bm4sl8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4sw8OTEeSiR-ar9ioVjA" base_Comment="_Bm4smMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4sxMOTEeSiR-ar9ioVjA" base_Comment="_Bm4smcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4sxcOTEeSiR-ar9ioVjA" base_Comment="_Bm4smsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4sxsOTEeSiR-ar9ioVjA" base_Comment="_Bm4sm8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4sx8OTEeSiR-ar9ioVjA" base_Comment="_Bm4snMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4syMOTEeSiR-ar9ioVjA" base_Comment="_Bm4sncOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4sycOTEeSiR-ar9ioVjA" base_Comment="_Bm4snsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4sysOTEeSiR-ar9ioVjA" base_Comment="_Bm4sn8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4sy8OTEeSiR-ar9ioVjA" base_Comment="_Bm4soMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4szMOTEeSiR-ar9ioVjA" base_Comment="_Bm4socOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4szcOTEeSiR-ar9ioVjA" base_Comment="_Bm4sosOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4szsOTEeSiR-ar9ioVjA" base_Comment="_Bm4so8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4sz8OTEeSiR-ar9ioVjA" base_Comment="_Bm4spMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4s0MOTEeSiR-ar9ioVjA" base_Comment="_Bm4spcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4s0cOTEeSiR-ar9ioVjA" base_Comment="_Bm4spsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4s0sOTEeSiR-ar9ioVjA" base_Comment="_Bm4sp8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4s08OTEeSiR-ar9ioVjA" base_Comment="_Bm4sqMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4s1MOTEeSiR-ar9ioVjA" base_Comment="_Bm4sqcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4s1cOTEeSiR-ar9ioVjA" base_Comment="_Bm4sqsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Bm4s1sOTEeSiR-ar9ioVjA" base_Comment="_Bm4sq8OTEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Increment_Decrement.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Increment_Decrement.uml
new file mode 100644
index 00000000000..7147e4f393b
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Increment_Decrement.uml
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_xYhMMIKGEeSFEt9m3bH63A" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_xwPIoIKGEeSFEt9m3bH63A" name="Expressions_Increment_Decrement" classifierBehavior="_xwPv5IKGEeSFEt9m3bH63A" isActive="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xwPv5YKGEeSFEt9m3bH63A" annotatedElement="_xwPIoIKGEeSFEt9m3bH63A">
+ <body>&#xD;
+ * Test increment and decrement expressions.&#xD;
+ *</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xwPIoYKGEeSFEt9m3bH63A" name="x" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xwPIooKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xwPIo4KGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xwPIpIKGEeSFEt9m3bH63A" name="list" visibility="private" isOrdered="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xwPIpYKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xwPIpoKGEeSFEt9m3bH63A" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xwPv1YKGEeSFEt9m3bH63A" name="Expressions_Increment_Decrement$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xwPv1oKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xwPv14KGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_xwPvwoKGEeSFEt9m3bH63A" name="test$method$1" visibility="protected" specification="_xwPIp4KGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xwPv6YKGEeSFEt9m3bH63A" annotatedElement="_xwPvwoKGEeSFEt9m3bH63A">
+ <body>activity 'test$method$1'(out s: Integer[0..*] sequence, out i: Integer, out x: Integer, out list: Integer[0..*] sequence, out j: Integer, out k: Integer) { s = new Integer [] { 1, 2 };
+i = 1;
+this.x = 2;
+this.list = s;
+++ i;
+++ i;
+j = -- i;
+++ s[i];
+++ s[i];
+-- s[i];
+++ this.x;
+++ this.x;
+-- this.x;
+++ this.list[i];
+++ this.list[i];
+-- this.list[i];
+++ i;
+k = -- i;
+++ s[i];
+-- s[i];
+++ this.x;
+-- this.x;
+++ this.list[i];
+-- this.list[i];
+x = this.x;
+list = this.list;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xwPvw4KGEeSFEt9m3bH63A" name="s" isOrdered="true" isUnique="false" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xwPvxIKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xwPvxYKGEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xwPvxoKGEeSFEt9m3bH63A" name="i" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xwPvx4KGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xwPvyIKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xwPvyYKGEeSFEt9m3bH63A" name="x" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xwPvyoKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xwPvy4KGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xwPvzIKGEeSFEt9m3bH63A" name="list" isOrdered="true" isUnique="false" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xwPvzYKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xwPvzoKGEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xwPvz4KGEeSFEt9m3bH63A" name="j" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xwPv0IKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xwPv0YKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xwPv0oKGEeSFEt9m3bH63A" name="k" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xwPv04KGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xwPv1IKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_xwPv2IKGEeSFEt9m3bH63A" name="Expressions_Increment_Decrement$initialization$1" visibility="protected" specification="_xwPv2YKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xwPv54KGEeSFEt9m3bH63A" annotatedElement="_xwPv2IKGEeSFEt9m3bH63A">
+ <body>activity 'Expressions_Increment_Decrement$initialization$1'(){
+ if (this.'Expressions_Increment_Decrement$initializationFlag$1' == null) {
+ this.'Expressions_Increment_Decrement$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_xwPv2oKGEeSFEt9m3bH63A" name="Expressions_Increment_Decrement$method$1" specification="_xwPv3oKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xwPv6IKGEeSFEt9m3bH63A" annotatedElement="_xwPv2oKGEeSFEt9m3bH63A">
+ <body>activity 'Expressions_Increment_Decrement$method$1'(): Expressions_Increment_Decrement {
+ this.'Expressions_Increment_Decrement$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xwPv24KGEeSFEt9m3bH63A" type="_xwPIoIKGEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xwPv3IKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xwPv3YKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_xwPv4oKGEeSFEt9m3bH63A" name="destroy$method$1" specification="_xwPv44KGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xwPv5oKGEeSFEt9m3bH63A" annotatedElement="_xwPv4oKGEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_xwPv5IKGEeSFEt9m3bH63A" name="Expressions_Increment_Decrement$behavior$1" visibility="private">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xwPv6oKGEeSFEt9m3bH63A" annotatedElement="_xwPv5IKGEeSFEt9m3bH63A">
+ <body>activity 'Expressions_Increment_Decrement$behavior$1'() { this.test(s, i, x, list, j, k);
+AssertList(&quot;s&quot;, s, new Integer [] { 1, 3 });
+AssertEqual(&quot;i&quot;, i, 2);
+AssertEqual(&quot;x&quot;, x, 3);
+AssertList(&quot;list&quot;, list, new Integer [] { 1, 3 });
+AssertEqual(&quot;j&quot;, j, 3);
+AssertEqual(&quot;k&quot;, k, 2);
+WriteLine(&quot;Done&quot;);
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xwPIp4KGEeSFEt9m3bH63A" name="test" visibility="public" method="_xwPvwoKGEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xwPvsIKGEeSFEt9m3bH63A" name="s" isOrdered="true" isUnique="false" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xwPvsYKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xwPvsoKGEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xwPvs4KGEeSFEt9m3bH63A" name="i" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xwPvtIKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xwPvtYKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xwPvtoKGEeSFEt9m3bH63A" name="x" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xwPvt4KGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xwPvuIKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xwPvuYKGEeSFEt9m3bH63A" name="list" isOrdered="true" isUnique="false" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xwPvuoKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xwPvu4KGEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xwPvvIKGEeSFEt9m3bH63A" name="j" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xwPvvYKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xwPvvoKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xwPvv4KGEeSFEt9m3bH63A" name="k" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xwPvwIKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xwPvwYKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xwPv2YKGEeSFEt9m3bH63A" name="Expressions_Increment_Decrement$initialization$1" visibility="protected" method="_xwPv2IKGEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xwPv3oKGEeSFEt9m3bH63A" name="Expressions_Increment_Decrement" method="_xwPv2oKGEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_xwPv34KGEeSFEt9m3bH63A" type="_xwPIoIKGEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xwPv4IKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xwPv4YKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_xwPv44KGEeSFEt9m3bH63A" name="destroy" method="_xwPv4oKGEeSFEt9m3bH63A"/>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_xYhMMYKGEeSFEt9m3bH63A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xYhMMoKGEeSFEt9m3bH63A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_r3ZLZLeLEeS_zZpc9I-Bsg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r3ZycLeLEeS_zZpc9I-Bsg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <ActionLanguage:TextualRepresentation xmi:id="_xwPv64KGEeSFEt9m3bH63A" base_Comment="_xwPv5oKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_xwPv7IKGEeSFEt9m3bH63A" base_Comment="_xwPv54KGEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Create xmi:id="_xwPv7YKGEeSFEt9m3bH63A" base_BehavioralFeature="_xwPv3oKGEeSFEt9m3bH63A"/>
+ <standard:Destroy xmi:id="_xwPv7oKGEeSFEt9m3bH63A" base_BehavioralFeature="_xwPv44KGEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_xwPv74KGEeSFEt9m3bH63A" base_Comment="_xwPv6IKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_xwPv8IKGEeSFEt9m3bH63A" base_Comment="_xwPv6YKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_xwPv8YKGEeSFEt9m3bH63A" base_Comment="_xwPv6oKGEeSFEt9m3bH63A" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Invocation.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Invocation.uml
new file mode 100644
index 00000000000..8664a9773d2
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Invocation.uml
@@ -0,0 +1,535 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_BnoTcMOTEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_C3upYMOTEeSiR-ar9ioVjA" name="Expressions_Invocation" classifierBehavior="_C3uqM8OTEeSiR-ar9ioVjA" isActive="true">
+ <ownedComment xmi:id="_C3uqNMOTEeSiR-ar9ioVjA" annotatedElement="_C3upYMOTEeSiR-ar9ioVjA">
+ <body>&#xD;
+ * Test behavior, operation and super invocation expressions.&#xD;
+ *</body>
+ </ownedComment>
+ <elementImport xmi:id="_C3uqNcOTEeSiR-ar9ioVjA" visibility="private">
+ <alias xsi:nil="true"/>
+ <importedElement xmi:type="uml:FunctionBehavior" href="pathmap://PAPYRUS_fUML_LIBRARY/fUML_Library.uml#PrimitiveBehaviors-IntegerFunctions-ToString"/>
+ </elementImport>
+ <ownedAttribute xmi:id="_C3uqJMOTEeSiR-ar9ioVjA" name="Expressions_Invocation$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3uqJcOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3uqJsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C3up9sOTEeSiR-ar9ioVjA" name="test$method$1" visibility="protected" specification="_C3upyMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_C3uqPsOTEeSiR-ar9ioVjA" annotatedElement="_C3up9sOTEeSiR-ar9ioVjA">
+ <body>activity 'test$method$1'(out c: Integer, out b: BitString, inout status1: String, out status2: String, out statuses: String[0..*], out i: Integer, out j: Integer, out k: Integer, out l: Integer, out m: Integer, out n: Integer, out n1: Integer, out obj: Super1, out list: Super[0..*] sequence, out ns: Integer) {
+ c = + 0;
+ b = (BitString) c;
+ C(b, c);
+ C(c, b);
+ B(status1);
+ B(status2);
+ B(statuses);
+ B(s);
+ i = A(1, true);
+ j = A(x=>2, y=>true);
+ k = A(y=>true, x=>3);
+ l = A(x=>4);
+ m = A(5, null);
+ n1 = ComputeInterest(n = 3);
+ (obj = new Super1()).'do'(n);
+ new Super();
+ list = (Super) null;
+ list = including(list, obj);
+ ns = size(Super.allInstances ());
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_C3up98OTEeSiR-ar9ioVjA" name="c" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3up-MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3up-cOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3up-sOTEeSiR-ar9ioVjA" name="b" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf-Library-PrimitiveTypes-BitString"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3up-8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3up_MOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3up_cOTEeSiR-ar9ioVjA" name="status1" direction="inout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3up_sOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3up_8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3uqAMOTEeSiR-ar9ioVjA" name="status2" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3uqAcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3uqAsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3uqA8OTEeSiR-ar9ioVjA" name="statuses" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3uqBMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3uqBcOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3uqBsOTEeSiR-ar9ioVjA" name="i" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3uqB8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3uqCMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3uqCcOTEeSiR-ar9ioVjA" name="j" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3uqCsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3uqC8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3uqDMOTEeSiR-ar9ioVjA" name="k" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3uqDcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3uqDsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3uqD8OTEeSiR-ar9ioVjA" name="l" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3uqEMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3uqEcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3uqEsOTEeSiR-ar9ioVjA" name="m" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3uqE8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3uqFMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3uqFcOTEeSiR-ar9ioVjA" name="n" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3uqFsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3uqF8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3uqGMOTEeSiR-ar9ioVjA" name="n1" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3uqGcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3uqGsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3uqG8OTEeSiR-ar9ioVjA" name="obj" type="_C3upr8OTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3uqHMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3uqHcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3uqHsOTEeSiR-ar9ioVjA" name="list" type="_C3upfcOTEeSiR-ar9ioVjA" isOrdered="true" isUnique="false" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3uqH8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3uqIMOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3uqIcOTEeSiR-ar9ioVjA" name="ns" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3uqIsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3uqI8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C3uqJ8OTEeSiR-ar9ioVjA" name="Expressions_Invocation$initialization$1" visibility="protected" specification="_C3uqKMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_C3uqOsOTEeSiR-ar9ioVjA" annotatedElement="_C3uqJ8OTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Invocation$initialization$1'(){
+ if (this.'Expressions_Invocation$initializationFlag$1' == null) {
+ this.'Expressions_Invocation$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C3uqKcOTEeSiR-ar9ioVjA" name="Expressions_Invocation$method$1" specification="_C3uqLcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_C3uqOMOTEeSiR-ar9ioVjA" annotatedElement="_C3uqKcOTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Invocation$method$1'(): Expressions_Invocation {
+ this.'Expressions_Invocation$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_C3uqKsOTEeSiR-ar9ioVjA" type="_C3upYMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3uqK8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3uqLMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C3uqMcOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_C3uqMsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_C3uqRcOTEeSiR-ar9ioVjA" annotatedElement="_C3uqMcOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C3uqM8OTEeSiR-ar9ioVjA" name="Expressions_Invocation$behavior$1" visibility="private">
+ <ownedComment xmi:id="_C3uqQsOTEeSiR-ar9ioVjA" annotatedElement="_C3uqM8OTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Invocation$behavior$1'() {
+ status1 = &quot;Blah&quot;;
+ this.test(c, b, status1, status2, statuses, i, j, k, l, m, n, n1, obj, list,
+ ns);
+ WriteLine(&quot;Done&quot;);
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_C3upyMOTEeSiR-ar9ioVjA" name="test" visibility="package" method="_C3up9sOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_C3upycOTEeSiR-ar9ioVjA" name="c" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3upysOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3upy8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3upzMOTEeSiR-ar9ioVjA" name="b" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf-Library-PrimitiveTypes-BitString"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3upzcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3upzsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3upz8OTEeSiR-ar9ioVjA" name="status1" direction="inout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3up0MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3up0cOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3up0sOTEeSiR-ar9ioVjA" name="status2" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3up08OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3up1MOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3up1cOTEeSiR-ar9ioVjA" name="statuses" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3up1sOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3up18OTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3up2MOTEeSiR-ar9ioVjA" name="i" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3up2cOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3up2sOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3up28OTEeSiR-ar9ioVjA" name="j" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3up3MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3up3cOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3up3sOTEeSiR-ar9ioVjA" name="k" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3up38OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3up4MOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3up4cOTEeSiR-ar9ioVjA" name="l" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3up4sOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3up48OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3up5MOTEeSiR-ar9ioVjA" name="m" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3up5cOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3up5sOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3up58OTEeSiR-ar9ioVjA" name="n" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3up6MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3up6cOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3up6sOTEeSiR-ar9ioVjA" name="n1" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3up68OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3up7MOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3up7cOTEeSiR-ar9ioVjA" name="obj" type="_C3upr8OTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3up7sOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3up78OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3up8MOTEeSiR-ar9ioVjA" name="list" type="_C3upfcOTEeSiR-ar9ioVjA" isOrdered="true" isUnique="false" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3up8cOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3up8sOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3up88OTEeSiR-ar9ioVjA" name="ns" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3up9MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3up9cOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_C3uqKMOTEeSiR-ar9ioVjA" name="Expressions_Invocation$initialization$1" visibility="protected" method="_C3uqJ8OTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_C3uqLcOTEeSiR-ar9ioVjA" name="Expressions_Invocation" method="_C3uqKcOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_C3uqLsOTEeSiR-ar9ioVjA" type="_C3upYMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3uqL8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3uqMMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_C3uqMsOTEeSiR-ar9ioVjA" name="destroy" method="_C3uqMcOTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Activity" xmi:id="_C3upYcOTEeSiR-ar9ioVjA" name="A" visibility="package">
+ <ownedComment xmi:id="_C3uqP8OTEeSiR-ar9ioVjA" annotatedElement="_C3upYcOTEeSiR-ar9ioVjA">
+ <body>activity A(in x: Integer, in y: Boolean[0..1]): Integer {
+ return x;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_C3upYsOTEeSiR-ar9ioVjA" name="x">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3upY8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3upZMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3upZcOTEeSiR-ar9ioVjA" name="y">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3upZsOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3upZ8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3upaMOTEeSiR-ar9ioVjA" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3upacOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3upasOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Activity" xmi:id="_C3upa8OTEeSiR-ar9ioVjA" name="ComputeInterest" visibility="package">
+ <ownedComment xmi:id="_C3uqNsOTEeSiR-ar9ioVjA" annotatedElement="_C3upa8OTEeSiR-ar9ioVjA">
+ <body>activity ComputeInterest(in amount: Integer): Integer {
+ return amount;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_C3upbMOTEeSiR-ar9ioVjA" name="amount">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3upbcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3upbsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3upb8OTEeSiR-ar9ioVjA" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3upcMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3upccOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Activity" xmi:id="_C3upcsOTEeSiR-ar9ioVjA" name="B" visibility="package">
+ <ownedComment xmi:id="_C3uqRMOTEeSiR-ar9ioVjA" annotatedElement="_C3upcsOTEeSiR-ar9ioVjA">
+ <body>activity B(out s: String) {
+ s = &quot;Hello&quot;;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_C3upc8OTEeSiR-ar9ioVjA" name="s" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3updMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3updcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Activity" xmi:id="_C3updsOTEeSiR-ar9ioVjA" name="C" visibility="package">
+ <ownedComment xmi:id="_C3uqQcOTEeSiR-ar9ioVjA" annotatedElement="_C3updsOTEeSiR-ar9ioVjA">
+ <body>activity C(in b: BitString, out c: Integer) {
+ c = 5;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_C3upd8OTEeSiR-ar9ioVjA" name="b">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf-Library-PrimitiveTypes-BitString"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3upeMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3upecOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_C3upesOTEeSiR-ar9ioVjA" name="c" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3upe8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3upfMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_C3upfcOTEeSiR-ar9ioVjA" name="Super" visibility="package">
+ <ownedAttribute xmi:id="_C3upfsOTEeSiR-ar9ioVjA" name="value" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3upf8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3upgMOTEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_C3upgcOTEeSiR-ar9ioVjA" behavior="_C3upgsOTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_C3uphsOTEeSiR-ar9ioVjA" name="name" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3uph8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3upiMOTEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_C3upicOTEeSiR-ar9ioVjA" behavior="_C3upisOTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_C3upoMOTEeSiR-ar9ioVjA" name="Super$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3upocOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3uposOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C3upj8OTEeSiR-ar9ioVjA" name="run$method$1" visibility="protected" specification="_C3upjsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_C3uqScOTEeSiR-ar9ioVjA" annotatedElement="_C3upj8OTEeSiR-ar9ioVjA">
+ <body>activity 'run$method$1'() {
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C3uplMOTEeSiR-ar9ioVjA" name="initialize$method$1" visibility="protected" specification="_C3upkMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_C3uqO8OTEeSiR-ar9ioVjA" annotatedElement="_C3uplMOTEeSiR-ar9ioVjA">
+ <body>activity 'initialize$method$1'(in value: Integer) {
+ this.value = value;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_C3uplcOTEeSiR-ar9ioVjA" name="value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3uplsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3upl8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C3upnMOTEeSiR-ar9ioVjA" name="setName$method$1" visibility="protected" specification="_C3upmMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_C3uqR8OTEeSiR-ar9ioVjA" annotatedElement="_C3upnMOTEeSiR-ar9ioVjA">
+ <body>activity 'setName$method$1'(in name: String) {
+ this.name = name;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_C3upncOTEeSiR-ar9ioVjA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3upnsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3upn8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C3upgsOTEeSiR-ar9ioVjA" name="value$defaultValue$1">
+ <ownedComment xmi:id="_C3uqPMOTEeSiR-ar9ioVjA" annotatedElement="_C3upgsOTEeSiR-ar9ioVjA">
+ <body>activity 'value$defaultValue$1'(): Integer {
+ return 0;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_C3upg8OTEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3uphMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3uphcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C3upisOTEeSiR-ar9ioVjA" name="name$defaultValue$1">
+ <ownedComment xmi:id="_C3uqN8OTEeSiR-ar9ioVjA" annotatedElement="_C3upisOTEeSiR-ar9ioVjA">
+ <body>activity 'name$defaultValue$1'(): String {
+ return &quot;&quot;;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_C3upi8OTEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3upjMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3upjcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C3upo8OTEeSiR-ar9ioVjA" name="Super$initialization$1" visibility="protected" specification="_C3uppMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_C3uqQMOTEeSiR-ar9ioVjA" annotatedElement="_C3upo8OTEeSiR-ar9ioVjA">
+ <body>activity 'Super$initialization$1'(){
+ if (this.'Super$initializationFlag$1' == null) {
+ this.value = 'value$defaultValue$1'();
+ this.name = 'name$defaultValue$1'();
+ this.'Super$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C3uppcOTEeSiR-ar9ioVjA" name="Super$method$1" specification="_C3upqcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_C3uqRsOTEeSiR-ar9ioVjA" annotatedElement="_C3uppcOTEeSiR-ar9ioVjA">
+ <body>activity 'Super$method$1'(): Super {
+ this.'Super$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_C3uppsOTEeSiR-ar9ioVjA" type="_C3upfcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3upp8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3upqMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C3uprcOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_C3uprsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_C3uqSMOTEeSiR-ar9ioVjA" annotatedElement="_C3uprcOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_C3upjsOTEeSiR-ar9ioVjA" name="run" visibility="public" method="_C3upj8OTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_C3upkMOTEeSiR-ar9ioVjA" name="initialize" visibility="public" method="_C3uplMOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_C3upkcOTEeSiR-ar9ioVjA" name="value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3upksOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3upk8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_C3upmMOTEeSiR-ar9ioVjA" name="setName" visibility="public" method="_C3upnMOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_C3upmcOTEeSiR-ar9ioVjA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3upmsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3upm8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_C3uppMOTEeSiR-ar9ioVjA" name="Super$initialization$1" visibility="protected" method="_C3upo8OTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_C3upqcOTEeSiR-ar9ioVjA" name="Super" method="_C3uppcOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_C3upqsOTEeSiR-ar9ioVjA" type="_C3upfcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3upq8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3uprMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_C3uprsOTEeSiR-ar9ioVjA" name="destroy" method="_C3uprcOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_C3upr8OTEeSiR-ar9ioVjA" name="Super1" visibility="package">
+ <generalization xmi:id="_C3upsMOTEeSiR-ar9ioVjA" general="_C3upfcOTEeSiR-ar9ioVjA"/>
+ <ownedAttribute xmi:id="_C3upucOTEeSiR-ar9ioVjA" name="Super1$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3upusOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3upu8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C3uptcOTEeSiR-ar9ioVjA" name="do$method$1" visibility="protected" specification="_C3upscOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_C3uqPcOTEeSiR-ar9ioVjA" annotatedElement="_C3uptcOTEeSiR-ar9ioVjA">
+ <body>activity 'do$method$1'(in i: Integer) {
+ super.run();
+ super.initialize(i);
+ super.Super::setName(&quot;Fred&quot;);
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_C3uptsOTEeSiR-ar9ioVjA" name="i">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3upt8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3upuMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C3upvMOTEeSiR-ar9ioVjA" name="Super1$initialization$1" visibility="protected" specification="_C3upvcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_C3uqSsOTEeSiR-ar9ioVjA" annotatedElement="_C3upvMOTEeSiR-ar9ioVjA">
+ <body>activity 'Super1$initialization$1'(){
+ if (this.'Super1$initializationFlag$1' == null) {
+ super.Super::'Super$initialization$1'();
+ this.'Super1$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C3upvsOTEeSiR-ar9ioVjA" name="Super1$method$1" specification="_C3upwsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_C3uqQ8OTEeSiR-ar9ioVjA" annotatedElement="_C3upvsOTEeSiR-ar9ioVjA">
+ <body>activity 'Super1$method$1'(): Super1 {
+ this.'Super1$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_C3upv8OTEeSiR-ar9ioVjA" type="_C3upr8OTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3upwMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3upwcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C3upxsOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_C3upx8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_C3uqOcOTEeSiR-ar9ioVjA" annotatedElement="_C3upxsOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_C3upscOTEeSiR-ar9ioVjA" name="do" visibility="public" method="_C3uptcOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_C3upssOTEeSiR-ar9ioVjA" name="i">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3ups8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3uptMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_C3upvcOTEeSiR-ar9ioVjA" name="Super1$initialization$1" visibility="protected" method="_C3upvMOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_C3upwsOTEeSiR-ar9ioVjA" name="Super1" method="_C3upvsOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_C3upw8OTEeSiR-ar9ioVjA" type="_C3upr8OTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C3upxMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C3upxcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_C3upx8OTEeSiR-ar9ioVjA" name="destroy" method="_C3upxsOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:id="_BnoTccOTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_BnoTcsOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_BnoTc8OTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_BnoTdMOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Create xmi:id="_C3vQcMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_C3upwsOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_C3vQccOTEeSiR-ar9ioVjA" base_BehavioralFeature="_C3uqLcOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_C3vQcsOTEeSiR-ar9ioVjA" base_BehavioralFeature="_C3uprsOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_C3vQc8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_C3upx8OTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_C3vQdMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_C3uqMsOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_C3vQdcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_C3upqcOTEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C3vQdsOTEeSiR-ar9ioVjA" base_Comment="_C3uqNsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C3vQd8OTEeSiR-ar9ioVjA" base_Comment="_C3uqN8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C3vQeMOTEeSiR-ar9ioVjA" base_Comment="_C3uqOMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C3vQecOTEeSiR-ar9ioVjA" base_Comment="_C3uqOcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C3vQesOTEeSiR-ar9ioVjA" base_Comment="_C3uqOsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C3vQe8OTEeSiR-ar9ioVjA" base_Comment="_C3uqO8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C3vQfMOTEeSiR-ar9ioVjA" base_Comment="_C3uqPMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C3vQfcOTEeSiR-ar9ioVjA" base_Comment="_C3uqPcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C3vQfsOTEeSiR-ar9ioVjA" base_Comment="_C3uqPsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C3vQf8OTEeSiR-ar9ioVjA" base_Comment="_C3uqP8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C3vQgMOTEeSiR-ar9ioVjA" base_Comment="_C3uqQMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C3vQgcOTEeSiR-ar9ioVjA" base_Comment="_C3uqQcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C3vQgsOTEeSiR-ar9ioVjA" base_Comment="_C3uqQsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C3vQg8OTEeSiR-ar9ioVjA" base_Comment="_C3uqQ8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C3vQhMOTEeSiR-ar9ioVjA" base_Comment="_C3uqRMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C3vQhcOTEeSiR-ar9ioVjA" base_Comment="_C3uqRcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C3vQhsOTEeSiR-ar9ioVjA" base_Comment="_C3uqRsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C3vQh8OTEeSiR-ar9ioVjA" base_Comment="_C3uqR8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C3vQiMOTEeSiR-ar9ioVjA" base_Comment="_C3uqSMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C3vQicOTEeSiR-ar9ioVjA" base_Comment="_C3uqScOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C3vQisOTEeSiR-ar9ioVjA" base_Comment="_C3uqSsOTEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Invocation_Reception.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Invocation_Reception.uml
new file mode 100644
index 00000000000..38dcb4a6434
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Invocation_Reception.uml
@@ -0,0 +1,308 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_C4YwsMOTEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_Dl4I0MOTEeSiR-ar9ioVjA" name="Expressions_Invocation_Reception" classifierBehavior="_Dl4v4MOTEeSiR-ar9ioVjA" isActive="true">
+ <ownedComment xmi:id="_Dl4v4cOTEeSiR-ar9ioVjA" annotatedElement="_Dl4I0MOTEeSiR-ar9ioVjA">
+ <body>
+ * Test reception invocation expressions.
+ </body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_Dl4JK8OTEeSiR-ar9ioVjA" name="Expressions_Invocation_Reception$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dl4JLMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dl4JLcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Dl4JLsOTEeSiR-ar9ioVjA" name="Expressions_Invocation_Reception$initialization$1" visibility="protected" specification="_Dl4JL8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Dl4v58OTEeSiR-ar9ioVjA" annotatedElement="_Dl4JLsOTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Invocation_Reception$initialization$1'(){
+ if (this.'Expressions_Invocation_Reception$initializationFlag$1' == null) {
+ this.'Expressions_Invocation_Reception$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Dl4JMMOTEeSiR-ar9ioVjA" name="Expressions_Invocation_Reception$method$1" specification="_Dl4JNMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Dl4v68OTEeSiR-ar9ioVjA" annotatedElement="_Dl4JMMOTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Invocation_Reception$method$1'(): Expressions_Invocation_Reception {
+ this.'Expressions_Invocation_Reception$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Dl4JMcOTEeSiR-ar9ioVjA" type="_Dl4I0MOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dl4JMsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dl4JM8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Dl4JOMOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_Dl4JOcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Dl4v6MOTEeSiR-ar9ioVjA" annotatedElement="_Dl4JOMOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Dl4v4MOTEeSiR-ar9ioVjA" name="Expressions_Invocation_Reception$behavior$1" visibility="private">
+ <ownedComment xmi:id="_Dl4v4sOTEeSiR-ar9ioVjA" annotatedElement="_Dl4v4MOTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Invocation_Reception$behavior$1'() {
+ new TestRunner().Start();
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_Dl4JL8OTEeSiR-ar9ioVjA" name="Expressions_Invocation_Reception$initialization$1" visibility="protected" method="_Dl4JLsOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_Dl4JNMOTEeSiR-ar9ioVjA" name="Expressions_Invocation_Reception" method="_Dl4JMMOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_Dl4JNcOTEeSiR-ar9ioVjA" type="_Dl4I0MOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dl4JNsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dl4JN8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Dl4JOcOTEeSiR-ar9ioVjA" name="destroy" method="_Dl4JOMOTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_Dl4I0cOTEeSiR-ar9ioVjA" name="Receiver" visibility="public" classifierBehavior="_Dl4JKsOTEeSiR-ar9ioVjA" isActive="true">
+ <ownedAttribute xmi:id="_Dl4I0sOTEeSiR-ar9ioVjA" name="a" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dl4I08OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dl4I1MOTEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_Dl4I1cOTEeSiR-ar9ioVjA" behavior="_Dl4I1sOTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Dl4I2sOTEeSiR-ar9ioVjA" name="x" visibility="public" isOrdered="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dl4I28OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dl4I3MOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Dl4I3cOTEeSiR-ar9ioVjA" name="y" visibility="public" isOrdered="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dl4I3sOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dl4I38OTEeSiR-ar9ioVjA" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Dl4I4MOTEeSiR-ar9ioVjA" name="tester" visibility="public" type="_Dl4I48OTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dl4I4cOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dl4I4sOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Dl4JIMOTEeSiR-ar9ioVjA" name="Receiver$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dl4JIcOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dl4JIsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Dl4JDcOTEeSiR-ar9ioVjA" name="Receiver$method$1" visibility="protected" specification="_Dl4JBsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Dl4v78OTEeSiR-ar9ioVjA" annotatedElement="_Dl4JDcOTEeSiR-ar9ioVjA">
+ <body>activity 'Receiver$method$1'(in tester: TestRunner): Receiver {
+if (this.'Receiver$initializationFlag$1' == null) {
+this.'Receiver$initialization$1'();
+this.tester = tester;
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Dl4JDsOTEeSiR-ar9ioVjA" name="tester" type="_Dl4I48OTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dl4JD8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dl4JEMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Dl4JEcOTEeSiR-ar9ioVjA" name="" type="_Dl4I0cOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dl4JEsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dl4JE8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Dl4I1sOTEeSiR-ar9ioVjA" name="a$defaultValue$1">
+ <ownedComment xmi:id="_Dl4v5cOTEeSiR-ar9ioVjA" annotatedElement="_Dl4I1sOTEeSiR-ar9ioVjA">
+ <body>activity 'a$defaultValue$1'(): Integer {
+ return 0;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Dl4I18OTEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dl4I2MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dl4I2cOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Dl4JI8OTEeSiR-ar9ioVjA" name="Receiver$initialization$1" visibility="protected" specification="_Dl4JJMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Dl4v7sOTEeSiR-ar9ioVjA" annotatedElement="_Dl4JI8OTEeSiR-ar9ioVjA">
+ <body>activity 'Receiver$initialization$1'(){
+ if (this.'Receiver$initializationFlag$1' == null) {
+ this.a = 'a$defaultValue$1'();
+ this.'Receiver$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Dl4JJcOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_Dl4JJsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Dl4v48OTEeSiR-ar9ioVjA" annotatedElement="_Dl4JJcOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Dl4JKsOTEeSiR-ar9ioVjA" name="Receiver$behavior$1" visibility="private">
+ <ownedComment xmi:id="_Dl4v7cOTEeSiR-ar9ioVjA" annotatedElement="_Dl4JKsOTEeSiR-ar9ioVjA">
+ <body>activity 'Receiver$behavior$1'() {
+ do {
+ accept (A) {
+ ++ this.a;
+ }
+ or accept (b: B) {
+ this.x->add(b.x);
+ }
+ or accept (c: C) {
+ this.x->add(c.x);
+ this.y->add(c.y);
+ }
+ this.tester.SignalLoop();
+ }
+ while (true);
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_Dl4JBsOTEeSiR-ar9ioVjA" name="Receiver" visibility="public" method="_Dl4JDcOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_Dl4JB8OTEeSiR-ar9ioVjA" name="tester" type="_Dl4I48OTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dl4JCMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dl4JCcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Dl4JCsOTEeSiR-ar9ioVjA" name="" type="_Dl4I0cOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dl4JC8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dl4JDMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Dl4JJMOTEeSiR-ar9ioVjA" name="Receiver$initialization$1" visibility="protected" method="_Dl4JI8OTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_Dl4JJsOTEeSiR-ar9ioVjA" name="destroy" method="_Dl4JJcOTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Signal" xmi:id="_Dl4JFMOTEeSiR-ar9ioVjA" name="A" visibility="public"/>
+ <nestedClassifier xmi:type="uml:Signal" xmi:id="_Dl4JFcOTEeSiR-ar9ioVjA" name="B" visibility="public">
+ <ownedAttribute xmi:id="_Dl4JFsOTEeSiR-ar9ioVjA" name="x" visibility="package">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dl4JF8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dl4JGMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Signal" xmi:id="_Dl4JGcOTEeSiR-ar9ioVjA" name="C" visibility="public">
+ <ownedAttribute xmi:id="_Dl4JGsOTEeSiR-ar9ioVjA" name="x" visibility="package">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dl4JG8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dl4JHMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Dl4JHcOTEeSiR-ar9ioVjA" name="y" visibility="package">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dl4JHsOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dl4JH8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ </nestedClassifier>
+ <ownedReception xmi:id="_Dl4JJ8OTEeSiR-ar9ioVjA" name="A" visibility="public" signal="_Dl4JFMOTEeSiR-ar9ioVjA"/>
+ <ownedReception xmi:id="_Dl4JKMOTEeSiR-ar9ioVjA" name="B" visibility="public" signal="_Dl4JFcOTEeSiR-ar9ioVjA"/>
+ <ownedReception xmi:id="_Dl4JKcOTEeSiR-ar9ioVjA" name="C" visibility="public" signal="_Dl4JGcOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_Dl4I48OTEeSiR-ar9ioVjA" name="TestRunner" visibility="public" classifierBehavior="_Dl4JBcOTEeSiR-ar9ioVjA" isActive="true">
+ <ownedAttribute xmi:id="_Dl4I9MOTEeSiR-ar9ioVjA" name="TestRunner$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dl4I9cOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dl4I9sOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Dl4I7cOTEeSiR-ar9ioVjA" name="test$method$1" visibility="protected" specification="_Dl4I5sOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Dl4v6sOTEeSiR-ar9ioVjA" annotatedElement="_Dl4I7cOTEeSiR-ar9ioVjA">
+ <body>activity 'test$method$1'(out receiver: Receiver, out n: Integer) {
+ receiver = new Receiver(this);
+ receiver.A();
+ receiver.B(1);
+ receiver.C(2, 3);
+ receiver.C(x=>3);
+ receiver.C(y=>4);
+ n = 5;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Dl4I7sOTEeSiR-ar9ioVjA" name="receiver" type="_Dl4I0cOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dl4I78OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dl4I8MOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Dl4I8cOTEeSiR-ar9ioVjA" name="n" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dl4I8sOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dl4I88OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Dl4I98OTEeSiR-ar9ioVjA" name="TestRunner$initialization$1" visibility="protected" specification="_Dl4I-MOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Dl4v7MOTEeSiR-ar9ioVjA" annotatedElement="_Dl4I98OTEeSiR-ar9ioVjA">
+ <body>activity 'TestRunner$initialization$1'(){
+ if (this.'TestRunner$initializationFlag$1' == null) {
+ this.'TestRunner$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Dl4I-cOTEeSiR-ar9ioVjA" name="TestRunner$method$1" specification="_Dl4I_cOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Dl4v5MOTEeSiR-ar9ioVjA" annotatedElement="_Dl4I-cOTEeSiR-ar9ioVjA">
+ <body>activity 'TestRunner$method$1'(): TestRunner {
+ this.'TestRunner$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Dl4I-sOTEeSiR-ar9ioVjA" type="_Dl4I48OTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dl4I-8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dl4I_MOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Dl4JAcOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_Dl4JAsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Dl4v5sOTEeSiR-ar9ioVjA" annotatedElement="_Dl4JAcOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Dl4JBcOTEeSiR-ar9ioVjA" name="TestRunner$behavior$1" visibility="private">
+ <ownedComment xmi:id="_Dl4v6cOTEeSiR-ar9ioVjA" annotatedElement="_Dl4JBcOTEeSiR-ar9ioVjA">
+ <body>activity 'TestRunner$behavior$1'() {
+ accept (Start);
+ this.test(receiver, n);
+ for (i in 1..n) {
+ accept (SignalLoop);
+ }
+ WriteLine(&quot;Done&quot;);
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_Dl4I5sOTEeSiR-ar9ioVjA" name="test" visibility="public" method="_Dl4I7cOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_Dl4I58OTEeSiR-ar9ioVjA" name="receiver" type="_Dl4I0cOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dl4I6MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dl4I6cOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Dl4I6sOTEeSiR-ar9ioVjA" name="n" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dl4I68OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dl4I7MOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Dl4I-MOTEeSiR-ar9ioVjA" name="TestRunner$initialization$1" visibility="protected" method="_Dl4I98OTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_Dl4I_cOTEeSiR-ar9ioVjA" name="TestRunner" method="_Dl4I-cOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_Dl4I_sOTEeSiR-ar9ioVjA" type="_Dl4I48OTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dl4I_8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dl4JAMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Dl4JAsOTEeSiR-ar9ioVjA" name="destroy" method="_Dl4JAcOTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Signal" xmi:id="_Dl4I5MOTEeSiR-ar9ioVjA" name="Start" visibility="public"/>
+ <nestedClassifier xmi:type="uml:Signal" xmi:id="_Dl4I5cOTEeSiR-ar9ioVjA" name="SignalLoop" visibility="public"/>
+ <ownedReception xmi:id="_Dl4JA8OTEeSiR-ar9ioVjA" name="Start" visibility="public" signal="_Dl4I5MOTEeSiR-ar9ioVjA"/>
+ <ownedReception xmi:id="_Dl4JBMOTEeSiR-ar9ioVjA" name="SignalLoop" visibility="public" signal="_Dl4I5cOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:id="_C4YwscOTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_C4YwssOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_C4Yws8OTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_C4YwtMOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Create xmi:id="_Dl4v8MOTEeSiR-ar9ioVjA" base_BehavioralFeature="_Dl4JNMOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_Dl4v8cOTEeSiR-ar9ioVjA" base_BehavioralFeature="_Dl4JBsOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_Dl4v8sOTEeSiR-ar9ioVjA" base_BehavioralFeature="_Dl4JAsOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_Dl4v88OTEeSiR-ar9ioVjA" base_BehavioralFeature="_Dl4I_cOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_Dl4v9MOTEeSiR-ar9ioVjA" base_BehavioralFeature="_Dl4JJsOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_Dl4v9cOTEeSiR-ar9ioVjA" base_BehavioralFeature="_Dl4JOcOTEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Dl4v9sOTEeSiR-ar9ioVjA" base_Comment="_Dl4v4sOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Dl4v98OTEeSiR-ar9ioVjA" base_Comment="_Dl4v48OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Dl4v-MOTEeSiR-ar9ioVjA" base_Comment="_Dl4v5MOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Dl4v-cOTEeSiR-ar9ioVjA" base_Comment="_Dl4v5cOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Dl4v-sOTEeSiR-ar9ioVjA" base_Comment="_Dl4v5sOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Dl4v-8OTEeSiR-ar9ioVjA" base_Comment="_Dl4v58OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Dl4v_MOTEeSiR-ar9ioVjA" base_Comment="_Dl4v6MOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Dl4v_cOTEeSiR-ar9ioVjA" base_Comment="_Dl4v6cOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Dl4v_sOTEeSiR-ar9ioVjA" base_Comment="_Dl4v6sOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Dl4v_8OTEeSiR-ar9ioVjA" base_Comment="_Dl4v68OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Dl4wAMOTEeSiR-ar9ioVjA" base_Comment="_Dl4v7MOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Dl4wAcOTEeSiR-ar9ioVjA" base_Comment="_Dl4v7cOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Dl4wAsOTEeSiR-ar9ioVjA" base_Comment="_Dl4v7sOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Dl4wA8OTEeSiR-ar9ioVjA" base_Comment="_Dl4v78OTEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Literal_Name.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Literal_Name.uml
new file mode 100644
index 00000000000..41ae4aa5f38
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Literal_Name.uml
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_DmhpEMOTEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_D7U0YMOTEeSiR-ar9ioVjA" name="Expressions_Literal_Name" classifierBehavior="_D7VbdMOTEeSiR-ar9ioVjA" isActive="true">
+ <ownedComment xmi:id="_D7VbdcOTEeSiR-ar9ioVjA" annotatedElement="_D7U0YMOTEeSiR-ar9ioVjA">
+ <body>&#xD;
+ * Test literal and name expressions.&#xD;
+ *</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_D7U0t8OTEeSiR-ar9ioVjA" name="Expressions_Literal_Name$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0uMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0ucOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_D7U0j8OTEeSiR-ar9ioVjA" name="test$method$1" visibility="protected" specification="_D7U0Z8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_D7VbeMOTEeSiR-ar9ioVjA" annotatedElement="_D7U0j8OTEeSiR-ar9ioVjA">
+ <body>activity 'test$method$1'(in a: Integer, out i: any, out j: any, out k: any, out l: any, out m: any, out n: any, out x: any, out y: any, out b: Integer, out c: Integer, out d: Integer, out e: E) {
+ i = 1234;
+ j = 0;
+ k = 0b1010111000010000;
+ l = 0B0100_1010_0101_1011;
+ m = 0xAE10;
+ n = 0X4a_5b;
+ x = 057410;
+ y = 0_045_133;
+ b = a;
+ c = Expressions_Literal_Name::test::a;
+ d = Expressions_Literal_Name.test.a;
+ e = E::A;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_D7U0kMOTEeSiR-ar9ioVjA" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0kcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0ksOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0k8OTEeSiR-ar9ioVjA" name="i" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0lMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0lcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0lsOTEeSiR-ar9ioVjA" name="j" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0l8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0mMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0mcOTEeSiR-ar9ioVjA" name="k" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0msOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0m8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0nMOTEeSiR-ar9ioVjA" name="l" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0ncOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0nsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0n8OTEeSiR-ar9ioVjA" name="m" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0oMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0ocOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0osOTEeSiR-ar9ioVjA" name="n" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0o8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0pMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0pcOTEeSiR-ar9ioVjA" name="x" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0psOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0p8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0qMOTEeSiR-ar9ioVjA" name="y" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0qcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0qsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0q8OTEeSiR-ar9ioVjA" name="b" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0rMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0rcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0rsOTEeSiR-ar9ioVjA" name="c" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0r8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0sMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0scOTEeSiR-ar9ioVjA" name="d" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0ssOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0s8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0tMOTEeSiR-ar9ioVjA" name="e" type="_D7U0YsOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0tcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0tsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_D7U0usOTEeSiR-ar9ioVjA" name="Expressions_Literal_Name$initialization$1" visibility="protected" specification="_D7U0u8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_D7VbesOTEeSiR-ar9ioVjA" annotatedElement="_D7U0usOTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Literal_Name$initialization$1'(){
+ if (this.'Expressions_Literal_Name$initializationFlag$1' == null) {
+ this.'Expressions_Literal_Name$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_D7U0vMOTEeSiR-ar9ioVjA" name="Expressions_Literal_Name$method$1" specification="_D7U0wMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_D7Vbd8OTEeSiR-ar9ioVjA" annotatedElement="_D7U0vMOTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Literal_Name$method$1'(): Expressions_Literal_Name {
+ this.'Expressions_Literal_Name$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_D7U0vcOTEeSiR-ar9ioVjA" type="_D7U0YMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0vsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0v8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_D7VbcsOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_D7Vbc8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_D7VbecOTEeSiR-ar9ioVjA" annotatedElement="_D7VbcsOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_D7VbdMOTEeSiR-ar9ioVjA" name="Expressions_Literal_Name$behavior$1" visibility="private">
+ <ownedComment xmi:id="_D7VbdsOTEeSiR-ar9ioVjA" annotatedElement="_D7VbdMOTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Literal_Name$behavior$1'() {
+ this.test(1, i, j, k, l, m, n, x, y, b, c, d);
+ WriteLine(&quot;Done&quot;);
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_D7U0Z8OTEeSiR-ar9ioVjA" name="test" visibility="package" method="_D7U0j8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_D7U0aMOTEeSiR-ar9ioVjA" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0acOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0asOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0a8OTEeSiR-ar9ioVjA" name="i" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0bMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0bcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0bsOTEeSiR-ar9ioVjA" name="j" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0b8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0cMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0ccOTEeSiR-ar9ioVjA" name="k" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0csOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0c8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0dMOTEeSiR-ar9ioVjA" name="l" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0dcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0dsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0d8OTEeSiR-ar9ioVjA" name="m" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0eMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0ecOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0esOTEeSiR-ar9ioVjA" name="n" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0e8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0fMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0fcOTEeSiR-ar9ioVjA" name="x" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0fsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0f8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0gMOTEeSiR-ar9ioVjA" name="y" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0gcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0gsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0g8OTEeSiR-ar9ioVjA" name="b" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0hMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0hcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0hsOTEeSiR-ar9ioVjA" name="c" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0h8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0iMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0icOTEeSiR-ar9ioVjA" name="d" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0isOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0i8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_D7U0jMOTEeSiR-ar9ioVjA" name="e" type="_D7U0YsOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7U0jcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7U0jsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_D7U0u8OTEeSiR-ar9ioVjA" name="Expressions_Literal_Name$initialization$1" visibility="protected" method="_D7U0usOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_D7U0wMOTEeSiR-ar9ioVjA" name="Expressions_Literal_Name" method="_D7U0vMOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_D7U0wcOTEeSiR-ar9ioVjA" type="_D7U0YMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_D7VbcMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_D7VbccOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_D7Vbc8OTEeSiR-ar9ioVjA" name="destroy" method="_D7VbcsOTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Enumeration" xmi:id="_D7U0YcOTEeSiR-ar9ioVjA" name="Empty" visibility="package"/>
+ <nestedClassifier xmi:type="uml:Enumeration" xmi:id="_D7U0YsOTEeSiR-ar9ioVjA" name="E" visibility="package">
+ <ownedLiteral xmi:id="_D7U0Y8OTEeSiR-ar9ioVjA" name="A" visibility="package"/>
+ <ownedLiteral xmi:id="_D7U0ZMOTEeSiR-ar9ioVjA" name="B" visibility="package"/>
+ <ownedLiteral xmi:id="_D7U0ZcOTEeSiR-ar9ioVjA" name="C" visibility="package"/>
+ <ownedLiteral xmi:id="_D7U0ZsOTEeSiR-ar9ioVjA" name="D" visibility="package"/>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:id="_DmhpEcOTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_DmhpEsOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_DmhpE8OTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_DmhpFMOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Destroy xmi:id="_D7Vbe8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_D7Vbc8OTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_D7VbfMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_D7U0wMOTEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_D7VbfcOTEeSiR-ar9ioVjA" base_Comment="_D7VbdsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_D7VbfsOTEeSiR-ar9ioVjA" base_Comment="_D7Vbd8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_D7Vbf8OTEeSiR-ar9ioVjA" base_Comment="_D7VbeMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_D7VbgMOTEeSiR-ar9ioVjA" base_Comment="_D7VbecOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_D7VbgcOTEeSiR-ar9ioVjA" base_Comment="_D7VbesOTEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Object.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Object.uml
new file mode 100644
index 00000000000..f221d6ce741
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Object.uml
@@ -0,0 +1,252 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_0LrQUIKGEeSFEt9m3bH63A" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_0nS1UIKGEeSFEt9m3bH63A" name="Expressions_Object" classifierBehavior="_0nS1r4KGEeSFEt9m3bH63A" isActive="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_0nS1sIKGEeSFEt9m3bH63A" annotatedElement="_0nS1UIKGEeSFEt9m3bH63A">
+ <body>&#xD;
+ * Test object structure expressions.&#xD;
+ *</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_0nS1UYKGEeSFEt9m3bH63A" name="members" visibility="package" type="_0nS1VIKGEeSFEt9m3bH63A" isOrdered="true" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1UoKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1U4KGEeSFEt9m3bH63A" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_0nS1bYKGEeSFEt9m3bH63A" name="principal" visibility="package">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1boKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1b4KGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_0nS1cIKGEeSFEt9m3bH63A" name="rate" visibility="package">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1cYKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1coKGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_0nS1c4KGEeSFEt9m3bH63A" name="interest" visibility="package">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1dIKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1dYKGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_0nS1oIKGEeSFEt9m3bH63A" name="Expressions_Object$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1oYKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1ooKGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_0nS1kIKGEeSFEt9m3bH63A" name="test$method$1" visibility="protected" specification="_0nS1gIKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_0nS1s4KGEeSFEt9m3bH63A" annotatedElement="_0nS1kIKGEeSFEt9m3bH63A">
+ <body>activity 'test$method$1'(out member: Member, out customer0: Customer, out customer1: Customer, out names: String[0..*], out self: Expressions_Object) { this.members[1] = new Member();
+this.members[2] = new Member();
+this.members[1].name = &quot;A&quot;;
+this.members[2].name = &quot;B&quot;;
+member = this.members[1];
+member.isActive = true;
+member.address = &quot;Easy Street&quot;;
+customer0 = new Customer(name=>&quot;Fred&quot;, email=>&quot;fred@blah.com&quot;,
+address=>&quot;Unknown&quot;);
+customer1 = customer0;
+customer1.address = member.address;
+this.principal = 1000;
+this.rate = 5;
+this.interest = this.principal * this.rate / 100 * 10;
+names = this.members.name;
+self = this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0nS1kYKGEeSFEt9m3bH63A" name="member" type="_0nS1VIKGEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1koKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1k4KGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0nS1lIKGEeSFEt9m3bH63A" name="customer0" type="_0nS1doKGEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1lYKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1loKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0nS1l4KGEeSFEt9m3bH63A" name="customer1" type="_0nS1doKGEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1mIKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1mYKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0nS1moKGEeSFEt9m3bH63A" name="names" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1m4KGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1nIKGEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0nS1nYKGEeSFEt9m3bH63A" name="self" type="_0nS1UIKGEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1noKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1n4KGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_0nS1o4KGEeSFEt9m3bH63A" name="Expressions_Object$initialization$1" visibility="protected" specification="_0nS1pIKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_0nS1t4KGEeSFEt9m3bH63A" annotatedElement="_0nS1o4KGEeSFEt9m3bH63A">
+ <body>activity 'Expressions_Object$initialization$1'(){
+ if (this.'Expressions_Object$initializationFlag$1' == null) {
+ this.'Expressions_Object$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_0nS1pYKGEeSFEt9m3bH63A" name="Expressions_Object$method$1" specification="_0nS1qYKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_0nS1sYKGEeSFEt9m3bH63A" annotatedElement="_0nS1pYKGEeSFEt9m3bH63A">
+ <body>activity 'Expressions_Object$method$1'(): Expressions_Object {
+ this.'Expressions_Object$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0nS1poKGEeSFEt9m3bH63A" type="_0nS1UIKGEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1p4KGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1qIKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_0nS1rYKGEeSFEt9m3bH63A" name="destroy$method$1" specification="_0nS1roKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_0nS1toKGEeSFEt9m3bH63A" annotatedElement="_0nS1rYKGEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_0nS1r4KGEeSFEt9m3bH63A" name="Expressions_Object$behavior$1" visibility="private">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_0nS1uIKGEeSFEt9m3bH63A" annotatedElement="_0nS1r4KGEeSFEt9m3bH63A">
+ <body>activity 'Expressions_Object$behavior$1'() { this.test(member, customer0, customer1, names, self);
+AssertEqual(&quot;member.name&quot;, member.name, &quot;A&quot;);
+AssertTrue(&quot;member.isActive&quot;, member.isActive);
+AssertEqual(&quot;member.address&quot;, member.address, &quot;Easy Street&quot;);
+AssertEqual(&quot;customer0.name&quot;, customer0.name, &quot;Fred&quot;);
+AssertEqual(&quot;customer0.email&quot;, customer0.email, &quot;fred@blah.com&quot;);
+AssertList(&quot;customer0.address&quot;, customer0.address, &quot;Unknown&quot;);
+AssertEqual(&quot;customer1.name&quot;, customer1.name, &quot;Fred&quot;);
+AssertEqual(&quot;customer1.email&quot;, customer1.email, &quot;fred@blah.com&quot;);
+AssertList(&quot;customer1.address&quot;, customer1.address, &quot;Easy Street&quot;);
+AssertEqual(&quot;self.principal&quot;, self.principal, 1000);
+AssertEqual(&quot;self.rate&quot;, self.rate, 5);
+AssertEqual(&quot;self.interest&quot;, self.interest, 500);
+AssertList(&quot;names&quot;, names, new String [] { &quot;A&quot;, &quot;B&quot; });
+WriteLine(&quot;Done&quot;);
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_0nS1gIKGEeSFEt9m3bH63A" name="test" visibility="package" method="_0nS1kIKGEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0nS1gYKGEeSFEt9m3bH63A" name="member" type="_0nS1VIKGEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1goKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1g4KGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0nS1hIKGEeSFEt9m3bH63A" name="customer0" type="_0nS1doKGEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1hYKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1hoKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0nS1h4KGEeSFEt9m3bH63A" name="customer1" type="_0nS1doKGEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1iIKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1iYKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0nS1ioKGEeSFEt9m3bH63A" name="names" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1i4KGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1jIKGEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0nS1jYKGEeSFEt9m3bH63A" name="self" type="_0nS1UIKGEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1joKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1j4KGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_0nS1pIKGEeSFEt9m3bH63A" name="Expressions_Object$initialization$1" visibility="protected" method="_0nS1o4KGEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_0nS1qYKGEeSFEt9m3bH63A" name="Expressions_Object" method="_0nS1pYKGEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0nS1qoKGEeSFEt9m3bH63A" type="_0nS1UIKGEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1q4KGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1rIKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_0nS1roKGEeSFEt9m3bH63A" name="destroy" method="_0nS1rYKGEeSFEt9m3bH63A"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_0nS1VIKGEeSFEt9m3bH63A" name="Member" visibility="package">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_0nS1VYKGEeSFEt9m3bH63A" name="isActive" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1VoKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1V4KGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_0nS1WIKGEeSFEt9m3bH63A" name="name" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1WYKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1WoKGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_0nS1W4KGEeSFEt9m3bH63A" name="address" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1XIKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1XYKGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_0nS1XoKGEeSFEt9m3bH63A" name="Member$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1X4KGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1YIKGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_0nS1YYKGEeSFEt9m3bH63A" name="Member$initialization$1" visibility="protected" specification="_0nS1YoKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_0nS1tYKGEeSFEt9m3bH63A" annotatedElement="_0nS1YYKGEeSFEt9m3bH63A">
+ <body>activity 'Member$initialization$1'(){
+ if (this.'Member$initializationFlag$1' == null) {
+ this.'Member$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_0nS1Y4KGEeSFEt9m3bH63A" name="Member$method$1" specification="_0nS1Z4KGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_0nS1tIKGEeSFEt9m3bH63A" annotatedElement="_0nS1Y4KGEeSFEt9m3bH63A">
+ <body>activity 'Member$method$1'(): Member {
+ this.'Member$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0nS1ZIKGEeSFEt9m3bH63A" type="_0nS1VIKGEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1ZYKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1ZoKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_0nS1a4KGEeSFEt9m3bH63A" name="destroy$method$1" specification="_0nS1bIKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_0nS1soKGEeSFEt9m3bH63A" annotatedElement="_0nS1a4KGEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_0nS1YoKGEeSFEt9m3bH63A" name="Member$initialization$1" visibility="protected" method="_0nS1YYKGEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_0nS1Z4KGEeSFEt9m3bH63A" name="Member" method="_0nS1Y4KGEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_0nS1aIKGEeSFEt9m3bH63A" type="_0nS1VIKGEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1aYKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1aoKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_0nS1bIKGEeSFEt9m3bH63A" name="destroy" method="_0nS1a4KGEeSFEt9m3bH63A"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:DataType" xmi:id="_0nS1doKGEeSFEt9m3bH63A" name="Customer" visibility="package">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_0nS1d4KGEeSFEt9m3bH63A" name="name" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1eIKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1eYKGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_0nS1eoKGEeSFEt9m3bH63A" name="email" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1e4KGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1fIKGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_0nS1fYKGEeSFEt9m3bH63A" name="address" visibility="public" isOrdered="true" isUnique="false">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_0nS1foKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_0nS1f4KGEeSFEt9m3bH63A" value="*"/>
+ </ownedAttribute>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_0LrQUYKGEeSFEt9m3bH63A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0LrQUoKGEeSFEt9m3bH63A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="__Di3N7eLEeS_zZpc9I-Bsg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__DjeQLeLEeS_zZpc9I-Bsg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Create xmi:id="_0nS1uYKGEeSFEt9m3bH63A" base_BehavioralFeature="_0nS1qYKGEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_0nS1uoKGEeSFEt9m3bH63A" base_Comment="_0nS1soKGEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Destroy xmi:id="_0nS1u4KGEeSFEt9m3bH63A" base_BehavioralFeature="_0nS1roKGEeSFEt9m3bH63A"/>
+ <standard:Destroy xmi:id="_0nS1vIKGEeSFEt9m3bH63A" base_BehavioralFeature="_0nS1bIKGEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_0nS1vYKGEeSFEt9m3bH63A" base_Comment="_0nS1t4KGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_0nS1voKGEeSFEt9m3bH63A" base_Comment="_0nS1tYKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_0nS1v4KGEeSFEt9m3bH63A" base_Comment="_0nS1sYKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_0nS1wIKGEeSFEt9m3bH63A" base_Comment="_0nS1s4KGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_0nS1wYKGEeSFEt9m3bH63A" base_Comment="_0nS1uIKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_0nS1woKGEeSFEt9m3bH63A" base_Comment="_0nS1tIKGEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Create xmi:id="_0nS1w4KGEeSFEt9m3bH63A" base_BehavioralFeature="_0nS1Z4KGEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_0nS1xIKGEeSFEt9m3bH63A" base_Comment="_0nS1toKGEeSFEt9m3bH63A" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Operator.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Operator.uml
new file mode 100644
index 00000000000..02af4ea50ac
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Operator.uml
@@ -0,0 +1,622 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_D8IssMOTEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_Ehp0kMOTEeSiR-ar9ioVjA" name="Expressions_Operator" classifierBehavior="_Ehp1j8OTEeSiR-ar9ioVjA" isActive="true">
+ <ownedComment xmi:id="_Ehp1kMOTEeSiR-ar9ioVjA" annotatedElement="_Ehp0kMOTEeSiR-ar9ioVjA">
+ <body>&#xD;
+ * Test various operator expressions.&#xD;
+ *</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_Ehp1gMOTEeSiR-ar9ioVjA" name="Expressions_Operator$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1gcOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1gsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ehp1NMOTEeSiR-ar9ioVjA" name="test$method$1" visibility="protected" specification="_Ehp06MOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Ehqbo8OTEeSiR-ar9ioVjA" annotatedElement="_Ehp1NMOTEeSiR-ar9ioVjA">
+ <body>activity 'test$method$1'(out i: Integer, out j: Integer, out bs: BitString, out h: Integer, out a: Boolean, out b: Boolean, out c: Boolean, out d: Boolean, out e: Boolean, out e1: Boolean, out e2: Boolean, out e3: Boolean, out e4: Boolean, out e5: Boolean, out e6: Boolean, out e7: Boolean, out e8: Boolean, out e9: Boolean, out f: Boolean, out f1: Boolean, out f2: Boolean, out x: any, out y: any[0..*] sequence, out z: Integer[0..*], out r: Integer) {
+ employee = new Employee();
+ monitor = new Monitor();
+ i = 1;
+ j = 2;
+ i = + i;
+ i = - i;
+ i = i * j;
+ i = i / j;
+ i = i % j;
+ i = i + j;
+ i = i - j;
+ bs = (BitString) 0xAB;
+ bs = ~ bs;
+ bs = bs &amp; 0xF0;
+ bs = bs | 0360;
+ bs = bs &lt;&lt; 2;
+ bs = bs >> 2;
+ bs = bs >>> 2;
+ bs = bs ^ 4;
+ h = 0xAB;
+ h = (Integer) ~ h;
+ h = (Integer) (h &amp; 0xF0);
+ h = (Integer) (h | 0360);
+ h = (Integer) (h &lt;&lt; 2);
+ h = (Integer) (h >> 2);
+ h = (Integer) (h >>> 2);
+ h = (Integer) (h ^ 4);
+ a = i > j;
+ b = i &lt; j;
+ c = i >= j;
+ d = i &lt;= j;
+ f = true;
+ g = false;
+ e = f | g;
+ e = e &amp; f;
+ e = ! e;
+ e1 = 3 &lt; *;
+ e2 = (UnlimitedNatural) (+ 3) &lt; *;
+ e3 = employee instanceof Person;
+ e4 = i hastype Employee;
+ e5 = i == 0;
+ e6 = monitor != monitor;
+ e7 = employee.name == null;
+ e8 = null != employee.name;
+ e9 = null == null;
+ f = i &lt; j &amp; (i > j | f);
+ f1 = i > 0 &amp;&amp; 2 &lt; j;
+ f2 = i == 0 || 2 >= j;
+ x = ! f ? 1: + 2;
+ y = f ? new Integer [] { 1, 2 }: 0;
+ z = (Integer) any [] { 1, &quot;banana&quot;, 2 };
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Ehp1NcOTEeSiR-ar9ioVjA" name="i" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1NsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1N8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1OMOTEeSiR-ar9ioVjA" name="j" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1OcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1OsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1O8OTEeSiR-ar9ioVjA" name="bs" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf-Library-PrimitiveTypes-BitString"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1PMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1PcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1PsOTEeSiR-ar9ioVjA" name="h" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1P8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1QMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1QcOTEeSiR-ar9ioVjA" name="a" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1QsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1Q8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1RMOTEeSiR-ar9ioVjA" name="b" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1RcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1RsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1R8OTEeSiR-ar9ioVjA" name="c" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1SMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1ScOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1SsOTEeSiR-ar9ioVjA" name="d" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1S8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1TMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1TcOTEeSiR-ar9ioVjA" name="e" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1TsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1T8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1UMOTEeSiR-ar9ioVjA" name="e1" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1UcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1UsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1U8OTEeSiR-ar9ioVjA" name="e2" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1VMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1VcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1VsOTEeSiR-ar9ioVjA" name="e3" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1V8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1WMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1WcOTEeSiR-ar9ioVjA" name="e4" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1WsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1W8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1XMOTEeSiR-ar9ioVjA" name="e5" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1XcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1XsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1X8OTEeSiR-ar9ioVjA" name="e6" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1YMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1YcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1YsOTEeSiR-ar9ioVjA" name="e7" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1Y8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1ZMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1ZcOTEeSiR-ar9ioVjA" name="e8" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1ZsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1Z8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1aMOTEeSiR-ar9ioVjA" name="e9" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1acOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1asOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1a8OTEeSiR-ar9ioVjA" name="f" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1bMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1bcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1bsOTEeSiR-ar9ioVjA" name="f1" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1b8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1cMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1ccOTEeSiR-ar9ioVjA" name="f2" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1csOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1c8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1dMOTEeSiR-ar9ioVjA" name="x" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1dcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1dsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1d8OTEeSiR-ar9ioVjA" name="y" isOrdered="true" isUnique="false" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1eMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1ecOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1esOTEeSiR-ar9ioVjA" name="z" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1e8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1fMOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1fcOTEeSiR-ar9ioVjA" name="r" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1fsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1f8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ehp1g8OTEeSiR-ar9ioVjA" name="Expressions_Operator$initialization$1" visibility="protected" specification="_Ehp1hMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_EhqbrsOTEeSiR-ar9ioVjA" annotatedElement="_Ehp1g8OTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Operator$initialization$1'(){
+ if (this.'Expressions_Operator$initializationFlag$1' == null) {
+ this.'Expressions_Operator$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ehp1hcOTEeSiR-ar9ioVjA" name="Expressions_Operator$method$1" specification="_Ehp1icOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_EhqboMOTEeSiR-ar9ioVjA" annotatedElement="_Ehp1hcOTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Operator$method$1'(): Expressions_Operator {
+ this.'Expressions_Operator$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Ehp1hsOTEeSiR-ar9ioVjA" type="_Ehp0kMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1h8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1iMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ehp1jcOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_Ehp1jsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_EhqbqcOTEeSiR-ar9ioVjA" annotatedElement="_Ehp1jcOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ehp1j8OTEeSiR-ar9ioVjA" name="Expressions_Operator$behavior$1" visibility="private">
+ <ownedComment xmi:id="_EhqbscOTEeSiR-ar9ioVjA" annotatedElement="_Ehp1j8OTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Operator$behavior$1'() {
+ this.test(i, j, bs, h, a, b, c, d, e, e1, e2, e3, e4, e5, e6, e7, e8, e9, f,
+ f1, f2, x, y, z, r);
+ WriteLine(&quot;Done&quot;);
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_Ehp06MOTEeSiR-ar9ioVjA" name="test" visibility="package" method="_Ehp1NMOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_Ehp06cOTEeSiR-ar9ioVjA" name="i" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp06sOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp068OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp07MOTEeSiR-ar9ioVjA" name="j" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp07cOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp07sOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp078OTEeSiR-ar9ioVjA" name="bs" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf-Library-PrimitiveTypes-BitString"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp08MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp08cOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp08sOTEeSiR-ar9ioVjA" name="h" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp088OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp09MOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp09cOTEeSiR-ar9ioVjA" name="a" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp09sOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp098OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp0-MOTEeSiR-ar9ioVjA" name="b" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp0-cOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp0-sOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp0-8OTEeSiR-ar9ioVjA" name="c" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp0_MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp0_cOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp0_sOTEeSiR-ar9ioVjA" name="d" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp0_8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1AMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1AcOTEeSiR-ar9ioVjA" name="e" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1AsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1A8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1BMOTEeSiR-ar9ioVjA" name="e1" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1BcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1BsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1B8OTEeSiR-ar9ioVjA" name="e2" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1CMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1CcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1CsOTEeSiR-ar9ioVjA" name="e3" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1C8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1DMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1DcOTEeSiR-ar9ioVjA" name="e4" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1DsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1D8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1EMOTEeSiR-ar9ioVjA" name="e5" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1EcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1EsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1E8OTEeSiR-ar9ioVjA" name="e6" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1FMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1FcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1FsOTEeSiR-ar9ioVjA" name="e7" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1F8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1GMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1GcOTEeSiR-ar9ioVjA" name="e8" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1GsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1G8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1HMOTEeSiR-ar9ioVjA" name="e9" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1HcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1HsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1H8OTEeSiR-ar9ioVjA" name="f" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1IMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1IcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1IsOTEeSiR-ar9ioVjA" name="f1" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1I8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1JMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1JcOTEeSiR-ar9ioVjA" name="f2" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1JsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1J8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1KMOTEeSiR-ar9ioVjA" name="x" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1KcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1KsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1K8OTEeSiR-ar9ioVjA" name="y" isOrdered="true" isUnique="false" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1LMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1LcOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1LsOTEeSiR-ar9ioVjA" name="z" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1L8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1MMOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_Ehp1McOTEeSiR-ar9ioVjA" name="r" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1MsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1M8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Ehp1hMOTEeSiR-ar9ioVjA" name="Expressions_Operator$initialization$1" visibility="protected" method="_Ehp1g8OTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_Ehp1icOTEeSiR-ar9ioVjA" name="Expressions_Operator" method="_Ehp1hcOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_Ehp1isOTEeSiR-ar9ioVjA" type="_Ehp0kMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp1i8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp1jMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Ehp1jsOTEeSiR-ar9ioVjA" name="destroy" method="_Ehp1jcOTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_Ehp0kcOTEeSiR-ar9ioVjA" name="Monitor" visibility="package">
+ <ownedAttribute xmi:id="_Ehp0ssOTEeSiR-ar9ioVjA" name="Monitor$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp0s8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp0tMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ehp0rsOTEeSiR-ar9ioVjA" name="getActiveSensor$method$1" visibility="protected" specification="_Ehp0ksOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_EhqbrMOTEeSiR-ar9ioVjA" annotatedElement="_Ehp0rsOTEeSiR-ar9ioVjA">
+ <body>activity 'getActiveSensor$method$1'(): Sensor {
+ return new Sensor();
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Ehp0r8OTEeSiR-ar9ioVjA" type="_Ehp0lsOTEeSiR-ar9ioVjA" direction="return">
+ <name xsi:nil="true"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp0sMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp0scOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ehp0tcOTEeSiR-ar9ioVjA" name="Monitor$initialization$1" visibility="protected" specification="_Ehp0tsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_EhqbocOTEeSiR-ar9ioVjA" annotatedElement="_Ehp0tcOTEeSiR-ar9ioVjA">
+ <body>activity 'Monitor$initialization$1'(){
+ if (this.'Monitor$initializationFlag$1' == null) {
+ this.'Monitor$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ehp0t8OTEeSiR-ar9ioVjA" name="Monitor$method$1" specification="_Ehp0u8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_EhqbssOTEeSiR-ar9ioVjA" annotatedElement="_Ehp0t8OTEeSiR-ar9ioVjA">
+ <body>activity 'Monitor$method$1'(): Monitor {
+ this.'Monitor$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Ehp0uMOTEeSiR-ar9ioVjA" type="_Ehp0kcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp0ucOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp0usOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ehp0v8OTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_Ehp0wMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Ehqbq8OTEeSiR-ar9ioVjA" annotatedElement="_Ehp0v8OTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_Ehp0ksOTEeSiR-ar9ioVjA" name="getActiveSensor" visibility="public" method="_Ehp0rsOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_Ehp0k8OTEeSiR-ar9ioVjA" type="_Ehp0lsOTEeSiR-ar9ioVjA" direction="return">
+ <name xsi:nil="true"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp0lMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp0lcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Ehp0tsOTEeSiR-ar9ioVjA" name="Monitor$initialization$1" visibility="protected" method="_Ehp0tcOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_Ehp0u8OTEeSiR-ar9ioVjA" name="Monitor" method="_Ehp0t8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_Ehp0vMOTEeSiR-ar9ioVjA" type="_Ehp0kcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp0vcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp0vsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Ehp0wMOTEeSiR-ar9ioVjA" name="destroy" method="_Ehp0v8OTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_Ehp0lsOTEeSiR-ar9ioVjA" name="Sensor" visibility="package">
+ <ownedAttribute xmi:id="_Ehp0n8OTEeSiR-ar9ioVjA" name="Sensor$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp0oMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp0ocOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ehp0m8OTEeSiR-ar9ioVjA" name="getReading$method$1" visibility="protected" specification="_Ehp0l8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_EhqbpcOTEeSiR-ar9ioVjA" annotatedElement="_Ehp0m8OTEeSiR-ar9ioVjA">
+ <body>activity 'getReading$method$1'(): Integer {
+ return 2;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Ehp0nMOTEeSiR-ar9ioVjA" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp0ncOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp0nsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ehp0osOTEeSiR-ar9ioVjA" name="Sensor$initialization$1" visibility="protected" specification="_Ehp0o8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Ehqbp8OTEeSiR-ar9ioVjA" annotatedElement="_Ehp0osOTEeSiR-ar9ioVjA">
+ <body>activity 'Sensor$initialization$1'(){
+ if (this.'Sensor$initializationFlag$1' == null) {
+ this.'Sensor$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ehp0pMOTEeSiR-ar9ioVjA" name="Sensor$method$1" specification="_Ehp0qMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_EhqbqsOTEeSiR-ar9ioVjA" annotatedElement="_Ehp0pMOTEeSiR-ar9ioVjA">
+ <body>activity 'Sensor$method$1'(): Sensor {
+ this.'Sensor$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Ehp0pcOTEeSiR-ar9ioVjA" type="_Ehp0lsOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp0psOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp0p8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ehp0rMOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_Ehp0rcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_EhqbsMOTEeSiR-ar9ioVjA" annotatedElement="_Ehp0rMOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_Ehp0l8OTEeSiR-ar9ioVjA" name="getReading" visibility="public" method="_Ehp0m8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_Ehp0mMOTEeSiR-ar9ioVjA" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp0mcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp0msOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Ehp0o8OTEeSiR-ar9ioVjA" name="Sensor$initialization$1" visibility="protected" method="_Ehp0osOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_Ehp0qMOTEeSiR-ar9ioVjA" name="Sensor" method="_Ehp0pMOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_Ehp0qcOTEeSiR-ar9ioVjA" type="_Ehp0lsOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp0qsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp0q8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Ehp0rcOTEeSiR-ar9ioVjA" name="destroy" method="_Ehp0rMOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_Ehp0wcOTEeSiR-ar9ioVjA" name="Person" visibility="package">
+ <ownedAttribute xmi:id="_Ehp0wsOTEeSiR-ar9ioVjA" name="Person$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp0w8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp0xMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ehp0xcOTEeSiR-ar9ioVjA" name="Person$initialization$1" visibility="protected" specification="_Ehp0xsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_EhqbpMOTEeSiR-ar9ioVjA" annotatedElement="_Ehp0xcOTEeSiR-ar9ioVjA">
+ <body>activity 'Person$initialization$1'(){
+ if (this.'Person$initializationFlag$1' == null) {
+ this.'Person$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ehp0x8OTEeSiR-ar9ioVjA" name="Person$method$1" specification="_Ehp0y8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_EhqbqMOTEeSiR-ar9ioVjA" annotatedElement="_Ehp0x8OTEeSiR-ar9ioVjA">
+ <body>activity 'Person$method$1'(): Person {
+ this.'Person$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Ehp0yMOTEeSiR-ar9ioVjA" type="_Ehp0wcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp0ycOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp0ysOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ehp0z8OTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_Ehp00MOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Ehqbr8OTEeSiR-ar9ioVjA" annotatedElement="_Ehp0z8OTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_Ehp0xsOTEeSiR-ar9ioVjA" name="Person$initialization$1" visibility="protected" method="_Ehp0xcOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_Ehp0y8OTEeSiR-ar9ioVjA" name="Person" method="_Ehp0x8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_Ehp0zMOTEeSiR-ar9ioVjA" type="_Ehp0wcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp0zcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp0zsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Ehp00MOTEeSiR-ar9ioVjA" name="destroy" method="_Ehp0z8OTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_Ehp00cOTEeSiR-ar9ioVjA" name="Employee" visibility="package">
+ <generalization xmi:id="_Ehp00sOTEeSiR-ar9ioVjA" general="_Ehp0wcOTEeSiR-ar9ioVjA"/>
+ <ownedAttribute xmi:id="_Ehp008OTEeSiR-ar9ioVjA" name="id" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp01MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp01cOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Ehp01sOTEeSiR-ar9ioVjA" name="name" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp018OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp02MOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_Ehp02cOTEeSiR-ar9ioVjA" name="Employee$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp02sOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp028OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ehp03MOTEeSiR-ar9ioVjA" name="Employee$initialization$1" visibility="protected" specification="_Ehp03cOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_EhqbpsOTEeSiR-ar9ioVjA" annotatedElement="_Ehp03MOTEeSiR-ar9ioVjA">
+ <body>activity 'Employee$initialization$1'(){
+ if (this.'Employee$initializationFlag$1' == null) {
+ super.Person::'Person$initialization$1'();
+ this.'Employee$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ehp03sOTEeSiR-ar9ioVjA" name="Employee$method$1" specification="_Ehp04sOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_EhqbrcOTEeSiR-ar9ioVjA" annotatedElement="_Ehp03sOTEeSiR-ar9ioVjA">
+ <body>activity 'Employee$method$1'(): Employee {
+ this.'Employee$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_Ehp038OTEeSiR-ar9ioVjA" type="_Ehp00cOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp04MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp04cOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ehp05sOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_Ehp058OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_EhqbosOTEeSiR-ar9ioVjA" annotatedElement="_Ehp05sOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_Ehp03cOTEeSiR-ar9ioVjA" name="Employee$initialization$1" visibility="protected" method="_Ehp03MOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_Ehp04sOTEeSiR-ar9ioVjA" name="Employee" method="_Ehp03sOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_Ehp048OTEeSiR-ar9ioVjA" type="_Ehp00cOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ehp05MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ehp05cOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Ehp058OTEeSiR-ar9ioVjA" name="destroy" method="_Ehp05sOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:id="_D8IsscOTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_D8IsssOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_D8Iss8OTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_D8IstMOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Create xmi:id="_Ehqbs8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_Ehp0y8OTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_EhqbtMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_Ehp04sOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_EhqbtcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_Ehp1jsOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_EhqbtsOTEeSiR-ar9ioVjA" base_BehavioralFeature="_Ehp00MOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_Ehqbt8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_Ehp0u8OTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_EhqbuMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_Ehp1icOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_EhqbucOTEeSiR-ar9ioVjA" base_BehavioralFeature="_Ehp0qMOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_EhqbusOTEeSiR-ar9ioVjA" base_BehavioralFeature="_Ehp0rcOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_Ehqbu8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_Ehp058OTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_EhqbvMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_Ehp0wMOTEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_EhqbvcOTEeSiR-ar9ioVjA" base_Comment="_EhqboMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_EhqbvsOTEeSiR-ar9ioVjA" base_Comment="_EhqbocOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ehqbv8OTEeSiR-ar9ioVjA" base_Comment="_EhqbosOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_EhqbwMOTEeSiR-ar9ioVjA" base_Comment="_Ehqbo8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_EhqbwcOTEeSiR-ar9ioVjA" base_Comment="_EhqbpMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_EhqbwsOTEeSiR-ar9ioVjA" base_Comment="_EhqbpcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ehqbw8OTEeSiR-ar9ioVjA" base_Comment="_EhqbpsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_EhqbxMOTEeSiR-ar9ioVjA" base_Comment="_Ehqbp8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_EhqbxcOTEeSiR-ar9ioVjA" base_Comment="_EhqbqMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_EhqbxsOTEeSiR-ar9ioVjA" base_Comment="_EhqbqcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ehqbx8OTEeSiR-ar9ioVjA" base_Comment="_EhqbqsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_EhqbyMOTEeSiR-ar9ioVjA" base_Comment="_Ehqbq8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_EhqbycOTEeSiR-ar9ioVjA" base_Comment="_EhqbrMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_EhqbysOTEeSiR-ar9ioVjA" base_Comment="_EhqbrcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ehqby8OTEeSiR-ar9ioVjA" base_Comment="_EhqbrsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_EhqbzMOTEeSiR-ar9ioVjA" base_Comment="_Ehqbr8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_EhqbzcOTEeSiR-ar9ioVjA" base_Comment="_EhqbsMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_EhqbzsOTEeSiR-ar9ioVjA" base_Comment="_EhqbscOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ehqbz8OTEeSiR-ar9ioVjA" base_Comment="_EhqbssOTEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Sequence_Construction.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Sequence_Construction.uml
new file mode 100644
index 00000000000..0fc0f378a3d
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Sequence_Construction.uml
@@ -0,0 +1,322 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_EiQRgMOTEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_FEgqAMOTEeSiR-ar9ioVjA" name="Expressions_Sequence_Construction" classifierBehavior="_FEgqhMOTEeSiR-ar9ioVjA" isActive="true">
+ <ownedComment xmi:id="_FEgqhcOTEeSiR-ar9ioVjA" annotatedElement="_FEgqAMOTEeSiR-ar9ioVjA">
+ <body>&#xD;
+ * Test sequence construction expressions.&#xD;
+ *</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_FEgqdcOTEeSiR-ar9ioVjA" name="Expressions_Sequence_Construction$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqdsOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqd8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_FEgqHsOTEeSiR-ar9ioVjA" name="getList$method$1" visibility="protected" specification="_FEgqGsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_FEgqicOTEeSiR-ar9ioVjA" annotatedElement="_FEgqHsOTEeSiR-ar9ioVjA">
+ <body>activity 'getList$method$1'(): Integer[1..*] {
+ return new Integer [] { 4, 5, 6 };
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_FEgqH8OTEeSiR-ar9ioVjA" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqIMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqIcOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_FEgqUMOTEeSiR-ar9ioVjA" name="test$method$1" visibility="protected" specification="_FEgqIsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_FEgqiMOTEeSiR-ar9ioVjA" annotatedElement="_FEgqUMOTEeSiR-ar9ioVjA">
+ <body>activity 'test$method$1'(out seq1: String[0..*] sequence, out seq2: String[0..*] sequence, out seq3: any[0..*] sequence, out seq4: Integer[0..*] sequence, out seq5: Integer[0..*] sequence, out seq6: Integer[0..*] sequence, out seq7: Integer[0..*] sequence, out x: Integer, out customers: Customer[0..*] sequence, out set1: '$$Alf$Library$CollectionClasses$Set__PrimitiveTypes$Integer__', out set2: '$$Alf$Library$CollectionClasses$Set__PrimitiveTypes$Integer__', out list: '$$Alf$Library$CollectionClasses$List__$$Alf$Library$CollectionClasses$List__PrimitiveTypes$String____') {
+ seq1 = new String [] { &quot;apple&quot;, &quot;orange&quot;, &quot;strawberry&quot; };
+ seq2 = new String [] { &quot;apple&quot;, &quot;orange&quot;, &quot;strawberry&quot; };
+ seq3 = any [] { 1, true, &quot;blah&quot; };
+ seq4 = new Integer [] { 1, 2, 3 };
+ seq5 = new Integer [] { 1, 2, 3 };
+ seq6 = new Integer [] { 1..3 };
+ seq7 = null;
+ x = this.getList()[2];
+ i = 2;
+ customers = new Customer [] { new Customer(&quot;A&quot;), new Customer(&quot;B&quot;) };
+ customers[i] = new Customer(&quot;C&quot;);
+ set1 = new Set&lt; Integer >(new Integer [] { 1, 3, 45 });
+ set2 = new Set&lt; Integer > { 1, 3, 45 };
+ new Bag&lt; String > { &quot;Test&quot; };
+ list = new List&lt; List&lt; String > > { { &quot;apple&quot;, &quot;orange&quot; }, { &quot;strawberry&quot;,
+ &quot;raspberry&quot; } };
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_FEgqUcOTEeSiR-ar9ioVjA" name="seq1" isOrdered="true" isUnique="false" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqUsOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqU8OTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqVMOTEeSiR-ar9ioVjA" name="seq2" isOrdered="true" isUnique="false" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqVcOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqVsOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqV8OTEeSiR-ar9ioVjA" name="seq3" isOrdered="true" isUnique="false" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqWMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqWcOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqWsOTEeSiR-ar9ioVjA" name="seq4" isOrdered="true" isUnique="false" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqW8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqXMOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqXcOTEeSiR-ar9ioVjA" name="seq5" isOrdered="true" isUnique="false" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqXsOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqX8OTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqYMOTEeSiR-ar9ioVjA" name="seq6" isOrdered="true" isUnique="false" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqYcOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqYsOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqY8OTEeSiR-ar9ioVjA" name="seq7" isOrdered="true" isUnique="false" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqZMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqZcOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqZsOTEeSiR-ar9ioVjA" name="x" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqZ8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqaMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqacOTEeSiR-ar9ioVjA" name="customers" type="_FEgqAcOTEeSiR-ar9ioVjA" isOrdered="true" isUnique="false" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqasOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqa8OTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqbMOTEeSiR-ar9ioVjA" name="set1" type="_FEgqQcOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqbcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqbsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqb8OTEeSiR-ar9ioVjA" name="set2" type="_FEgqQcOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqcMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqccOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqcsOTEeSiR-ar9ioVjA" name="list" type="_FEgqSsOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqc8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqdMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_FEgqeMOTEeSiR-ar9ioVjA" name="Expressions_Sequence_Construction$initialization$1" visibility="protected" specification="_FEgqecOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_FEgqjsOTEeSiR-ar9ioVjA" annotatedElement="_FEgqeMOTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Sequence_Construction$initialization$1'(){
+ if (this.'Expressions_Sequence_Construction$initializationFlag$1' == null) {
+ this.'Expressions_Sequence_Construction$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_FEgqesOTEeSiR-ar9ioVjA" name="Expressions_Sequence_Construction$method$1" specification="_FEgqfsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_FEgqh8OTEeSiR-ar9ioVjA" annotatedElement="_FEgqesOTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Sequence_Construction$method$1'(): Expressions_Sequence_Construction {
+ this.'Expressions_Sequence_Construction$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_FEgqe8OTEeSiR-ar9ioVjA" type="_FEgqAMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqfMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqfcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_FEgqgsOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_FEgqg8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_FEgqhsOTEeSiR-ar9ioVjA" annotatedElement="_FEgqgsOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_FEgqhMOTEeSiR-ar9ioVjA" name="Expressions_Sequence_Construction$behavior$1" visibility="private">
+ <ownedComment xmi:id="_FEgqjMOTEeSiR-ar9ioVjA" annotatedElement="_FEgqhMOTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Sequence_Construction$behavior$1'() {
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_FEgqGsOTEeSiR-ar9ioVjA" name="getList" visibility="package" method="_FEgqHsOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_FEgqG8OTEeSiR-ar9ioVjA" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqHMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqHcOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_FEgqIsOTEeSiR-ar9ioVjA" name="test" visibility="package" method="_FEgqUMOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_FEgqI8OTEeSiR-ar9ioVjA" name="seq1" isOrdered="true" isUnique="false" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqJMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqJcOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqJsOTEeSiR-ar9ioVjA" name="seq2" isOrdered="true" isUnique="false" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqJ8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqKMOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqKcOTEeSiR-ar9ioVjA" name="seq3" isOrdered="true" isUnique="false" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqKsOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqK8OTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqLMOTEeSiR-ar9ioVjA" name="seq4" isOrdered="true" isUnique="false" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqLcOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqLsOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqL8OTEeSiR-ar9ioVjA" name="seq5" isOrdered="true" isUnique="false" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqMMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqMcOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqMsOTEeSiR-ar9ioVjA" name="seq6" isOrdered="true" isUnique="false" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqM8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqNMOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqNcOTEeSiR-ar9ioVjA" name="seq7" isOrdered="true" isUnique="false" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqNsOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqN8OTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqOMOTEeSiR-ar9ioVjA" name="x" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqOcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqOsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqO8OTEeSiR-ar9ioVjA" name="customers" type="_FEgqAcOTEeSiR-ar9ioVjA" isOrdered="true" isUnique="false" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqPMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqPcOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqPsOTEeSiR-ar9ioVjA" name="set1" type="_FEgqQcOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqP8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqQMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqRMOTEeSiR-ar9ioVjA" name="set2" type="_FEgqQcOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqRcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqRsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqR8OTEeSiR-ar9ioVjA" name="list" type="_FEgqSsOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqSMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqScOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_FEgqecOTEeSiR-ar9ioVjA" name="Expressions_Sequence_Construction$initialization$1" visibility="protected" method="_FEgqeMOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_FEgqfsOTEeSiR-ar9ioVjA" name="Expressions_Sequence_Construction" method="_FEgqesOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_FEgqf8OTEeSiR-ar9ioVjA" type="_FEgqAMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqgMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqgcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_FEgqg8OTEeSiR-ar9ioVjA" name="destroy" method="_FEgqgsOTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_FEgqAcOTEeSiR-ar9ioVjA" name="Customer" visibility="package">
+ <ownedAttribute xmi:id="_FEgqAsOTEeSiR-ar9ioVjA" name="name" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqA8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqBMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_FEgqE8OTEeSiR-ar9ioVjA" name="Customer$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqFMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqFcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_FEgqDMOTEeSiR-ar9ioVjA" name="Customer$method$1" visibility="protected" specification="_FEgqBcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_FEgqi8OTEeSiR-ar9ioVjA" annotatedElement="_FEgqDMOTEeSiR-ar9ioVjA">
+ <body>activity 'Customer$method$1'(in name: String): Customer {
+if (this.'Customer$initializationFlag$1' == null) {
+this.'Customer$initialization$1'();
+this.name = name;
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_FEgqDcOTEeSiR-ar9ioVjA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqDsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqD8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqEMOTEeSiR-ar9ioVjA" name="" type="_FEgqAcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqEcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqEsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_FEgqFsOTEeSiR-ar9ioVjA" name="Customer$initialization$1" visibility="protected" specification="_FEgqF8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_FEgqjcOTEeSiR-ar9ioVjA" annotatedElement="_FEgqFsOTEeSiR-ar9ioVjA">
+ <body>activity 'Customer$initialization$1'(){
+ if (this.'Customer$initializationFlag$1' == null) {
+ this.'Customer$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_FEgqGMOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_FEgqGcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_FEgqisOTEeSiR-ar9ioVjA" annotatedElement="_FEgqGMOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_FEgqBcOTEeSiR-ar9ioVjA" name="Customer" visibility="package" method="_FEgqDMOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_FEgqBsOTEeSiR-ar9ioVjA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqB8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqCMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_FEgqCcOTEeSiR-ar9ioVjA" name="" type="_FEgqAcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FEgqCsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FEgqC8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_FEgqF8OTEeSiR-ar9ioVjA" name="Customer$initialization$1" visibility="protected" method="_FEgqFsOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_FEgqGcOTEeSiR-ar9ioVjA" name="destroy" method="_FEgqGMOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_FEgqQcOTEeSiR-ar9ioVjA" name="$$Alf$Library$CollectionClasses$Set__PrimitiveTypes$Integer__">
+ <templateBinding xmi:id="_FEgqQsOTEeSiR-ar9ioVjA">
+ <parameterSubstitution xmi:id="_FEgqQ8OTEeSiR-ar9ioVjA">
+ <actual xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <formal xmi:type="uml:ClassifierTemplateParameter" href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf-Library-CollectionClasses-Set-ownedTemplateSignature-ownedParameter"/>
+ </parameterSubstitution>
+ <signature xmi:type="uml:RedefinableTemplateSignature" href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf-Library-CollectionClasses-Set-ownedTemplateSignature"/>
+ </templateBinding>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_FEgqSsOTEeSiR-ar9ioVjA" name="$$Alf$Library$CollectionClasses$List__$$Alf$Library$CollectionClasses$List__PrimitiveTypes$String____">
+ <templateBinding xmi:id="_FEgqS8OTEeSiR-ar9ioVjA">
+ <parameterSubstitution xmi:id="_FEgqTMOTEeSiR-ar9ioVjA" actual="_FEgqTcOTEeSiR-ar9ioVjA">
+ <formal xmi:type="uml:ClassifierTemplateParameter" href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf-Library-CollectionClasses-List-ownedTemplateSignature-ownedParameter"/>
+ </parameterSubstitution>
+ <signature xmi:type="uml:RedefinableTemplateSignature" href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf-Library-CollectionClasses-List-ownedTemplateSignature"/>
+ </templateBinding>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_FEgqTcOTEeSiR-ar9ioVjA" name="$$Alf$Library$CollectionClasses$List__PrimitiveTypes$String__">
+ <templateBinding xmi:id="_FEgqTsOTEeSiR-ar9ioVjA">
+ <parameterSubstitution xmi:id="_FEgqT8OTEeSiR-ar9ioVjA">
+ <actual xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <formal xmi:type="uml:ClassifierTemplateParameter" href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf-Library-CollectionClasses-List-ownedTemplateSignature-ownedParameter"/>
+ </parameterSubstitution>
+ <signature xmi:type="uml:RedefinableTemplateSignature" href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf-Library-CollectionClasses-List-ownedTemplateSignature"/>
+ </templateBinding>
+ </packagedElement>
+ <profileApplication xmi:id="_EiQRgcOTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_EiQRgsOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_EiQRg8OTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_EiQRhMOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Destroy xmi:id="_FEgqj8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_FEgqg8OTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_FEgqkMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_FEgqfsOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_FEgqkcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_FEgqGcOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_FEgqksOTEeSiR-ar9ioVjA" base_BehavioralFeature="_FEgqBcOTEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_FEgqk8OTEeSiR-ar9ioVjA" base_Comment="_FEgqhsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_FEgqlMOTEeSiR-ar9ioVjA" base_Comment="_FEgqh8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_FEgqlcOTEeSiR-ar9ioVjA" base_Comment="_FEgqiMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_FEgqlsOTEeSiR-ar9ioVjA" base_Comment="_FEgqicOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_FEgql8OTEeSiR-ar9ioVjA" base_Comment="_FEgqisOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_FEgqmMOTEeSiR-ar9ioVjA" base_Comment="_FEgqi8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_FEgqmcOTEeSiR-ar9ioVjA" base_Comment="_FEgqjMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_FEgqmsOTEeSiR-ar9ioVjA" base_Comment="_FEgqjcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_FEgqm8OTEeSiR-ar9ioVjA" base_Comment="_FEgqjsOTEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Sequence_Expansion_Reduction.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Sequence_Expansion_Reduction.uml
new file mode 100644
index 00000000000..77e444c0b0a
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Sequence_Expansion_Reduction.uml
@@ -0,0 +1,552 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_FFL_cMOTEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_GUd2AMOTEeSiR-ar9ioVjA" name="Expressions_Sequence_Expansion_Reduction" classifierBehavior="_GUd2y8OTEeSiR-ar9ioVjA" isActive="true">
+ <ownedComment xmi:id="_GUedEMOTEeSiR-ar9ioVjA" annotatedElement="_GUd2AMOTEeSiR-ar9ioVjA">
+ <body>&#xD;
+ * Test sequence expansion and reduction expressions.&#xD;
+ *</body>
+ </ownedComment>
+ <packageImport xmi:id="_GUedEcOTEeSiR-ar9ioVjA" visibility="private">
+ <importedPackage href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf-Library-PrimitiveBehaviors-IntegerFunctions"/>
+ </packageImport>
+ <ownedAttribute xmi:id="_GUd2vMOTEeSiR-ar9ioVjA" name="Expressions_Sequence_Expansion_Reduction$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2vcOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2vsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2v8OTEeSiR-ar9ioVjA" name="Expressions_Sequence_Expansion_Reduction$initialization$1" visibility="protected" specification="_GUd2wMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_GUedIMOTEeSiR-ar9ioVjA" annotatedElement="_GUd2v8OTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Sequence_Expansion_Reduction$initialization$1'(){
+ if (this.'Expressions_Sequence_Expansion_Reduction$initializationFlag$1' == null) {
+ this.'Expressions_Sequence_Expansion_Reduction$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2wcOTEeSiR-ar9ioVjA" name="Expressions_Sequence_Expansion_Reduction$method$1" specification="_GUd2xcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_GUedHMOTEeSiR-ar9ioVjA" annotatedElement="_GUd2wcOTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Sequence_Expansion_Reduction$method$1'(): Expressions_Sequence_Expansion_Reduction {
+ this.'Expressions_Sequence_Expansion_Reduction$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_GUd2wsOTEeSiR-ar9ioVjA" type="_GUd2AMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2w8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2xMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2ycOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_GUd2ysOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_GUedFMOTEeSiR-ar9ioVjA" annotatedElement="_GUd2ycOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2y8OTEeSiR-ar9ioVjA" name="Expressions_Sequence_Expansion_Reduction$behavior$1" visibility="private">
+ <ownedComment xmi:id="_GUedKMOTEeSiR-ar9ioVjA" annotatedElement="_GUd2y8OTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Sequence_Expansion_Reduction$behavior$1'() {
+ test(sum, remainder, bad, select, reject, collect, iterate, forAll, exists,
+ one, unique, jack, joan, something, obj);
+ WriteLine(&quot;Done&quot;);
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_GUd2wMOTEeSiR-ar9ioVjA" name="Expressions_Sequence_Expansion_Reduction$initialization$1" visibility="protected" method="_GUd2v8OTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_GUd2xcOTEeSiR-ar9ioVjA" name="Expressions_Sequence_Expansion_Reduction" method="_GUd2wcOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_GUd2xsOTEeSiR-ar9ioVjA" type="_GUd2AMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2x8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2yMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_GUd2ysOTEeSiR-ar9ioVjA" name="destroy" method="_GUd2ycOTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_GUd2AcOTEeSiR-ar9ioVjA" name="Employee" visibility="public">
+ <ownedAttribute xmi:id="_GUd2AsOTEeSiR-ar9ioVjA" name="age" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2A8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2BMOTEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_GUd2BcOTEeSiR-ar9ioVjA" behavior="_GUd2BsOTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_GUd2CsOTEeSiR-ar9ioVjA" name="isMarried" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2C8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2DMOTEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_GUd2DcOTEeSiR-ar9ioVjA" behavior="_GUd2DsOTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_GUd2EsOTEeSiR-ar9ioVjA" name="name" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2E8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2FMOTEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_GUd2FcOTEeSiR-ar9ioVjA" behavior="_GUd2FsOTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_GUd2GsOTEeSiR-ar9ioVjA" name="title" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2G8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2HMOTEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_GUd2HcOTEeSiR-ar9ioVjA" behavior="_GUd2HsOTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_GUd2IsOTEeSiR-ar9ioVjA" name="id" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2I8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2JMOTEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_GUd2JcOTEeSiR-ar9ioVjA" behavior="_GUd2JsOTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_GUd2KsOTEeSiR-ar9ioVjA" name="Employee$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2K8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2LMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2BsOTEeSiR-ar9ioVjA" name="age$defaultValue$1">
+ <ownedComment xmi:id="_GUedF8OTEeSiR-ar9ioVjA" annotatedElement="_GUd2BsOTEeSiR-ar9ioVjA">
+ <body>activity 'age$defaultValue$1'(): Integer {
+ return 51;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_GUd2B8OTEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2CMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2CcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2DsOTEeSiR-ar9ioVjA" name="isMarried$defaultValue$1">
+ <ownedComment xmi:id="_GUedJsOTEeSiR-ar9ioVjA" annotatedElement="_GUd2DsOTEeSiR-ar9ioVjA">
+ <body>activity 'isMarried$defaultValue$1'(): Boolean {
+ return true;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_GUd2D8OTEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2EMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2EcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2FsOTEeSiR-ar9ioVjA" name="name$defaultValue$1">
+ <ownedComment xmi:id="_GUedKsOTEeSiR-ar9ioVjA" annotatedElement="_GUd2FsOTEeSiR-ar9ioVjA">
+ <body>activity 'name$defaultValue$1'(): String {
+ return &quot;Joan&quot;;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_GUd2F8OTEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2GMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2GcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2HsOTEeSiR-ar9ioVjA" name="title$defaultValue$1">
+ <ownedComment xmi:id="_GUedEsOTEeSiR-ar9ioVjA" annotatedElement="_GUd2HsOTEeSiR-ar9ioVjA">
+ <body>activity 'title$defaultValue$1'(): String {
+ return &quot;President&quot;;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_GUd2H8OTEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2IMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2IcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2JsOTEeSiR-ar9ioVjA" name="id$defaultValue$1">
+ <ownedComment xmi:id="_GUedGMOTEeSiR-ar9ioVjA" annotatedElement="_GUd2JsOTEeSiR-ar9ioVjA">
+ <body>activity 'id$defaultValue$1'(): Integer {
+ return 1;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_GUd2J8OTEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2KMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2KcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2LcOTEeSiR-ar9ioVjA" name="Employee$initialization$1" visibility="protected" specification="_GUd2LsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_GUedH8OTEeSiR-ar9ioVjA" annotatedElement="_GUd2LcOTEeSiR-ar9ioVjA">
+ <body>activity 'Employee$initialization$1'(){
+ if (this.'Employee$initializationFlag$1' == null) {
+ this.age = 'age$defaultValue$1'();
+ this.isMarried = 'isMarried$defaultValue$1'();
+ this.name = 'name$defaultValue$1'();
+ this.title = 'title$defaultValue$1'();
+ this.id = 'id$defaultValue$1'();
+ this.'Employee$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2L8OTEeSiR-ar9ioVjA" name="Employee$method$1" specification="_GUd2M8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_GUedFsOTEeSiR-ar9ioVjA" annotatedElement="_GUd2L8OTEeSiR-ar9ioVjA">
+ <body>activity 'Employee$method$1'(): Employee {
+ this.'Employee$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_GUd2MMOTEeSiR-ar9ioVjA" type="_GUd2AcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2McOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2MsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2N8OTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_GUd2OMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_GUedGcOTEeSiR-ar9ioVjA" annotatedElement="_GUd2N8OTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_GUd2LsOTEeSiR-ar9ioVjA" name="Employee$initialization$1" visibility="protected" method="_GUd2LcOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_GUd2M8OTEeSiR-ar9ioVjA" name="Employee" method="_GUd2L8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_GUd2NMOTEeSiR-ar9ioVjA" type="_GUd2AcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2NcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2NsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_GUd2OMOTEeSiR-ar9ioVjA" name="destroy" method="_GUd2N8OTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_GUd2OcOTEeSiR-ar9ioVjA" name="Attribute" visibility="public">
+ <ownedAttribute xmi:id="_GUd2OsOTEeSiR-ar9ioVjA" name="type" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2O8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2PMOTEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_GUd2PcOTEeSiR-ar9ioVjA" behavior="_GUd2PsOTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_GUd2QsOTEeSiR-ar9ioVjA" name="Attribute$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2Q8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2RMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2PsOTEeSiR-ar9ioVjA" name="type$defaultValue$1">
+ <ownedComment xmi:id="_GUedG8OTEeSiR-ar9ioVjA" annotatedElement="_GUd2PsOTEeSiR-ar9ioVjA">
+ <body>activity 'type$defaultValue$1'(): Integer {
+ return 0;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_GUd2P8OTEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2QMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2QcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2RcOTEeSiR-ar9ioVjA" name="Attribute$initialization$1" visibility="protected" specification="_GUd2RsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_GUedK8OTEeSiR-ar9ioVjA" annotatedElement="_GUd2RcOTEeSiR-ar9ioVjA">
+ <body>activity 'Attribute$initialization$1'(){
+ if (this.'Attribute$initializationFlag$1' == null) {
+ this.type = 'type$defaultValue$1'();
+ this.'Attribute$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2R8OTEeSiR-ar9ioVjA" name="Attribute$method$1" specification="_GUd2S8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_GUedHcOTEeSiR-ar9ioVjA" annotatedElement="_GUd2R8OTEeSiR-ar9ioVjA">
+ <body>activity 'Attribute$method$1'(): Attribute {
+ this.'Attribute$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_GUd2SMOTEeSiR-ar9ioVjA" type="_GUd2OcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2ScOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2SsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2T8OTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_GUd2UMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_GUedIsOTEeSiR-ar9ioVjA" annotatedElement="_GUd2T8OTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_GUd2RsOTEeSiR-ar9ioVjA" name="Attribute$initialization$1" visibility="protected" method="_GUd2RcOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_GUd2S8OTEeSiR-ar9ioVjA" name="Attribute" method="_GUd2R8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_GUd2TMOTEeSiR-ar9ioVjA" type="_GUd2OcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2TcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2TsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_GUd2UMOTEeSiR-ar9ioVjA" name="destroy" method="_GUd2T8OTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_GUd2UcOTEeSiR-ar9ioVjA" name="Something" visibility="public">
+ <ownedAttribute xmi:id="_GUd2UsOTEeSiR-ar9ioVjA" name="attribute" visibility="public" type="_GUd2OcOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2U8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2VMOTEeSiR-ar9ioVjA" value="*"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_GUd2VcOTEeSiR-ar9ioVjA" behavior="_GUd2VsOTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_GUd2WsOTEeSiR-ar9ioVjA" name="Something$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2W8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2XMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2VsOTEeSiR-ar9ioVjA" name="attribute$defaultValue$1">
+ <ownedComment xmi:id="_GUedJMOTEeSiR-ar9ioVjA" annotatedElement="_GUd2VsOTEeSiR-ar9ioVjA">
+ <body>activity 'attribute$defaultValue$1'(): Attribute[0..*] {
+ return new Attribute();
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_GUd2V8OTEeSiR-ar9ioVjA" type="_GUd2OcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2WMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2WcOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2XcOTEeSiR-ar9ioVjA" name="Something$initialization$1" visibility="protected" specification="_GUd2XsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_GUedJcOTEeSiR-ar9ioVjA" annotatedElement="_GUd2XcOTEeSiR-ar9ioVjA">
+ <body>activity 'Something$initialization$1'(){
+ if (this.'Something$initializationFlag$1' == null) {
+ this.attribute = 'attribute$defaultValue$1'();
+ this.'Something$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2X8OTEeSiR-ar9ioVjA" name="Something$method$1" specification="_GUd2Y8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_GUedI8OTEeSiR-ar9ioVjA" annotatedElement="_GUd2X8OTEeSiR-ar9ioVjA">
+ <body>activity 'Something$method$1'(): Something {
+ this.'Something$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_GUd2YMOTEeSiR-ar9ioVjA" type="_GUd2UcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2YcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2YsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2Z8OTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_GUd2aMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_GUedIcOTEeSiR-ar9ioVjA" annotatedElement="_GUd2Z8OTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_GUd2XsOTEeSiR-ar9ioVjA" name="Something$initialization$1" visibility="protected" method="_GUd2XcOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_GUd2Y8OTEeSiR-ar9ioVjA" name="Something" method="_GUd2X8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_GUd2ZMOTEeSiR-ar9ioVjA" type="_GUd2UcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2ZcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2ZsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_GUd2aMOTEeSiR-ar9ioVjA" name="destroy" method="_GUd2Z8OTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_GUd2acOTEeSiR-ar9ioVjA" name="Object" visibility="public">
+ <ownedAttribute xmi:id="_GUd2asOTEeSiR-ar9ioVjA" name="attr" visibility="public" type="_GUd2OcOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2a8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2bMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_GUd2dcOTEeSiR-ar9ioVjA" name="Object$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2dsOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2d8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2ccOTEeSiR-ar9ioVjA" name="init$method$1" visibility="protected" specification="_GUd2bcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_GUedHsOTEeSiR-ar9ioVjA" annotatedElement="_GUd2ccOTEeSiR-ar9ioVjA">
+ <body>activity 'init$method$1'(in attr: Attribute) {
+ this.attr = attr;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_GUd2csOTEeSiR-ar9ioVjA" name="attr" type="_GUd2OcOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2c8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2dMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2eMOTEeSiR-ar9ioVjA" name="Object$initialization$1" visibility="protected" specification="_GUd2ecOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_GUedE8OTEeSiR-ar9ioVjA" annotatedElement="_GUd2eMOTEeSiR-ar9ioVjA">
+ <body>activity 'Object$initialization$1'(){
+ if (this.'Object$initializationFlag$1' == null) {
+ this.'Object$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2esOTEeSiR-ar9ioVjA" name="Object$method$1" specification="_GUd2fsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_GUedJ8OTEeSiR-ar9ioVjA" annotatedElement="_GUd2esOTEeSiR-ar9ioVjA">
+ <body>activity 'Object$method$1'(): Object {
+ this.'Object$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_GUd2e8OTEeSiR-ar9ioVjA" type="_GUd2acOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2fMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2fcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GUd2gsOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_GUd2g8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_GUedFcOTEeSiR-ar9ioVjA" annotatedElement="_GUd2gsOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_GUd2bcOTEeSiR-ar9ioVjA" name="init" visibility="public" method="_GUd2ccOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_GUd2bsOTEeSiR-ar9ioVjA" name="attr" type="_GUd2OcOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2b8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2cMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_GUd2ecOTEeSiR-ar9ioVjA" name="Object$initialization$1" visibility="protected" method="_GUd2eMOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_GUd2fsOTEeSiR-ar9ioVjA" name="Object" method="_GUd2esOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_GUd2f8OTEeSiR-ar9ioVjA" type="_GUd2acOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2gMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2gcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_GUd2g8OTEeSiR-ar9ioVjA" name="destroy" method="_GUd2gsOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Activity" xmi:id="_GUd2hMOTEeSiR-ar9ioVjA" name="Bad" visibility="package">
+ <ownedComment xmi:id="_GUedGsOTEeSiR-ar9ioVjA" annotatedElement="_GUd2hMOTEeSiR-ar9ioVjA">
+ <body>activity Bad(in x: Integer, in y: Integer): Integer {
+ return x / y;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_GUd2hcOTEeSiR-ar9ioVjA" name="x">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2hsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2h8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GUd2iMOTEeSiR-ar9ioVjA" name="y">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2icOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2isOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GUd2i8OTEeSiR-ar9ioVjA" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2jMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2jcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Activity" xmi:id="_GUd2jsOTEeSiR-ar9ioVjA" name="test" visibility="public">
+ <ownedComment xmi:id="_GUedKcOTEeSiR-ar9ioVjA" annotatedElement="_GUd2jsOTEeSiR-ar9ioVjA">
+ <body>activity test(out sum: Integer, out remainder: Integer, out bad: Integer, out select: Employee[0..*] sequence, out reject: Employee[0..*] sequence, out collect: String[0..*] sequence, out iterate: String[0..*] sequence, out forAll: Boolean, out exists: Boolean, out one: Boolean, out unique: Boolean, out jack: Employee, out joan: Employee, out something: Something, out obj: Object) {
+ subtotals = new Integer [] { 1, 2, 3 };
+ sum = subtotals->reduce '+';
+ remainder = subtotals->reduce ordered '%';
+ bad = new Integer [] { 1, 0, 4, 2 }->reduce Bad;
+ e1 = new Employee();
+ e2 = new Employee();
+ e2.name = &quot;Jack&quot;;
+ e2.age = 30;
+ e2.isMarried = false;
+ e2.title = &quot;Director&quot;;
+ e2.id = 1;
+ employees = new Employee [] { e1, e2 };
+ select = employees->select e (e.age > 50);
+ reject = employees->reject e (e.isMarried);
+ collect = employees->collect a (a.name);
+ iterate = employees->iterate e (e.name);
+ forAll = employees->forAll e (e.age &lt;= 65);
+ exists = employees->exists e (e.name == &quot;Joan&quot;);
+ one = employees->one e (e.title == &quot;President&quot;);
+ unique = employees->isUnique e (e.id);
+ jack = Employee->select e (e.name == &quot;Jack&quot;)[1];
+ joan = Employee.allInstances ()->select e (e.name == &quot;Joan&quot;)[1];
+ myType = + 1;
+ something = new Something();
+ something.attribute->iterate attr (attr.type = myType);
+ obj = new Object();
+ something.attribute->iterate attr (obj.init(attr));
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_GUd2j8OTEeSiR-ar9ioVjA" name="sum" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2kMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2kcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GUd2ksOTEeSiR-ar9ioVjA" name="remainder" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2k8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2lMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GUd2lcOTEeSiR-ar9ioVjA" name="bad" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2lsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2l8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GUd2mMOTEeSiR-ar9ioVjA" name="select" type="_GUd2AcOTEeSiR-ar9ioVjA" isOrdered="true" isUnique="false" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2mcOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2msOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GUd2m8OTEeSiR-ar9ioVjA" name="reject" type="_GUd2AcOTEeSiR-ar9ioVjA" isOrdered="true" isUnique="false" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2nMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2ncOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GUd2nsOTEeSiR-ar9ioVjA" name="collect" isOrdered="true" isUnique="false" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2n8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2oMOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GUd2ocOTEeSiR-ar9ioVjA" name="iterate" isOrdered="true" isUnique="false" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2osOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2o8OTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GUd2pMOTEeSiR-ar9ioVjA" name="forAll" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2pcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2psOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GUd2p8OTEeSiR-ar9ioVjA" name="exists" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2qMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2qcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GUd2qsOTEeSiR-ar9ioVjA" name="one" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2q8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2rMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GUd2rcOTEeSiR-ar9ioVjA" name="unique" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2rsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2r8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GUd2sMOTEeSiR-ar9ioVjA" name="jack" type="_GUd2AcOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2scOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2ssOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GUd2s8OTEeSiR-ar9ioVjA" name="joan" type="_GUd2AcOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2tMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2tcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GUd2tsOTEeSiR-ar9ioVjA" name="something" type="_GUd2UcOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2t8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2uMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GUd2ucOTEeSiR-ar9ioVjA" name="obj" type="_GUd2acOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GUd2usOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GUd2u8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:id="_FFL_ccOTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_FFL_csOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_FFL_c8OTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_FFL_dMOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Create xmi:id="_GUedLMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_GUd2M8OTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_GUedLcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_GUd2xcOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_GUedLsOTEeSiR-ar9ioVjA" base_BehavioralFeature="_GUd2ysOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_GUedL8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_GUd2aMOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_GUedMMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_GUd2OMOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_GUedMcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_GUd2fsOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_GUedMsOTEeSiR-ar9ioVjA" base_BehavioralFeature="_GUd2UMOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_GUedM8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_GUd2Y8OTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_GUedNMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_GUd2g8OTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_GUedNcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_GUd2S8OTEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedNsOTEeSiR-ar9ioVjA" base_Comment="_GUedEsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedN8OTEeSiR-ar9ioVjA" base_Comment="_GUedE8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedOMOTEeSiR-ar9ioVjA" base_Comment="_GUedFMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedOcOTEeSiR-ar9ioVjA" base_Comment="_GUedFcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedOsOTEeSiR-ar9ioVjA" base_Comment="_GUedFsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedO8OTEeSiR-ar9ioVjA" base_Comment="_GUedF8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedPMOTEeSiR-ar9ioVjA" base_Comment="_GUedGMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedPcOTEeSiR-ar9ioVjA" base_Comment="_GUedGcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedPsOTEeSiR-ar9ioVjA" base_Comment="_GUedGsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedP8OTEeSiR-ar9ioVjA" base_Comment="_GUedG8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedQMOTEeSiR-ar9ioVjA" base_Comment="_GUedHMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedQcOTEeSiR-ar9ioVjA" base_Comment="_GUedHcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedQsOTEeSiR-ar9ioVjA" base_Comment="_GUedHsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedQ8OTEeSiR-ar9ioVjA" base_Comment="_GUedH8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedRMOTEeSiR-ar9ioVjA" base_Comment="_GUedIMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedRcOTEeSiR-ar9ioVjA" base_Comment="_GUedIcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedRsOTEeSiR-ar9ioVjA" base_Comment="_GUedIsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedR8OTEeSiR-ar9ioVjA" base_Comment="_GUedI8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedSMOTEeSiR-ar9ioVjA" base_Comment="_GUedJMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedScOTEeSiR-ar9ioVjA" base_Comment="_GUedJcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedSsOTEeSiR-ar9ioVjA" base_Comment="_GUedJsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedS8OTEeSiR-ar9ioVjA" base_Comment="_GUedJ8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedTMOTEeSiR-ar9ioVjA" base_Comment="_GUedKMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedTcOTEeSiR-ar9ioVjA" base_Comment="_GUedKcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedTsOTEeSiR-ar9ioVjA" base_Comment="_GUedKsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GUedT8OTEeSiR-ar9ioVjA" base_Comment="_GUedK8OTEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Sequence_Operation.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Sequence_Operation.uml
new file mode 100644
index 00000000000..53f6599999d
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Sequence_Operation.uml
@@ -0,0 +1,225 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_GVJLcMOTEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_GwHQMMOTEeSiR-ar9ioVjA" name="Expressions_Sequence_Operation" classifierBehavior="_GwHQf8OTEeSiR-ar9ioVjA" isActive="true">
+ <ownedComment xmi:id="_GwHQgMOTEeSiR-ar9ioVjA" annotatedElement="_GwHQMMOTEeSiR-ar9ioVjA">
+ <body>&#xD;
+ * Test sequence operation expressions.&#xD;
+ *</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_GwHQcMOTEeSiR-ar9ioVjA" name="Expressions_Sequence_Operation$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GwHQccOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GwHQcsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GwHQXcOTEeSiR-ar9ioVjA" name="test$method$1" visibility="protected" specification="_GwHQSsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_GwHQgsOTEeSiR-ar9ioVjA" annotatedElement="_GwHQXcOTEeSiR-ar9ioVjA">
+ <body>activity 'test$method$1'(out notEmpty: Boolean, out includes: Boolean, out m: Integer, out n: Integer, out customers: Customer[0..*], out list: any[0..*]) {
+ customer = new Customer(&quot;A&quot;);
+ customers = new Customer [] { };
+ notEmpty = customers->notEmpty();
+ customers->notEmpty();
+ includes = customers->includes(customer);
+ customers = customers->including(customer);
+ customers->add(new Customer(&quot;B&quot;));
+ customers->add(new Customer(&quot;C&quot;));
+ customers->add(customer);
+ customers->removeAt(2);
+ customers->remove(customer);
+ m = Customer->size();
+ n = Customer.allInstances ()->size();
+ list = null;
+ list = list->including(customer);
+ list->add(customer);
+ list->add(&quot;Blah&quot;);
+ list->add(1);
+ list->removeAll(customer);
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_GwHQXsOTEeSiR-ar9ioVjA" name="notEmpty" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GwHQX8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GwHQYMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GwHQYcOTEeSiR-ar9ioVjA" name="includes" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GwHQYsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GwHQY8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GwHQZMOTEeSiR-ar9ioVjA" name="m" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GwHQZcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GwHQZsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GwHQZ8OTEeSiR-ar9ioVjA" name="n" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GwHQaMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GwHQacOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GwHQasOTEeSiR-ar9ioVjA" name="customers" type="_GwHQMcOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GwHQa8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GwHQbMOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GwHQbcOTEeSiR-ar9ioVjA" name="list" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GwHQbsOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GwHQb8OTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GwHQc8OTEeSiR-ar9ioVjA" name="Expressions_Sequence_Operation$initialization$1" visibility="protected" specification="_GwHQdMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_GwHQhMOTEeSiR-ar9ioVjA" annotatedElement="_GwHQc8OTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Sequence_Operation$initialization$1'(){
+ if (this.'Expressions_Sequence_Operation$initializationFlag$1' == null) {
+ this.'Expressions_Sequence_Operation$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GwHQdcOTEeSiR-ar9ioVjA" name="Expressions_Sequence_Operation$method$1" specification="_GwHQecOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_GwHQgcOTEeSiR-ar9ioVjA" annotatedElement="_GwHQdcOTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Sequence_Operation$method$1'(): Expressions_Sequence_Operation {
+ this.'Expressions_Sequence_Operation$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_GwHQdsOTEeSiR-ar9ioVjA" type="_GwHQMMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GwHQd8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GwHQeMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GwHQfcOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_GwHQfsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_GwHQhsOTEeSiR-ar9ioVjA" annotatedElement="_GwHQfcOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GwHQf8OTEeSiR-ar9ioVjA" name="Expressions_Sequence_Operation$behavior$1" visibility="private">
+ <ownedComment xmi:id="_GwHQh8OTEeSiR-ar9ioVjA" annotatedElement="_GwHQf8OTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Sequence_Operation$behavior$1'() {
+ this.test(notEmpty, includes, n, m, customers, list);
+ WriteLine(&quot;Done&quot;);
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_GwHQSsOTEeSiR-ar9ioVjA" name="test" visibility="package" method="_GwHQXcOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_GwHQS8OTEeSiR-ar9ioVjA" name="notEmpty" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GwHQTMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GwHQTcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GwHQTsOTEeSiR-ar9ioVjA" name="includes" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GwHQT8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GwHQUMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GwHQUcOTEeSiR-ar9ioVjA" name="m" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GwHQUsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GwHQU8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GwHQVMOTEeSiR-ar9ioVjA" name="n" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GwHQVcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GwHQVsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GwHQV8OTEeSiR-ar9ioVjA" name="customers" type="_GwHQMcOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GwHQWMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GwHQWcOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GwHQWsOTEeSiR-ar9ioVjA" name="list" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GwHQW8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GwHQXMOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_GwHQdMOTEeSiR-ar9ioVjA" name="Expressions_Sequence_Operation$initialization$1" visibility="protected" method="_GwHQc8OTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_GwHQecOTEeSiR-ar9ioVjA" name="Expressions_Sequence_Operation" method="_GwHQdcOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_GwHQesOTEeSiR-ar9ioVjA" type="_GwHQMMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GwHQe8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GwHQfMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_GwHQfsOTEeSiR-ar9ioVjA" name="destroy" method="_GwHQfcOTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_GwHQMcOTEeSiR-ar9ioVjA" name="Customer" visibility="package">
+ <ownedAttribute xmi:id="_GwHQMsOTEeSiR-ar9ioVjA" name="name" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GwHQM8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GwHQNMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_GwHQQ8OTEeSiR-ar9ioVjA" name="Customer$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GwHQRMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GwHQRcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GwHQPMOTEeSiR-ar9ioVjA" name="Customer$method$1" visibility="protected" specification="_GwHQNcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_GwHQiMOTEeSiR-ar9ioVjA" annotatedElement="_GwHQPMOTEeSiR-ar9ioVjA">
+ <body>activity 'Customer$method$1'(in name: String): Customer {
+if (this.'Customer$initializationFlag$1' == null) {
+this.'Customer$initialization$1'();
+this.name = name;
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_GwHQPcOTEeSiR-ar9ioVjA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GwHQPsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GwHQP8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GwHQQMOTEeSiR-ar9ioVjA" name="" type="_GwHQMcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GwHQQcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GwHQQsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GwHQRsOTEeSiR-ar9ioVjA" name="Customer$initialization$1" visibility="protected" specification="_GwHQR8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_GwHQg8OTEeSiR-ar9ioVjA" annotatedElement="_GwHQRsOTEeSiR-ar9ioVjA">
+ <body>activity 'Customer$initialization$1'(){
+ if (this.'Customer$initializationFlag$1' == null) {
+ this.'Customer$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_GwHQSMOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_GwHQScOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_GwHQhcOTEeSiR-ar9ioVjA" annotatedElement="_GwHQSMOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_GwHQNcOTEeSiR-ar9ioVjA" name="Customer" visibility="package" method="_GwHQPMOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_GwHQNsOTEeSiR-ar9ioVjA" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GwHQN8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GwHQOMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_GwHQOcOTEeSiR-ar9ioVjA" name="" type="_GwHQMcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GwHQOsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GwHQO8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_GwHQR8OTEeSiR-ar9ioVjA" name="Customer$initialization$1" visibility="protected" method="_GwHQRsOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_GwHQScOTEeSiR-ar9ioVjA" name="destroy" method="_GwHQSMOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:id="_GVJLccOTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_GVJLcsOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_GVJLc8OTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_GVJLdMOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Destroy xmi:id="_GwHQicOTEeSiR-ar9ioVjA" base_BehavioralFeature="_GwHQfsOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_GwHQisOTEeSiR-ar9ioVjA" base_BehavioralFeature="_GwHQNcOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_GwHQi8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_GwHQecOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_GwHQjMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_GwHQScOTEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GwHQjcOTEeSiR-ar9ioVjA" base_Comment="_GwHQgcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GwHQjsOTEeSiR-ar9ioVjA" base_Comment="_GwHQgsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GwHQj8OTEeSiR-ar9ioVjA" base_Comment="_GwHQg8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GwHQkMOTEeSiR-ar9ioVjA" base_Comment="_GwHQhMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GwHQkcOTEeSiR-ar9ioVjA" base_Comment="_GwHQhcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GwHQksOTEeSiR-ar9ioVjA" base_Comment="_GwHQhsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GwHQk8OTEeSiR-ar9ioVjA" base_Comment="_GwHQh8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_GwHQlMOTEeSiR-ar9ioVjA" base_Comment="_GwHQiMOTEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_SuperConstructors.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_SuperConstructors.uml
new file mode 100644
index 00000000000..768fc044e52
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_SuperConstructors.uml
@@ -0,0 +1,697 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_GwZkEMOTEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_IXy_sMOTEeSiR-ar9ioVjA" name="Expressions_SuperConstructors" classifierBehavior="_IXzndcOTEeSiR-ar9ioVjA" isActive="true">
+ <ownedComment xmi:id="_IXzndsOTEeSiR-ar9ioVjA" annotatedElement="_IXy_sMOTEeSiR-ar9ioVjA">
+ <body>
+ * Test super constructor invocation expressions.
+ *</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_IXznZsOTEeSiR-ar9ioVjA" name="Expressions_SuperConstructors$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznZ8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznaMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXznSsOTEeSiR-ar9ioVjA" name="test$method$1" visibility="protected" specification="_IXznLsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IYJlEsOTEeSiR-ar9ioVjA" annotatedElement="_IXznSsOTEeSiR-ar9ioVjA">
+ <body>activity 'test$method$1'(out super0: Super1, out super1: Super1, out s0: Sub1, out s1: Sub1, out s2: Sub1, out s00: Sub2, out s10: Sub2, out s11: Sub2, out s3: Sub3) {
+ super0 = new Super1();
+ super1 = new Super1::create(1);
+ s0 = new Sub1();
+ s1 = new Sub1::a();
+ s2 = new Sub1::b(2);
+ s00 = new Sub2();
+ s10 = new Sub2::create1(1);
+ s11 = new Sub2::create2(1, 1);
+ s3 = new Sub3();
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_IXznS8OTEeSiR-ar9ioVjA" name="super0" type="_IXy_scOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznTMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznTcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXznTsOTEeSiR-ar9ioVjA" name="super1" type="_IXy_scOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznT8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznUMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXznUcOTEeSiR-ar9ioVjA" name="s0" type="_IXy_18OTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznUsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznU8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXznVMOTEeSiR-ar9ioVjA" name="s1" type="_IXy_18OTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznVcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznVsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXznV8OTEeSiR-ar9ioVjA" name="s2" type="_IXy_18OTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznWMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznWcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXznWsOTEeSiR-ar9ioVjA" name="s00" type="_IXzm4MOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznW8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznXMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXznXcOTEeSiR-ar9ioVjA" name="s10" type="_IXzm4MOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznXsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznX8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXznYMOTEeSiR-ar9ioVjA" name="s11" type="_IXzm4MOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznYcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznYsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXznY8OTEeSiR-ar9ioVjA" name="s3" type="_IXznHMOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznZMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznZcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXznacOTEeSiR-ar9ioVjA" name="Expressions_SuperConstructors$initialization$1" visibility="protected" specification="_IXznasOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IYJlBMOTEeSiR-ar9ioVjA" annotatedElement="_IXznacOTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_SuperConstructors$initialization$1'(){
+ if (this.'Expressions_SuperConstructors$initializationFlag$1' == null) {
+ this.'Expressions_SuperConstructors$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXzna8OTEeSiR-ar9ioVjA" name="Expressions_SuperConstructors$method$1" specification="_IXznb8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IYJlGcOTEeSiR-ar9ioVjA" annotatedElement="_IXzna8OTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_SuperConstructors$method$1'(): Expressions_SuperConstructors {
+ this.'Expressions_SuperConstructors$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_IXznbMOTEeSiR-ar9ioVjA" type="_IXy_sMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznbcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznbsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXznc8OTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_IXzndMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IYJlAMOTEeSiR-ar9ioVjA" annotatedElement="_IXznc8OTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXzndcOTEeSiR-ar9ioVjA" name="Expressions_SuperConstructors$behavior$1" visibility="private">
+ <ownedComment xmi:id="_IYJlD8OTEeSiR-ar9ioVjA" annotatedElement="_IXzndcOTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_SuperConstructors$behavior$1'() {
+ this.test(super0, super1, s0, s1, s2, s00, s10, s11, s3);
+ WriteLine(&quot;Done&quot;);
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_IXznLsOTEeSiR-ar9ioVjA" name="test" visibility="package" method="_IXznSsOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_IXznL8OTEeSiR-ar9ioVjA" name="super0" type="_IXy_scOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznMMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznMcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXznMsOTEeSiR-ar9ioVjA" name="super1" type="_IXy_scOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznM8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznNMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXznNcOTEeSiR-ar9ioVjA" name="s0" type="_IXy_18OTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznNsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznN8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXznOMOTEeSiR-ar9ioVjA" name="s1" type="_IXy_18OTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznOcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznOsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXznO8OTEeSiR-ar9ioVjA" name="s2" type="_IXy_18OTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznPMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznPcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXznPsOTEeSiR-ar9ioVjA" name="s00" type="_IXzm4MOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznP8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznQMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXznQcOTEeSiR-ar9ioVjA" name="s10" type="_IXzm4MOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznQsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznQ8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXznRMOTEeSiR-ar9ioVjA" name="s11" type="_IXzm4MOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznRcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznRsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXznR8OTEeSiR-ar9ioVjA" name="s3" type="_IXznHMOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznSMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznScOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_IXznasOTEeSiR-ar9ioVjA" name="Expressions_SuperConstructors$initialization$1" visibility="protected" method="_IXznacOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_IXznb8OTEeSiR-ar9ioVjA" name="Expressions_SuperConstructors" method="_IXzna8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_IXzncMOTEeSiR-ar9ioVjA" type="_IXy_sMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznccOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXzncsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_IXzndMOTEeSiR-ar9ioVjA" name="destroy" method="_IXznc8OTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_IXy_scOTEeSiR-ar9ioVjA" name="Super1" visibility="package">
+ <ownedAttribute xmi:id="_IXy_ssOTEeSiR-ar9ioVjA" name="x" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXy_s8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXy_tMOTEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_IXy_tcOTEeSiR-ar9ioVjA" behavior="_IXy_tsOTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_IXy_0MOTEeSiR-ar9ioVjA" name="Super1$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXy_0cOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXy_0sOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXy_vsOTEeSiR-ar9ioVjA" name="Super1$method$1" visibility="protected" specification="_IXy_usOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IYJlDMOTEeSiR-ar9ioVjA" annotatedElement="_IXy_vsOTEeSiR-ar9ioVjA">
+ <body>activity 'Super1$method$1'(): Super1 {
+if (this.'Super1$initializationFlag$1' == null) {
+this.'Super1$initialization$1'();
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_IXy_v8OTEeSiR-ar9ioVjA" name="" type="_IXy_scOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXy_wMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXy_wcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXy_ycOTEeSiR-ar9ioVjA" name="create$method$1" visibility="protected" specification="_IXy_wsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IYJlBsOTEeSiR-ar9ioVjA" annotatedElement="_IXy_ycOTEeSiR-ar9ioVjA">
+ <body>activity 'create$method$1'(in x: Integer): Super1 {
+if (this.'Super1$initializationFlag$1' == null) {
+this.'Super1$initialization$1'();
+this.x = x;
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_IXy_ysOTEeSiR-ar9ioVjA" name="x">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXy_y8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXy_zMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXy_zcOTEeSiR-ar9ioVjA" name="" type="_IXy_scOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXy_zsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXy_z8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXy_tsOTEeSiR-ar9ioVjA" name="x$defaultValue$1">
+ <ownedComment xmi:id="_IYJlEcOTEeSiR-ar9ioVjA" annotatedElement="_IXy_tsOTEeSiR-ar9ioVjA">
+ <body>activity 'x$defaultValue$1'(): Integer {
+ return 0;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_IXy_t8OTEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXy_uMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXy_ucOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXy_08OTEeSiR-ar9ioVjA" name="Super1$initialization$1" visibility="protected" specification="_IXy_1MOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IYJlFMOTEeSiR-ar9ioVjA" annotatedElement="_IXy_08OTEeSiR-ar9ioVjA">
+ <body>activity 'Super1$initialization$1'(){
+ if (this.'Super1$initializationFlag$1' == null) {
+ this.x = 'x$defaultValue$1'();
+ this.'Super1$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXy_1cOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_IXy_1sOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IYJlB8OTEeSiR-ar9ioVjA" annotatedElement="_IXy_1cOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_IXy_usOTEeSiR-ar9ioVjA" name="Super1" visibility="public" method="_IXy_vsOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_IXy_u8OTEeSiR-ar9ioVjA" name="" type="_IXy_scOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXy_vMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXy_vcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_IXy_wsOTEeSiR-ar9ioVjA" name="create" visibility="public" method="_IXy_ycOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_IXy_w8OTEeSiR-ar9ioVjA" name="x">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXy_xMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXy_xcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXy_xsOTEeSiR-ar9ioVjA" name="" type="_IXy_scOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXy_x8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXy_yMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_IXy_1MOTEeSiR-ar9ioVjA" name="Super1$initialization$1" visibility="protected" method="_IXy_08OTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_IXy_1sOTEeSiR-ar9ioVjA" name="destroy" method="_IXy_1cOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_IXy_18OTEeSiR-ar9ioVjA" name="Sub1" visibility="package">
+ <generalization xmi:id="_IXy_2MOTEeSiR-ar9ioVjA" general="_IXy_scOTEeSiR-ar9ioVjA"/>
+ <ownedAttribute xmi:id="_IXy_2cOTEeSiR-ar9ioVjA" name="z1" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXy_2sOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXy_28OTEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_IXy_3MOTEeSiR-ar9ioVjA" behavior="_IXy_3cOTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_IXy__8OTEeSiR-ar9ioVjA" name="Sub1$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXzAAMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXzAAcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXy_5cOTEeSiR-ar9ioVjA" name="Sub1$method$1" visibility="protected" specification="_IXy_4cOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IYJlA8OTEeSiR-ar9ioVjA" annotatedElement="_IXy_5cOTEeSiR-ar9ioVjA">
+ <body>activity 'Sub1$method$1'(): Sub1 {
+if (this.'Sub1$initializationFlag$1' == null) {
+Super1::'Super1$method$1'();
+this.'Sub1$initialization$1'();
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_IXy_5sOTEeSiR-ar9ioVjA" name="" type="_IXy_18OTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXy_58OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXy_6MOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXy_7cOTEeSiR-ar9ioVjA" name="a$method$1" visibility="protected" specification="_IXy_6cOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IYJlG8OTEeSiR-ar9ioVjA" annotatedElement="_IXy_7cOTEeSiR-ar9ioVjA">
+ <body>activity 'a$method$1'(): Sub1 {
+if (this.'Sub1$initializationFlag$1' == null) {
+this.'Sub1$initialization$1'();
+this.b(1);
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_IXy_7sOTEeSiR-ar9ioVjA" name="" type="_IXy_18OTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXy_78OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXy_8MOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXy_-MOTEeSiR-ar9ioVjA" name="b$method$1" visibility="protected" specification="_IXy_8cOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IYJlFsOTEeSiR-ar9ioVjA" annotatedElement="_IXy_-MOTEeSiR-ar9ioVjA">
+ <body>activity 'b$method$1'(in x: Integer): Sub1 {
+if (this.'Sub1$initializationFlag$1' == null) {
+Super1::'create$method$1'(x);
+this.'Sub1$initialization$1'();
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_IXy_-cOTEeSiR-ar9ioVjA" name="x">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXy_-sOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXy_-8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXy__MOTEeSiR-ar9ioVjA" name="" type="_IXy_18OTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXy__cOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXy__sOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXy_3cOTEeSiR-ar9ioVjA" name="z1$defaultValue$1">
+ <ownedComment xmi:id="_IYJlGsOTEeSiR-ar9ioVjA" annotatedElement="_IXy_3cOTEeSiR-ar9ioVjA">
+ <body>activity 'z1$defaultValue$1'(): Integer {
+ return this.x + 1;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_IXy_3sOTEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXy_38OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXy_4MOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXzAAsOTEeSiR-ar9ioVjA" name="Sub1$initialization$1" visibility="protected" specification="_IXzAA8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IYJlAcOTEeSiR-ar9ioVjA" annotatedElement="_IXzAAsOTEeSiR-ar9ioVjA">
+ <body>activity 'Sub1$initialization$1'(){
+ if (this.'Sub1$initializationFlag$1' == null) {
+ super.Super1::'Super1$initialization$1'();
+ this.z1 = 'z1$defaultValue$1'();
+ this.'Sub1$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXzABMOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_IXzABcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IYJlCcOTEeSiR-ar9ioVjA" annotatedElement="_IXzABMOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_IXy_4cOTEeSiR-ar9ioVjA" name="Sub1" visibility="public" method="_IXy_5cOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_IXy_4sOTEeSiR-ar9ioVjA" name="" type="_IXy_18OTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXy_48OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXy_5MOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_IXy_6cOTEeSiR-ar9ioVjA" name="a" visibility="public" method="_IXy_7cOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_IXy_6sOTEeSiR-ar9ioVjA" name="" type="_IXy_18OTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXy_68OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXy_7MOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_IXy_8cOTEeSiR-ar9ioVjA" name="b" visibility="public" method="_IXy_-MOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_IXy_8sOTEeSiR-ar9ioVjA" name="x">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXy_88OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXy_9MOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXy_9cOTEeSiR-ar9ioVjA" name="" type="_IXy_18OTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXy_9sOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXy_98OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_IXzAA8OTEeSiR-ar9ioVjA" name="Sub1$initialization$1" visibility="protected" method="_IXzAAsOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_IXzABcOTEeSiR-ar9ioVjA" name="destroy" method="_IXzABMOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_IXzABsOTEeSiR-ar9ioVjA" name="Super2" visibility="package">
+ <ownedAttribute xmi:id="_IXzAB8OTEeSiR-ar9ioVjA" name="y" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXzACMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXzACcOTEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_IXzACsOTEeSiR-ar9ioVjA" behavior="_IXzAC8OTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_IXzm2cOTEeSiR-ar9ioVjA" name="Super2$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXzm2sOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXzm28OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXzmx8OTEeSiR-ar9ioVjA" name="Super2$method$1" visibility="protected" specification="_IXzmw8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IYJlCMOTEeSiR-ar9ioVjA" annotatedElement="_IXzmx8OTEeSiR-ar9ioVjA">
+ <body>activity 'Super2$method$1'(): Super2 {
+if (this.'Super2$initializationFlag$1' == null) {
+this.'Super2$initialization$1'();
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_IXzmyMOTEeSiR-ar9ioVjA" name="" type="_IXzABsOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXzmycOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXzmysOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXzm0sOTEeSiR-ar9ioVjA" name="create$method$1" visibility="protected" specification="_IXzmy8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IYJlFcOTEeSiR-ar9ioVjA" annotatedElement="_IXzm0sOTEeSiR-ar9ioVjA">
+ <body>activity 'create$method$1'(in y: Integer): Super2 {
+if (this.'Super2$initializationFlag$1' == null) {
+this.'Super2$initialization$1'();
+this.y = y;
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_IXzm08OTEeSiR-ar9ioVjA" name="y">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXzm1MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXzm1cOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXzm1sOTEeSiR-ar9ioVjA" name="" type="_IXzABsOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXzm18OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXzm2MOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXzAC8OTEeSiR-ar9ioVjA" name="y$defaultValue$1">
+ <ownedComment xmi:id="_IYJlC8OTEeSiR-ar9ioVjA" annotatedElement="_IXzAC8OTEeSiR-ar9ioVjA">
+ <body>activity 'y$defaultValue$1'(): Integer {
+ return 0;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_IXzmwMOTEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXzmwcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXzmwsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXzm3MOTEeSiR-ar9ioVjA" name="Super2$initialization$1" visibility="protected" specification="_IXzm3cOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IYJlCsOTEeSiR-ar9ioVjA" annotatedElement="_IXzm3MOTEeSiR-ar9ioVjA">
+ <body>activity 'Super2$initialization$1'(){
+ if (this.'Super2$initializationFlag$1' == null) {
+ this.y = 'y$defaultValue$1'();
+ this.'Super2$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXzm3sOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_IXzm38OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IYJlDsOTEeSiR-ar9ioVjA" annotatedElement="_IXzm3sOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_IXzmw8OTEeSiR-ar9ioVjA" name="Super2" visibility="public" method="_IXzmx8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_IXzmxMOTEeSiR-ar9ioVjA" name="" type="_IXzABsOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXzmxcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXzmxsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_IXzmy8OTEeSiR-ar9ioVjA" name="create" visibility="public" method="_IXzm0sOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_IXzmzMOTEeSiR-ar9ioVjA" name="y">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXzmzcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXzmzsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXzmz8OTEeSiR-ar9ioVjA" name="" type="_IXzABsOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXzm0MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXzm0cOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_IXzm3cOTEeSiR-ar9ioVjA" name="Super2$initialization$1" visibility="protected" method="_IXzm3MOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_IXzm38OTEeSiR-ar9ioVjA" name="destroy" method="_IXzm3sOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_IXzm4MOTEeSiR-ar9ioVjA" name="Sub2" visibility="package">
+ <generalization xmi:id="_IXzm4cOTEeSiR-ar9ioVjA" general="_IXy_scOTEeSiR-ar9ioVjA"/>
+ <generalization xmi:id="_IXzm4sOTEeSiR-ar9ioVjA" general="_IXzABsOTEeSiR-ar9ioVjA"/>
+ <ownedAttribute xmi:id="_IXzm48OTEeSiR-ar9ioVjA" name="z2" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXzm5MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXzm5cOTEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_IXzm5sOTEeSiR-ar9ioVjA" behavior="_IXzm58OTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_IXznFcOTEeSiR-ar9ioVjA" name="Sub2$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznFsOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznF8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXzm78OTEeSiR-ar9ioVjA" name="Sub2$method$1" visibility="protected" specification="_IXzm68OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IYJlGMOTEeSiR-ar9ioVjA" annotatedElement="_IXzm78OTEeSiR-ar9ioVjA">
+ <body>activity 'Sub2$method$1'(): Sub2 {
+if (this.'Sub2$initializationFlag$1' == null) {
+this.'Sub2$initialization$1'();
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_IXzm8MOTEeSiR-ar9ioVjA" name="" type="_IXzm4MOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXzm8cOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXzm8sOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXzm-sOTEeSiR-ar9ioVjA" name="create1$method$1" visibility="protected" specification="_IXzm88OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IXzneMOTEeSiR-ar9ioVjA" annotatedElement="_IXzm-sOTEeSiR-ar9ioVjA">
+ <body>activity 'create1$method$1'(in x: Integer): Sub2 {
+if (this.'Sub2$initializationFlag$1' == null) {
+Super1::'create$method$1'(x);
+this.'Sub2$initialization$1'();
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_IXzm-8OTEeSiR-ar9ioVjA" name="x">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXzm_MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXzm_cOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXzm_sOTEeSiR-ar9ioVjA" name="" type="_IXzm4MOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXzm_8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznAMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXznC8OTEeSiR-ar9ioVjA" name="create2$method$1" visibility="protected" specification="_IXznAcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IYJlDcOTEeSiR-ar9ioVjA" annotatedElement="_IXznC8OTEeSiR-ar9ioVjA">
+ <body>activity 'create2$method$1'(in x: Integer, in y: Integer): Sub2 {
+if (this.'Sub2$initializationFlag$1' == null) {
+Super1::'create$method$1'(x); Super2::'create$method$1'(y);
+this.'Sub2$initialization$1'();
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_IXznDMOTEeSiR-ar9ioVjA" name="x">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznDcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznDsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXznD8OTEeSiR-ar9ioVjA" name="y">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznEMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznEcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXznEsOTEeSiR-ar9ioVjA" name="" type="_IXzm4MOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznE8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznFMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXzm58OTEeSiR-ar9ioVjA" name="z2$defaultValue$1">
+ <ownedComment xmi:id="_IYJlEMOTEeSiR-ar9ioVjA" annotatedElement="_IXzm58OTEeSiR-ar9ioVjA">
+ <body>activity 'z2$defaultValue$1'(): Integer {
+ return this.x + this.y;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_IXzm6MOTEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXzm6cOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXzm6sOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXznGMOTEeSiR-ar9ioVjA" name="Sub2$initialization$1" visibility="protected" specification="_IXznGcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IYJlBcOTEeSiR-ar9ioVjA" annotatedElement="_IXznGMOTEeSiR-ar9ioVjA">
+ <body>activity 'Sub2$initialization$1'(){
+ if (this.'Sub2$initializationFlag$1' == null) {
+ super.Super1::'Super1$initialization$1'();
+ super.Super2::'Super2$initialization$1'();
+ this.z2 = 'z2$defaultValue$1'();
+ this.'Sub2$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXznGsOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_IXznG8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IYJlE8OTEeSiR-ar9ioVjA" annotatedElement="_IXznGsOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_IXzm68OTEeSiR-ar9ioVjA" name="Sub2" visibility="public" method="_IXzm78OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_IXzm7MOTEeSiR-ar9ioVjA" name="" type="_IXzm4MOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXzm7cOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXzm7sOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_IXzm88OTEeSiR-ar9ioVjA" name="create1" visibility="public" method="_IXzm-sOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_IXzm9MOTEeSiR-ar9ioVjA" name="x">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXzm9cOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXzm9sOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXzm98OTEeSiR-ar9ioVjA" name="" type="_IXzm4MOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXzm-MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXzm-cOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_IXznAcOTEeSiR-ar9ioVjA" name="create2" visibility="public" method="_IXznC8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_IXznAsOTEeSiR-ar9ioVjA" name="x">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznA8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznBMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXznBcOTEeSiR-ar9ioVjA" name="y">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznBsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznB8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_IXznCMOTEeSiR-ar9ioVjA" name="" type="_IXzm4MOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznCcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznCsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_IXznGcOTEeSiR-ar9ioVjA" name="Sub2$initialization$1" visibility="protected" method="_IXznGMOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_IXznG8OTEeSiR-ar9ioVjA" name="destroy" method="_IXznGsOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_IXznHMOTEeSiR-ar9ioVjA" name="Sub3" visibility="package">
+ <generalization xmi:id="_IXznHcOTEeSiR-ar9ioVjA" general="_IXy_18OTEeSiR-ar9ioVjA"/>
+ <generalization xmi:id="_IXznHsOTEeSiR-ar9ioVjA" general="_IXzm4MOTEeSiR-ar9ioVjA"/>
+ <ownedAttribute xmi:id="_IXznJ8OTEeSiR-ar9ioVjA" name="Sub3$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznKMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznKcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXznI8OTEeSiR-ar9ioVjA" name="Sub3$method$1" visibility="protected" specification="_IXznH8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IXznd8OTEeSiR-ar9ioVjA" annotatedElement="_IXznI8OTEeSiR-ar9ioVjA">
+ <body>activity 'Sub3$method$1'(): Sub3 {
+if (this.'Sub3$initializationFlag$1' == null) {
+Sub1::'b$method$1'(3); Sub2::'create2$method$1'(1, 2);
+this.'Sub3$initialization$1'();
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_IXznJMOTEeSiR-ar9ioVjA" name="" type="_IXznHMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznJcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznJsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXznKsOTEeSiR-ar9ioVjA" name="Sub3$initialization$1" visibility="protected" specification="_IXznK8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IYJlAsOTEeSiR-ar9ioVjA" annotatedElement="_IXznKsOTEeSiR-ar9ioVjA">
+ <body>activity 'Sub3$initialization$1'(){
+ if (this.'Sub3$initializationFlag$1' == null) {
+ super.Sub2::'Sub2$initialization$1'();
+ super.Sub1::'Sub1$initialization$1'();
+ this.'Sub3$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_IXznLMOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_IXznLcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_IYJlF8OTEeSiR-ar9ioVjA" annotatedElement="_IXznLMOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_IXznH8OTEeSiR-ar9ioVjA" name="Sub3" visibility="public" method="_IXznI8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_IXznIMOTEeSiR-ar9ioVjA" name="" type="_IXznHMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IXznIcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IXznIsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_IXznK8OTEeSiR-ar9ioVjA" name="Sub3$initialization$1" visibility="protected" method="_IXznKsOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_IXznLcOTEeSiR-ar9ioVjA" name="destroy" method="_IXznLMOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:id="_GwZkEcOTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_GwZkEsOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_GwZkE8OTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_GwZkFMOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Destroy xmi:id="_IYJlHMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_IXznLcOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_IYJlHcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_IXy_usOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_IYJlHsOTEeSiR-ar9ioVjA" base_BehavioralFeature="_IXznH8OTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_IYJlH8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_IXy_1sOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_IYJlIMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_IXzABcOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_IYJlIcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_IXy_6cOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_IYJlIsOTEeSiR-ar9ioVjA" base_BehavioralFeature="_IXy_8cOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_IYJlI8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_IXzmy8OTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_IYJlJMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_IXzndMOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_IYJlJcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_IXy_4cOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_IYJlJsOTEeSiR-ar9ioVjA" base_BehavioralFeature="_IXznAcOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_IYJlJ8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_IXzm88OTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_IYJlKMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_IXzm38OTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_IYJlKcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_IXznb8OTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_IYJlKsOTEeSiR-ar9ioVjA" base_BehavioralFeature="_IXznG8OTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_IYJlK8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_IXzm68OTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_IYJlLMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_IXzmw8OTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_IYJlLcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_IXy_wsOTEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlLsOTEeSiR-ar9ioVjA" base_Comment="_IXznd8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlL8OTEeSiR-ar9ioVjA" base_Comment="_IXzneMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlMMOTEeSiR-ar9ioVjA" base_Comment="_IYJlAMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlMcOTEeSiR-ar9ioVjA" base_Comment="_IYJlAcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlMsOTEeSiR-ar9ioVjA" base_Comment="_IYJlAsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlM8OTEeSiR-ar9ioVjA" base_Comment="_IYJlA8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlNMOTEeSiR-ar9ioVjA" base_Comment="_IYJlBMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlNcOTEeSiR-ar9ioVjA" base_Comment="_IYJlBcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlNsOTEeSiR-ar9ioVjA" base_Comment="_IYJlBsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlN8OTEeSiR-ar9ioVjA" base_Comment="_IYJlB8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlOMOTEeSiR-ar9ioVjA" base_Comment="_IYJlCMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlOcOTEeSiR-ar9ioVjA" base_Comment="_IYJlCcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlOsOTEeSiR-ar9ioVjA" base_Comment="_IYJlCsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlO8OTEeSiR-ar9ioVjA" base_Comment="_IYJlC8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlPMOTEeSiR-ar9ioVjA" base_Comment="_IYJlDMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlPcOTEeSiR-ar9ioVjA" base_Comment="_IYJlDcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlPsOTEeSiR-ar9ioVjA" base_Comment="_IYJlDsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlP8OTEeSiR-ar9ioVjA" base_Comment="_IYJlD8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlQMOTEeSiR-ar9ioVjA" base_Comment="_IYJlEMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlQcOTEeSiR-ar9ioVjA" base_Comment="_IYJlEcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlQsOTEeSiR-ar9ioVjA" base_Comment="_IYJlEsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlQ8OTEeSiR-ar9ioVjA" base_Comment="_IYJlE8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlRMOTEeSiR-ar9ioVjA" base_Comment="_IYJlFMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlRcOTEeSiR-ar9ioVjA" base_Comment="_IYJlFcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlRsOTEeSiR-ar9ioVjA" base_Comment="_IYJlFsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlR8OTEeSiR-ar9ioVjA" base_Comment="_IYJlF8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlSMOTEeSiR-ar9ioVjA" base_Comment="_IYJlGMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlScOTEeSiR-ar9ioVjA" base_Comment="_IYJlGcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlSsOTEeSiR-ar9ioVjA" base_Comment="_IYJlGsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_IYJlS8OTEeSiR-ar9ioVjA" base_Comment="_IYJlG8OTEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Template.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Template.uml
new file mode 100644
index 00000000000..0044b246248
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Expressions_Template.uml
@@ -0,0 +1,509 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_IYwpAMOTEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_JlBn0MOTEeSiR-ar9ioVjA" name="Expressions_Template" classifierBehavior="_JlBoncOTEeSiR-ar9ioVjA" isActive="true">
+ <ownedComment xmi:id="_JlBonsOTEeSiR-ar9ioVjA" annotatedElement="_JlBn0MOTEeSiR-ar9ioVjA">
+ <body>&#xD;
+ * Test expressions involving templates.&#xD;
+ *</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_JlBojcOTEeSiR-ar9ioVjA" name="Expressions_Template$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBojsOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoj8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_JlBokMOTEeSiR-ar9ioVjA" name="Expressions_Template$initialization$1" visibility="protected" specification="_JlBokcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_JlBoocOTEeSiR-ar9ioVjA" annotatedElement="_JlBokMOTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Template$initialization$1'(){
+ if (this.'Expressions_Template$initializationFlag$1' == null) {
+ this.'Expressions_Template$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_JlBoksOTEeSiR-ar9ioVjA" name="Expressions_Template$method$1" specification="_JlBolsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_JlBoqMOTEeSiR-ar9ioVjA" annotatedElement="_JlBoksOTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Template$method$1'(): Expressions_Template {
+ this.'Expressions_Template$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_JlBok8OTEeSiR-ar9ioVjA" type="_JlBn0MOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBolMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBolcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_JlBomsOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_JlBom8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_JlBop8OTEeSiR-ar9ioVjA" annotatedElement="_JlBomsOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_JlBoncOTEeSiR-ar9ioVjA" name="Expressions_Template$behavior$1" visibility="private">
+ <ownedComment xmi:id="_JlBopcOTEeSiR-ar9ioVjA" annotatedElement="_JlBoncOTEeSiR-ar9ioVjA">
+ <body>activity 'Expressions_Template$behavior$1'() {
+ new TestRunner().Start();
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_JlBokcOTEeSiR-ar9ioVjA" name="Expressions_Template$initialization$1" visibility="protected" method="_JlBokMOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_JlBolsOTEeSiR-ar9ioVjA" name="Expressions_Template" method="_JlBoksOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_JlBol8OTEeSiR-ar9ioVjA" type="_JlBn0MOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBomMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBomcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_JlBom8OTEeSiR-ar9ioVjA" name="destroy" method="_JlBomsOTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Signal" xmi:id="_JlBn0cOTEeSiR-ar9ioVjA" name="Continue" visibility="public"/>
+ <nestedClassifier xmi:type="uml:Activity" xmi:id="_JlBn68OTEeSiR-ar9ioVjA" name="A" visibility="public">
+ <ownedComment xmi:id="_JlBoq8OTEeSiR-ar9ioVjA" annotatedElement="_JlBn68OTEeSiR-ar9ioVjA">
+ <body>activity A&lt;T specializes B>(in x: T): Integer {
+ return x.i;
+}</body>
+ </ownedComment>
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_JlBn8sOTEeSiR-ar9ioVjA" parameter="_JlBn88OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_JlBn88OTEeSiR-ar9ioVjA" parameteredElement="_JlBn9MOTEeSiR-ar9ioVjA" allowSubstitutable="false" constrainingClassifier="_JlBn0sOTEeSiR-ar9ioVjA">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_JlBn9MOTEeSiR-ar9ioVjA" name="T" templateParameter="_JlBn88OTEeSiR-ar9ioVjA" isAbstract="true"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_JlBn7MOTEeSiR-ar9ioVjA" name="x" type="_JlBn9MOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBn7cOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBn7sOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_JlBn78OTEeSiR-ar9ioVjA" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBn8MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBn8cOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_JlBn0sOTEeSiR-ar9ioVjA" name="B" visibility="public">
+ <ownedAttribute xmi:id="_JlBn08OTEeSiR-ar9ioVjA" name="i" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBn1MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBn1cOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_JlBn5MOTEeSiR-ar9ioVjA" name="B$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBn5cOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBn5sOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_JlBn3cOTEeSiR-ar9ioVjA" name="B$method$1" visibility="protected" specification="_JlBn1sOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_JlBor8OTEeSiR-ar9ioVjA" annotatedElement="_JlBn3cOTEeSiR-ar9ioVjA">
+ <body>activity 'B$method$1'(in i: Integer): B {
+if (this.'B$initializationFlag$1' == null) {
+this.'B$initialization$1'();
+this.i = i;
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_JlBn3sOTEeSiR-ar9ioVjA" name="i">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBn38OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBn4MOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_JlBn4cOTEeSiR-ar9ioVjA" name="" type="_JlBn0sOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBn4sOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBn48OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_JlBn58OTEeSiR-ar9ioVjA" name="B$initialization$1" visibility="protected" specification="_JlBn6MOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_JlBorMOTEeSiR-ar9ioVjA" annotatedElement="_JlBn58OTEeSiR-ar9ioVjA">
+ <body>activity 'B$initialization$1'(){
+ if (this.'B$initializationFlag$1' == null) {
+ this.'B$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_JlBn6cOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_JlBn6sOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_JlBopsOTEeSiR-ar9ioVjA" annotatedElement="_JlBn6cOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_JlBn1sOTEeSiR-ar9ioVjA" name="B" visibility="public" method="_JlBn3cOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_JlBn18OTEeSiR-ar9ioVjA" name="i">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBn2MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBn2cOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_JlBn2sOTEeSiR-ar9ioVjA" name="" type="_JlBn0sOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBn28OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBn3MOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_JlBn6MOTEeSiR-ar9ioVjA" name="B$initialization$1" visibility="protected" method="_JlBn58OTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_JlBn6sOTEeSiR-ar9ioVjA" name="destroy" method="_JlBn6cOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_JlBn9cOTEeSiR-ar9ioVjA" name="C" visibility="public">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_JlBn9sOTEeSiR-ar9ioVjA" parameter="_JlBn98OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_JlBn98OTEeSiR-ar9ioVjA" parameteredElement="_JlBn-MOTEeSiR-ar9ioVjA" allowSubstitutable="false">
+ <ownedParameteredElement xmi:type="uml:DataType" xmi:id="_JlBn-MOTEeSiR-ar9ioVjA" name="T" templateParameter="_JlBn98OTEeSiR-ar9ioVjA" isAbstract="true"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedAttribute xmi:id="_JlBn-cOTEeSiR-ar9ioVjA" name="p" visibility="package" type="_JlBn-MOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBn-sOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBn-8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_JlBoHMOTEeSiR-ar9ioVjA" name="C$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoHcOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoHsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_JlBoBsOTEeSiR-ar9ioVjA" name="C$method$1" visibility="protected" specification="_JlBn_MOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_JlBosMOTEeSiR-ar9ioVjA" annotatedElement="_JlBoBsOTEeSiR-ar9ioVjA">
+ <body>activity 'C$method$1'(in p: T): '$$Expressions_Template$C__Expressions_Template$C$T__' {
+if (this.'C$initializationFlag$1' == null) {
+this.'C$initialization$1'();
+this.p = p;
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_JlBoB8OTEeSiR-ar9ioVjA" name="p" type="_JlBn-MOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoCMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoCcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_JlBoCsOTEeSiR-ar9ioVjA" name="" type="_JlBoA8OTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoC8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoDMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_JlBoEcOTEeSiR-ar9ioVjA" name="r$method$1" visibility="protected" specification="_JlBoDcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_JlBorcOTEeSiR-ar9ioVjA" annotatedElement="_JlBoEcOTEeSiR-ar9ioVjA">
+ <body>activity 'r$method$1'(): T {
+ return this.p;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_JlBoEsOTEeSiR-ar9ioVjA" type="_JlBn-MOTEeSiR-ar9ioVjA" direction="return">
+ <name xsi:nil="true"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoE8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoFMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_JlBoH8OTEeSiR-ar9ioVjA" name="C$initialization$1" visibility="protected" specification="_JlBoIMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_JlBon8OTEeSiR-ar9ioVjA" annotatedElement="_JlBoH8OTEeSiR-ar9ioVjA">
+ <body>activity 'C$initialization$1'(){
+ if (this.'C$initializationFlag$1' == null) {
+ this.'C$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_JlBoIcOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_JlBoIsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_JlBotMOTEeSiR-ar9ioVjA" annotatedElement="_JlBoIcOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_JlBn_MOTEeSiR-ar9ioVjA" name="C" visibility="public" method="_JlBoBsOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_JlBn_cOTEeSiR-ar9ioVjA" name="p" type="_JlBn-MOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBn_sOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBn_8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_JlBoAMOTEeSiR-ar9ioVjA" name="" type="_JlBoA8OTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoAcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoAsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_JlBoDcOTEeSiR-ar9ioVjA" name="r" visibility="package" method="_JlBoEcOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_JlBoDsOTEeSiR-ar9ioVjA" type="_JlBn-MOTEeSiR-ar9ioVjA" direction="return">
+ <name xsi:nil="true"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoD8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoEMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_JlBoIMOTEeSiR-ar9ioVjA" name="C$initialization$1" visibility="protected" method="_JlBoH8OTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_JlBoIsOTEeSiR-ar9ioVjA" name="destroy" method="_JlBoIcOTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Activity" xmi:id="_JlBoFcOTEeSiR-ar9ioVjA" name="E" visibility="package">
+ <ownedComment xmi:id="_JlBoosOTEeSiR-ar9ioVjA" annotatedElement="_JlBoFcOTEeSiR-ar9ioVjA">
+ <body>activity E(in x: T): T {
+ return x;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_JlBoFsOTEeSiR-ar9ioVjA" name="x" type="_JlBn-MOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoF8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoGMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_JlBoGcOTEeSiR-ar9ioVjA" type="_JlBn-MOTEeSiR-ar9ioVjA" direction="return">
+ <name xsi:nil="true"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoGsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoG8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </nestedClassifier>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_JlBoI8OTEeSiR-ar9ioVjA" name="H" visibility="public" classifierBehavior="_JlBojMOTEeSiR-ar9ioVjA" isActive="true">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_JlBoJMOTEeSiR-ar9ioVjA" parameter="_JlBoJcOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_JlBoJcOTEeSiR-ar9ioVjA" parameteredElement="_JlBoJsOTEeSiR-ar9ioVjA" allowSubstitutable="false">
+ <ownedParameteredElement xmi:type="uml:DataType" xmi:id="_JlBoJsOTEeSiR-ar9ioVjA" name="T" templateParameter="_JlBoJcOTEeSiR-ar9ioVjA" isAbstract="true"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedAttribute xmi:id="_JlBoJ8OTEeSiR-ar9ioVjA" name="a" visibility="public" type="_JlBoJsOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoKMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoKcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_JlBoKsOTEeSiR-ar9ioVjA" name="b" visibility="public" type="_JlBoJsOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoK8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoLMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_JlBoLcOTEeSiR-ar9ioVjA" name="t" visibility="public" type="_JlBoMMOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoLsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoL8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_JlBohcOTEeSiR-ar9ioVjA" name="H$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBohsOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoh8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_JlBoe8OTEeSiR-ar9ioVjA" name="H$method$1" visibility="protected" specification="_JlBobsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_JlBoqsOTEeSiR-ar9ioVjA" annotatedElement="_JlBoe8OTEeSiR-ar9ioVjA">
+ <body>activity 'H$method$1'(in a: T, in t: TestRunner): '$$Expressions_Template$H__Expressions_Template$H$T__' {
+if (this.'H$initializationFlag$1' == null) {
+this.'H$initialization$1'();
+this.a = a; this.t = t;
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_JlBofMOTEeSiR-ar9ioVjA" name="a" type="_JlBoJsOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBofcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBofsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_JlBof8OTEeSiR-ar9ioVjA" name="t" type="_JlBoMMOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBogMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBogcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_JlBogsOTEeSiR-ar9ioVjA" name="" type="_JlBoeMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBog8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBohMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_JlBoiMOTEeSiR-ar9ioVjA" name="H$initialization$1" visibility="protected" specification="_JlBoicOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_JlBooMOTEeSiR-ar9ioVjA" annotatedElement="_JlBoiMOTEeSiR-ar9ioVjA">
+ <body>activity 'H$initialization$1'(){
+ if (this.'H$initializationFlag$1' == null) {
+ this.'H$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_JlBoisOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_JlBoi8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_JlBossOTEeSiR-ar9ioVjA" annotatedElement="_JlBoisOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_JlBojMOTEeSiR-ar9ioVjA" name="H$behavior$1" visibility="private">
+ <ownedComment xmi:id="_JlBoqcOTEeSiR-ar9ioVjA" annotatedElement="_JlBojMOTEeSiR-ar9ioVjA">
+ <body>activity 'H$behavior$1'() {
+ $ (this.b = new C&lt; T >(this.a).r());
+ this.t.Continue();
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_JlBobsOTEeSiR-ar9ioVjA" name="H" visibility="public" method="_JlBoe8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_JlBob8OTEeSiR-ar9ioVjA" name="a" type="_JlBoJsOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBocMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoccOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_JlBocsOTEeSiR-ar9ioVjA" name="t" type="_JlBoMMOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoc8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBodMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_JlBodcOTEeSiR-ar9ioVjA" name="" type="_JlBoeMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBodsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBod8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_JlBoicOTEeSiR-ar9ioVjA" name="H$initialization$1" visibility="protected" method="_JlBoiMOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_JlBoi8OTEeSiR-ar9ioVjA" name="destroy" method="_JlBoisOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_JlBoMMOTEeSiR-ar9ioVjA" name="TestRunner" visibility="public" classifierBehavior="_JlBobcOTEeSiR-ar9ioVjA" isActive="true">
+ <ownedAttribute xmi:id="_JlBoXMOTEeSiR-ar9ioVjA" name="TestRunner$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoXcOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoXsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_JlBoTMOTEeSiR-ar9ioVjA" name="test$method$1" visibility="protected" specification="_JlBoM8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_JlBoscOTEeSiR-ar9ioVjA" annotatedElement="_JlBoTMOTEeSiR-ar9ioVjA">
+ <body>activity 'test$method$1'(out i: Integer, out j: Integer, out h: '$$Expressions_Template$H__Expressions_Template$B__', out s: '$$Alf$Library$CollectionClasses$Set__PrimitiveTypes$Integer__', out list: '$$Alf$Library$CollectionClasses$List__PrimitiveTypes$Integer__') {
+ b = new B(1);
+ i = A&lt; B >(b);
+ j = C&lt; B >.E(b).i;
+ h = new H&lt; B >(b, this);
+ s = new Set&lt; Integer >(null);
+ s.add(1);
+ list = new List&lt; Integer > { 1, 2, 3 };
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_JlBoTcOTEeSiR-ar9ioVjA" name="i" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoTsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoT8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_JlBoUMOTEeSiR-ar9ioVjA" name="j" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoUcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoUsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_JlBoU8OTEeSiR-ar9ioVjA" name="h" type="_JlBoPcOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoVMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoVcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_JlBoVsOTEeSiR-ar9ioVjA" name="s" type="_JlBoQ8OTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoV8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoWMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_JlBoWcOTEeSiR-ar9ioVjA" name="list" type="_JlBoScOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoWsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoW8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_JlBoX8OTEeSiR-ar9ioVjA" name="TestRunner$initialization$1" visibility="protected" specification="_JlBoYMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_JlBorsOTEeSiR-ar9ioVjA" annotatedElement="_JlBoX8OTEeSiR-ar9ioVjA">
+ <body>activity 'TestRunner$initialization$1'(){
+ if (this.'TestRunner$initializationFlag$1' == null) {
+ this.'TestRunner$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_JlBoYcOTEeSiR-ar9ioVjA" name="TestRunner$method$1" specification="_JlBoZcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_JlBoo8OTEeSiR-ar9ioVjA" annotatedElement="_JlBoYcOTEeSiR-ar9ioVjA">
+ <body>activity 'TestRunner$method$1'(): TestRunner {
+ this.'TestRunner$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_JlBoYsOTEeSiR-ar9ioVjA" type="_JlBoMMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoY8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoZMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_JlBoacOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_JlBoasOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_JlBopMOTEeSiR-ar9ioVjA" annotatedElement="_JlBoacOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_JlBobcOTEeSiR-ar9ioVjA" name="TestRunner$behavior$1" visibility="private">
+ <ownedComment xmi:id="_JlBos8OTEeSiR-ar9ioVjA" annotatedElement="_JlBobcOTEeSiR-ar9ioVjA">
+ <body>activity 'TestRunner$behavior$1'() {
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_JlBoM8OTEeSiR-ar9ioVjA" name="test" visibility="public" method="_JlBoTMOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_JlBoNMOTEeSiR-ar9ioVjA" name="i" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoNcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoNsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_JlBoN8OTEeSiR-ar9ioVjA" name="j" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoOMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoOcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_JlBoOsOTEeSiR-ar9ioVjA" name="h" type="_JlBoPcOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoO8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoPMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_JlBoQMOTEeSiR-ar9ioVjA" name="s" type="_JlBoQ8OTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoQcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoQsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_JlBoRsOTEeSiR-ar9ioVjA" name="list" type="_JlBoScOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoR8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoSMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_JlBoYMOTEeSiR-ar9ioVjA" name="TestRunner$initialization$1" visibility="protected" method="_JlBoX8OTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_JlBoZcOTEeSiR-ar9ioVjA" name="TestRunner" method="_JlBoYcOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_JlBoZsOTEeSiR-ar9ioVjA" type="_JlBoMMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlBoZ8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlBoaMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_JlBoasOTEeSiR-ar9ioVjA" name="destroy" method="_JlBoacOTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Signal" xmi:id="_JlBoMcOTEeSiR-ar9ioVjA" name="Start" visibility="public"/>
+ <nestedClassifier xmi:type="uml:Signal" xmi:id="_JlBoMsOTEeSiR-ar9ioVjA" name="Continue" visibility="public"/>
+ <ownedReception xmi:id="_JlBoa8OTEeSiR-ar9ioVjA" name="Start" visibility="public" signal="_JlBoMcOTEeSiR-ar9ioVjA"/>
+ <ownedReception xmi:id="_JlBobMOTEeSiR-ar9ioVjA" name="Continue" visibility="public" signal="_JlBoMsOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <ownedReception xmi:id="_JlBonMOTEeSiR-ar9ioVjA" name="Continue" visibility="public" signal="_JlBn0cOTEeSiR-ar9ioVjA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_JlBoA8OTEeSiR-ar9ioVjA" name="$$Expressions_Template$C__Expressions_Template$C$T__">
+ <templateBinding xmi:id="_JlBoBMOTEeSiR-ar9ioVjA" signature="_JlBn9sOTEeSiR-ar9ioVjA">
+ <parameterSubstitution xmi:id="_JlBoBcOTEeSiR-ar9ioVjA" actual="_JlBn-MOTEeSiR-ar9ioVjA" formal="_JlBn98OTEeSiR-ar9ioVjA"/>
+ </templateBinding>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_JlBoPcOTEeSiR-ar9ioVjA" name="$$Expressions_Template$H__Expressions_Template$B__">
+ <templateBinding xmi:id="_JlBoPsOTEeSiR-ar9ioVjA" signature="_JlBoJMOTEeSiR-ar9ioVjA">
+ <parameterSubstitution xmi:id="_JlBoP8OTEeSiR-ar9ioVjA" actual="_JlBn0sOTEeSiR-ar9ioVjA" formal="_JlBoJcOTEeSiR-ar9ioVjA"/>
+ </templateBinding>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_JlBoQ8OTEeSiR-ar9ioVjA" name="$$Alf$Library$CollectionClasses$Set__PrimitiveTypes$Integer__">
+ <templateBinding xmi:id="_JlBoRMOTEeSiR-ar9ioVjA">
+ <parameterSubstitution xmi:id="_JlBoRcOTEeSiR-ar9ioVjA">
+ <actual xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <formal xmi:type="uml:ClassifierTemplateParameter" href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf-Library-CollectionClasses-Set-ownedTemplateSignature-ownedParameter"/>
+ </parameterSubstitution>
+ <signature xmi:type="uml:RedefinableTemplateSignature" href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf-Library-CollectionClasses-Set-ownedTemplateSignature"/>
+ </templateBinding>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_JlBoScOTEeSiR-ar9ioVjA" name="$$Alf$Library$CollectionClasses$List__PrimitiveTypes$Integer__">
+ <templateBinding xmi:id="_JlBoSsOTEeSiR-ar9ioVjA">
+ <parameterSubstitution xmi:id="_JlBoS8OTEeSiR-ar9ioVjA">
+ <actual xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <formal xmi:type="uml:ClassifierTemplateParameter" href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf-Library-CollectionClasses-List-ownedTemplateSignature-ownedParameter"/>
+ </parameterSubstitution>
+ <signature xmi:type="uml:RedefinableTemplateSignature" href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf-Library-CollectionClasses-List-ownedTemplateSignature"/>
+ </templateBinding>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_JlBoeMOTEeSiR-ar9ioVjA" name="$$Expressions_Template$H__Expressions_Template$H$T__">
+ <templateBinding xmi:id="_JlBoecOTEeSiR-ar9ioVjA" signature="_JlBoJMOTEeSiR-ar9ioVjA">
+ <parameterSubstitution xmi:id="_JlBoesOTEeSiR-ar9ioVjA" actual="_JlBoJsOTEeSiR-ar9ioVjA" formal="_JlBoJcOTEeSiR-ar9ioVjA"/>
+ </templateBinding>
+ </packagedElement>
+ <profileApplication xmi:id="_IYwpAcOTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_IYwpAsOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_IYwpA8OTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_IYwpBMOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Destroy xmi:id="_JlCO4MOTEeSiR-ar9ioVjA" base_BehavioralFeature="_JlBom8OTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_JlCO4cOTEeSiR-ar9ioVjA" base_BehavioralFeature="_JlBobsOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_JlCO4sOTEeSiR-ar9ioVjA" base_BehavioralFeature="_JlBoIsOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_JlCO48OTEeSiR-ar9ioVjA" base_BehavioralFeature="_JlBn6sOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_JlCO5MOTEeSiR-ar9ioVjA" base_BehavioralFeature="_JlBolsOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_JlCO5cOTEeSiR-ar9ioVjA" base_BehavioralFeature="_JlBn_MOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_JlCO5sOTEeSiR-ar9ioVjA" base_BehavioralFeature="_JlBoZcOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_JlCO58OTEeSiR-ar9ioVjA" base_BehavioralFeature="_JlBoasOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_JlCO6MOTEeSiR-ar9ioVjA" base_BehavioralFeature="_JlBn1sOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_JlCO6cOTEeSiR-ar9ioVjA" base_BehavioralFeature="_JlBoi8OTEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlCO6sOTEeSiR-ar9ioVjA" base_Comment="_JlBon8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlCO68OTEeSiR-ar9ioVjA" base_Comment="_JlBooMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlCO7MOTEeSiR-ar9ioVjA" base_Comment="_JlBoocOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlCO7cOTEeSiR-ar9ioVjA" base_Comment="_JlBoosOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlCO7sOTEeSiR-ar9ioVjA" base_Comment="_JlBoo8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlCO78OTEeSiR-ar9ioVjA" base_Comment="_JlBopMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlCO8MOTEeSiR-ar9ioVjA" base_Comment="_JlBopcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlCO8cOTEeSiR-ar9ioVjA" base_Comment="_JlBopsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlCO8sOTEeSiR-ar9ioVjA" base_Comment="_JlBop8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlCO88OTEeSiR-ar9ioVjA" base_Comment="_JlBoqMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlCO9MOTEeSiR-ar9ioVjA" base_Comment="_JlBoqcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlCO9cOTEeSiR-ar9ioVjA" base_Comment="_JlBoqsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlCO9sOTEeSiR-ar9ioVjA" base_Comment="_JlBoq8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlCO98OTEeSiR-ar9ioVjA" base_Comment="_JlBorMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlCO-MOTEeSiR-ar9ioVjA" base_Comment="_JlBorcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlCO-cOTEeSiR-ar9ioVjA" base_Comment="_JlBorsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlCO-sOTEeSiR-ar9ioVjA" base_Comment="_JlBor8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlCO-8OTEeSiR-ar9ioVjA" base_Comment="_JlBosMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlCO_MOTEeSiR-ar9ioVjA" base_Comment="_JlBoscOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlCO_cOTEeSiR-ar9ioVjA" base_Comment="_JlBossOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlCO_sOTEeSiR-ar9ioVjA" base_Comment="_JlBos8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlCO_8OTEeSiR-ar9ioVjA" base_Comment="_JlBotMOTEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Interactive_HelloWorld.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Interactive_HelloWorld.uml
new file mode 100644
index 00000000000..b0a73ff3943
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Interactive_HelloWorld.uml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_7-sgsIKGEeSFEt9m3bH63A" name="Model">
+ <packagedElement xmi:type="uml:Activity" xmi:id="_8CIPMIKGEeSFEt9m3bH63A" name="Interactive_HelloWorld" visibility="protected">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_8CIPMYKGEeSFEt9m3bH63A" annotatedElement="_8CIPMIKGEeSFEt9m3bH63A">
+ <body>activity Interactive_HelloWorld() { WriteLine(&quot;Hello World!&quot;);
+}</body>
+ </ownedComment>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_7-sgsYKGEeSFEt9m3bH63A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7-sgsoKGEeSFEt9m3bH63A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_fayEQLeMEeS_zZpc9I-Bsg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fazSYLeMEeS_zZpc9I-Bsg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <ActionLanguage:TextualRepresentation xmi:id="_8CIPMoKGEeSFEt9m3bH63A" base_Comment="_8CIPMYKGEeSFEt9m3bH63A" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Interactive_InputOutput.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Interactive_InputOutput.uml
new file mode 100644
index 00000000000..0d2dd856a45
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Interactive_InputOutput.uml
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_8CxvcIKGEeSFEt9m3bH63A" name="Model">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_1Sjo0LeMEeS_zZpc9I-Bsg">
+ <importedPackage xmi:type="uml:Model" href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_A6bMYLekEeSkqaPlhCzRxg">
+ <importedPackage xmi:type="uml:Model" href="pathmap://PAPYRUS_fUML_LIBRARY/fUML_Library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Class" xmi:id="_8WWLsIKGEeSFEt9m3bH63A" name="Interactive_InputOutput" classifierBehavior="_8WWL1YKGEeSFEt9m3bH63A" isActive="true">
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_8WWL1oKGEeSFEt9m3bH63A" alias="" visibility="private">
+ <importedElement xmi:type="uml:Package" href="pathmap://PAPYRUS_fUML_LIBRARY/fUML_Library.uml#BasicInputOutput"/>
+ </elementImport>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_8WWLxoKGEeSFEt9m3bH63A" name="Interactive_InputOutput$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8WWLx4KGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8WWLyIKGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_8WWLyYKGEeSFEt9m3bH63A" name="Interactive_InputOutput$initialization$1" visibility="protected" specification="_8WWLyoKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_8WWL2oKGEeSFEt9m3bH63A" annotatedElement="_8WWLyYKGEeSFEt9m3bH63A">
+ <body>activity 'Interactive_InputOutput$initialization$1'(){
+ if (this.'Interactive_InputOutput$initializationFlag$1' == null) {
+ this.'Interactive_InputOutput$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_8WWLy4KGEeSFEt9m3bH63A" name="Interactive_InputOutput$method$1" specification="_8WWLz4KGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_8WWL2YKGEeSFEt9m3bH63A" annotatedElement="_8WWLy4KGEeSFEt9m3bH63A">
+ <body>activity 'Interactive_InputOutput$method$1'(): Interactive_InputOutput {
+ this.'Interactive_InputOutput$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8WWLzIKGEeSFEt9m3bH63A" type="_8WWLsIKGEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8WWLzYKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8WWLzoKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_8WWL04KGEeSFEt9m3bH63A" name="destroy$method$1" specification="_8WWL1IKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_8WWL3IKGEeSFEt9m3bH63A" annotatedElement="_8WWL04KGEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_8WWL1YKGEeSFEt9m3bH63A" name="Interactive_InputOutput$behavior$1" visibility="private">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_8WWL24KGEeSFEt9m3bH63A" annotatedElement="_8WWL1YKGEeSFEt9m3bH63A">
+ <body>activity 'Interactive_InputOutput$behavior$1'() { WriteLine(&quot;Enter two characters.&quot;);
+A(char1, char2, s1, s2);
+Output().write(&quot;char1=&quot;);
+Output().write(char1);
+Output().write(&quot; status1=&quot; + s1.description);
+Output().writeNewLine();
+Output().write(&quot;char2=&quot;);
+Output().write(char2);
+Output().write(&quot; status2=&quot; + s2.description);
+Output().writeNewLine();
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_8WWLyoKGEeSFEt9m3bH63A" name="Interactive_InputOutput$initialization$1" visibility="protected" method="_8WWLyYKGEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_8WWLz4KGEeSFEt9m3bH63A" name="Interactive_InputOutput" method="_8WWLy4KGEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8WWL0IKGEeSFEt9m3bH63A" type="_8WWLsIKGEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8WWL0YKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8WWL0oKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_8WWL1IKGEeSFEt9m3bH63A" name="destroy" method="_8WWL04KGEeSFEt9m3bH63A"/>
+ <nestedClassifier xmi:type="uml:Activity" xmi:id="_8WWLsYKGEeSFEt9m3bH63A" name="Input" visibility="package">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_8WWL3YKGEeSFEt9m3bH63A" annotatedElement="_8WWLsYKGEeSFEt9m3bH63A">
+ <body>activity Input(): StandardInputChannel { return StandardInputChannel.allInstances ()[1];
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8WWLsoKGEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:Class" href="pathmap://PAPYRUS_fUML_LIBRARY/fUML_Library.uml#BasicInputOutput-StandardInputChannel"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8WWLs4KGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8WWLtIKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Activity" xmi:id="_8WWLtYKGEeSFEt9m3bH63A" name="Output" visibility="package">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_8WWL2IKGEeSFEt9m3bH63A" annotatedElement="_8WWLtYKGEeSFEt9m3bH63A">
+ <body>activity Output(): StandardOutputChannel { return StandardOutputChannel.allInstances ()[1];
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8WWLtoKGEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:Class" href="pathmap://PAPYRUS_fUML_LIBRARY/fUML_Library.uml#BasicInputOutput-StandardOutputChannel"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8WWLt4KGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8WWLuIKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Activity" xmi:id="_8WWLuYKGEeSFEt9m3bH63A" name="A" visibility="package">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_8WWL14KGEeSFEt9m3bH63A" annotatedElement="_8WWLuYKGEeSFEt9m3bH63A">
+ <body>activity A(out x: any[0..1], out y: any[0..1], out status1: Status[0..1], out status2: Status[0..1]) { Input().read(x, status1);
+Input().read(y, status2);
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8WWLuoKGEeSFEt9m3bH63A" name="x" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8WWLu4KGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8WWLvIKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8WWLvYKGEeSFEt9m3bH63A" name="y" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8WWLvoKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8WWLv4KGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8WWLwIKGEeSFEt9m3bH63A" name="status1" direction="out">
+ <type xmi:type="uml:DataType" href="pathmap://PAPYRUS_fUML_LIBRARY/fUML_Library.uml#Common-Status"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8WWLwYKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8WWLwoKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8WWLw4KGEeSFEt9m3bH63A" name="status2" direction="out">
+ <type xmi:type="uml:DataType" href="pathmap://PAPYRUS_fUML_LIBRARY/fUML_Library.uml#Common-Status"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8WWLxIKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8WWLxYKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_8CxvcYKGEeSFEt9m3bH63A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8CxvcoKGEeSFEt9m3bH63A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_jvsPBbeMEeS_zZpc9I-Bsg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jvs2ELeMEeS_zZpc9I-Bsg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <ActionLanguage:TextualRepresentation xmi:id="_8WWL3oKGEeSFEt9m3bH63A" base_Comment="_8WWL24KGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_8WWL34KGEeSFEt9m3bH63A" base_Comment="_8WWL2YKGEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Destroy xmi:id="_8WWL4IKGEeSFEt9m3bH63A" base_BehavioralFeature="_8WWL1IKGEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_8WWL4YKGEeSFEt9m3bH63A" base_Comment="_8WWL2IKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_8WWL4oKGEeSFEt9m3bH63A" base_Comment="_8WWL14KGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_8WWL44KGEeSFEt9m3bH63A" base_Comment="_8WWL2oKGEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Create xmi:id="_8WWL5IKGEeSFEt9m3bH63A" base_BehavioralFeature="_8WWLz4KGEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_8WWL5YKGEeSFEt9m3bH63A" base_Comment="_8WWL3YKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_8WWL5oKGEeSFEt9m3bH63A" base_Comment="_8WWL3IKGEeSFEt9m3bH63A" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Interactive_PingPong.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Interactive_PingPong.uml
new file mode 100644
index 00000000000..678d77a0b85
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Interactive_PingPong.uml
@@ -0,0 +1,215 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_8XXfYIKGEeSFEt9m3bH63A" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_8oAjcIKGEeSFEt9m3bH63A" name="Interactive_PingPong" classifierBehavior="_8oAjs4KGEeSFEt9m3bH63A" isActive="true">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_8oAjpIKGEeSFEt9m3bH63A" name="Interactive_PingPong$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8oAjpYKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8oAjpoKGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_8oAjp4KGEeSFEt9m3bH63A" name="Interactive_PingPong$initialization$1" visibility="protected" specification="_8oAjqIKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_8oAjv4KGEeSFEt9m3bH63A" annotatedElement="_8oAjp4KGEeSFEt9m3bH63A">
+ <body>activity 'Interactive_PingPong$initialization$1'(){
+ if (this.'Interactive_PingPong$initializationFlag$1' == null) {
+ this.'Interactive_PingPong$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_8oAjqYKGEeSFEt9m3bH63A" name="Interactive_PingPong$method$1" specification="_8oAjrYKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_8oAju4KGEeSFEt9m3bH63A" annotatedElement="_8oAjqYKGEeSFEt9m3bH63A">
+ <body>activity 'Interactive_PingPong$method$1'(): Interactive_PingPong {
+ this.'Interactive_PingPong$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8oAjqoKGEeSFEt9m3bH63A" type="_8oAjcIKGEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8oAjq4KGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8oAjrIKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_8oAjsYKGEeSFEt9m3bH63A" name="destroy$method$1" specification="_8oAjsoKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_8oAjuYKGEeSFEt9m3bH63A" annotatedElement="_8oAjsYKGEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_8oAjs4KGEeSFEt9m3bH63A" name="Interactive_PingPong$behavior$1" visibility="private">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_8oAjuoKGEeSFEt9m3bH63A" annotatedElement="_8oAjs4KGEeSFEt9m3bH63A">
+ <body>activity 'Interactive_PingPong$behavior$1'() { a = new A();
+b = new B();
+Write(&quot;Enter n: &quot;);
+n = IntegerFunctions::ToInteger(ReadLine(error));
+if (n->notEmpty()) { a.Start(b);
+b.Start(a, n);
+} }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_8oAjqIKGEeSFEt9m3bH63A" name="Interactive_PingPong$initialization$1" visibility="protected" method="_8oAjp4KGEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_8oAjrYKGEeSFEt9m3bH63A" name="Interactive_PingPong" method="_8oAjqYKGEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8oAjroKGEeSFEt9m3bH63A" type="_8oAjcIKGEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8oAjr4KGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8oAjsIKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_8oAjsoKGEeSFEt9m3bH63A" name="destroy" method="_8oAjsYKGEeSFEt9m3bH63A"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_8oAjcYKGEeSFEt9m3bH63A" name="A" visibility="package" classifierBehavior="_8oAjo4KGEeSFEt9m3bH63A" isActive="true">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_8oAjkoKGEeSFEt9m3bH63A" name="A$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8oAjk4KGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8oAjlIKGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_8oAjlYKGEeSFEt9m3bH63A" name="A$initialization$1" visibility="protected" specification="_8oAjloKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_8oAjt4KGEeSFEt9m3bH63A" annotatedElement="_8oAjlYKGEeSFEt9m3bH63A">
+ <body>activity 'A$initialization$1'(){
+ if (this.'A$initializationFlag$1' == null) {
+ this.'A$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_8oAjl4KGEeSFEt9m3bH63A" name="A$method$1" specification="_8oAjm4KGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_8oAjvYKGEeSFEt9m3bH63A" annotatedElement="_8oAjl4KGEeSFEt9m3bH63A">
+ <body>activity 'A$method$1'(): A {
+ this.'A$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8oAjmIKGEeSFEt9m3bH63A" type="_8oAjcYKGEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8oAjmYKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8oAjmoKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_8oAjn4KGEeSFEt9m3bH63A" name="destroy$method$1" specification="_8oAjoIKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_8oAjvoKGEeSFEt9m3bH63A" annotatedElement="_8oAjn4KGEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_8oAjo4KGEeSFEt9m3bH63A" name="A$behavior$1" visibility="private">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_8oAjuIKGEeSFEt9m3bH63A" annotatedElement="_8oAjo4KGEeSFEt9m3bH63A">
+ <body>activity 'A$behavior$1'() { accept (start: Start);
+WriteLine(&quot;Starting A&quot;);
+b = start.b;
+while (true) { accept (Ping);
+WriteLine(&quot;Ping!&quot;);
+b.Pong();
+} }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_8oAjloKGEeSFEt9m3bH63A" name="A$initialization$1" visibility="protected" method="_8oAjlYKGEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_8oAjm4KGEeSFEt9m3bH63A" name="A" method="_8oAjl4KGEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8oAjnIKGEeSFEt9m3bH63A" type="_8oAjcYKGEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8oAjnYKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8oAjnoKGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_8oAjoIKGEeSFEt9m3bH63A" name="destroy" method="_8oAjn4KGEeSFEt9m3bH63A"/>
+ <nestedClassifier xmi:type="uml:Signal" xmi:id="_8oAjcoKGEeSFEt9m3bH63A" name="Start" visibility="package">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_8oAjc4KGEeSFEt9m3bH63A" name="b" visibility="public" type="_8oAjdoKGEeSFEt9m3bH63A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8oAjdIKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8oAjdYKGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Signal" xmi:id="_8oAjkYKGEeSFEt9m3bH63A" name="Ping" visibility="package"/>
+ <ownedReception xmi:type="uml:Reception" xmi:id="_8oAjoYKGEeSFEt9m3bH63A" name="Start" visibility="package" signal="_8oAjcoKGEeSFEt9m3bH63A"/>
+ <ownedReception xmi:type="uml:Reception" xmi:id="_8oAjooKGEeSFEt9m3bH63A" name="Ping" visibility="package" signal="_8oAjkYKGEeSFEt9m3bH63A"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_8oAjdoKGEeSFEt9m3bH63A" name="B" visibility="package" classifierBehavior="_8oAjkIKGEeSFEt9m3bH63A" isActive="true">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_8oAjf4KGEeSFEt9m3bH63A" name="B$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8oAjgIKGEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8oAjgYKGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_8oAjgoKGEeSFEt9m3bH63A" name="B$initialization$1" visibility="protected" specification="_8oAjg4KGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_8oAjtYKGEeSFEt9m3bH63A" annotatedElement="_8oAjgoKGEeSFEt9m3bH63A">
+ <body>activity 'B$initialization$1'(){
+ if (this.'B$initializationFlag$1' == null) {
+ this.'B$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_8oAjhIKGEeSFEt9m3bH63A" name="B$method$1" specification="_8oAjiIKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_8oAjtoKGEeSFEt9m3bH63A" annotatedElement="_8oAjhIKGEeSFEt9m3bH63A">
+ <body>activity 'B$method$1'(): B {
+ this.'B$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8oAjhYKGEeSFEt9m3bH63A" type="_8oAjdoKGEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8oAjhoKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8oAjh4KGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_8oAjjIKGEeSFEt9m3bH63A" name="destroy$method$1" specification="_8oAjjYKGEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_8oAjvIKGEeSFEt9m3bH63A" annotatedElement="_8oAjjIKGEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_8oAjkIKGEeSFEt9m3bH63A" name="B$behavior$1" visibility="private">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_8oAjtIKGEeSFEt9m3bH63A" annotatedElement="_8oAjkIKGEeSFEt9m3bH63A">
+ <body>activity 'B$behavior$1'() { accept (start: Start);
+WriteLine(&quot;Starting B&quot;);
+a = start.a;
+for (i in 1..start.n) { WriteLine(&quot;i = &quot; + IntegerFunctions::ToString(i));
+a.Ping();
+accept (Pong);
+WriteLine(&quot;Pong!&quot;);
+} }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_8oAjg4KGEeSFEt9m3bH63A" name="B$initialization$1" visibility="protected" method="_8oAjgoKGEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_8oAjiIKGEeSFEt9m3bH63A" name="B" method="_8oAjhIKGEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8oAjiYKGEeSFEt9m3bH63A" type="_8oAjdoKGEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8oAjioKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8oAji4KGEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_8oAjjYKGEeSFEt9m3bH63A" name="destroy" method="_8oAjjIKGEeSFEt9m3bH63A"/>
+ <nestedClassifier xmi:type="uml:Signal" xmi:id="_8oAjd4KGEeSFEt9m3bH63A" name="Start" visibility="package">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_8oAjeIKGEeSFEt9m3bH63A" name="a" visibility="public" type="_8oAjcYKGEeSFEt9m3bH63A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8oAjeYKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8oAjeoKGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_8oAje4KGEeSFEt9m3bH63A" name="n" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8oAjfIKGEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8oAjfYKGEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Signal" xmi:id="_8oAjfoKGEeSFEt9m3bH63A" name="Pong" visibility="package"/>
+ <ownedReception xmi:type="uml:Reception" xmi:id="_8oAjjoKGEeSFEt9m3bH63A" name="Start" visibility="package" signal="_8oAjd4KGEeSFEt9m3bH63A"/>
+ <ownedReception xmi:type="uml:Reception" xmi:id="_8oAjj4KGEeSFEt9m3bH63A" name="Pong" visibility="package" signal="_8oAjfoKGEeSFEt9m3bH63A"/>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_8XXfYYKGEeSFEt9m3bH63A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8XXfYoKGEeSFEt9m3bH63A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_FGSASbeNEeS_zZpc9I-Bsg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FGSnULeNEeS_zZpc9I-Bsg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <ActionLanguage:TextualRepresentation xmi:id="_8oAjwIKGEeSFEt9m3bH63A" base_Comment="_8oAjv4KGEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Create xmi:id="_8oAjwYKGEeSFEt9m3bH63A" base_BehavioralFeature="_8oAjm4KGEeSFEt9m3bH63A"/>
+ <standard:Create xmi:id="_8oAjwoKGEeSFEt9m3bH63A" base_BehavioralFeature="_8oAjrYKGEeSFEt9m3bH63A"/>
+ <standard:Destroy xmi:id="_8oAjw4KGEeSFEt9m3bH63A" base_BehavioralFeature="_8oAjjYKGEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_8oAjxIKGEeSFEt9m3bH63A" base_Comment="_8oAju4KGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_8oAjxYKGEeSFEt9m3bH63A" base_Comment="_8oAjuIKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_8oAjxoKGEeSFEt9m3bH63A" base_Comment="_8oAjtoKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_8oAjx4KGEeSFEt9m3bH63A" base_Comment="_8oAjuYKGEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Create xmi:id="_8oAjyIKGEeSFEt9m3bH63A" base_BehavioralFeature="_8oAjiIKGEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_8oAjyYKGEeSFEt9m3bH63A" base_Comment="_8oAjtIKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_8oAjyoKGEeSFEt9m3bH63A" base_Comment="_8oAjt4KGEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Destroy xmi:id="_8oAjy4KGEeSFEt9m3bH63A" base_BehavioralFeature="_8oAjoIKGEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_8oAjzIKGEeSFEt9m3bH63A" base_Comment="_8oAjvIKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_8oAjzYKGEeSFEt9m3bH63A" base_Comment="_8oAjvoKGEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Destroy xmi:id="_8oAjzoKGEeSFEt9m3bH63A" base_BehavioralFeature="_8oAjsoKGEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_8oAjz4KGEeSFEt9m3bH63A" base_Comment="_8oAjvYKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_8oAj0IKGEeSFEt9m3bH63A" base_Comment="_8oAjtYKGEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_8oAj0YKGEeSFEt9m3bH63A" base_Comment="_8oAjuoKGEeSFEt9m3bH63A" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Interactive_Read.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Interactive_Read.uml
new file mode 100644
index 00000000000..040ffd05ce9
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Interactive_Read.uml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_8oN-0IKGEeSFEt9m3bH63A" name="Model">
+ <packagedElement xmi:type="uml:Activity" xmi:id="_8uNSEIKGEeSFEt9m3bH63A" name="Interactive_Read" visibility="protected">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_8uNSEYKGEeSFEt9m3bH63A" annotatedElement="_8uNSEIKGEeSFEt9m3bH63A">
+ <body>activity Interactive_Read() { WriteLine(&quot;Read Line:&quot;);
+WriteLine(ReadLine(status));
+WriteLine(&quot;Status:&quot;);
+WriteLine(status.description);
+WriteLine(StandardInputChannel.allInstances ().getStatus().description);
+WriteLine(&quot;read Integer, Boolean, UnlimitedNatural:&quot;);
+WriteLine(IntegerFunctions::ToString(StandardInputChannel.allInstances
+().readInteger(status)));
+WriteLine(status.description);
+WriteLine(BooleanFunctions::ToString(StandardInputChannel.allInstances
+().readBoolean(status)));
+WriteLine(status.description);
+WriteLine(UnlimitedNaturalFunctions::ToString(StandardInputChannel.allInstances
+().readUnlimitedNatural(status)));
+WriteLine(status.description);
+}</body>
+ </ownedComment>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_8oN-0YKGEeSFEt9m3bH63A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8oN-0oKGEeSFEt9m3bH63A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_KB93ILeNEeS_zZpc9I-Bsg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KB93IbeNEeS_zZpc9I-Bsg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <ActionLanguage:TextualRepresentation xmi:id="_8uNSEoKGEeSFEt9m3bH63A" base_Comment="_8uNSEYKGEeSFEt9m3bH63A" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/ModelLibraryTest.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/ModelLibraryTest.uml
new file mode 100644
index 00000000000..db45c79bc14
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/ModelLibraryTest.uml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_JlpS4MOTEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Package" xmi:id="_JlzD4MOTEeSiR-ar9ioVjA" name="ModelLibraryTest">
+ <packagedElement xmi:type="uml:Class" xmi:id="_JlzD4cOTEeSiR-ar9ioVjA" name="C" visibility="public">
+ <ownedAttribute xmi:id="_JlzD6sOTEeSiR-ar9ioVjA" name="C$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlzD68OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlzD7MOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_JlzD5sOTEeSiR-ar9ioVjA" name="C$method$1" visibility="protected" specification="_JlzD4sOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_JlzD8cOTEeSiR-ar9ioVjA" annotatedElement="_JlzD5sOTEeSiR-ar9ioVjA">
+ <body>activity 'C$method$1'(): C {
+if (this.'C$initializationFlag$1' == null) {
+this.'C$initialization$1'();
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_JlzD58OTEeSiR-ar9ioVjA" name="" type="_JlzD4cOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlzD6MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlzD6cOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_JlzD7cOTEeSiR-ar9ioVjA" name="C$initialization$1" visibility="protected" specification="_JlzD7sOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_JlzD8sOTEeSiR-ar9ioVjA" annotatedElement="_JlzD7cOTEeSiR-ar9ioVjA">
+ <body>activity 'C$initialization$1'(){
+ if (this.'C$initializationFlag$1' == null) {
+ this.'C$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_JlzD78OTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_JlzD8MOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_JlzD88OTEeSiR-ar9ioVjA" annotatedElement="_JlzD78OTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_JlzD4sOTEeSiR-ar9ioVjA" name="C" visibility="public" method="_JlzD5sOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_JlzD48OTEeSiR-ar9ioVjA" name="" type="_JlzD4cOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JlzD5MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_JlzD5cOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_JlzD7sOTEeSiR-ar9ioVjA" name="C$initialization$1" visibility="protected" method="_JlzD7cOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_JlzD8MOTEeSiR-ar9ioVjA" name="destroy" method="_JlzD78OTEeSiR-ar9ioVjA"/>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:id="_JlpS4cOTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_JlpS4sOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_JlpS48OTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_JlpS5MOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:ModelLibrary xmi:id="_JlzD9MOTEeSiR-ar9ioVjA" base_Package="_JlzD4MOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_JlzD9cOTEeSiR-ar9ioVjA" base_BehavioralFeature="_JlzD8MOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_JlzD9sOTEeSiR-ar9ioVjA" base_BehavioralFeature="_JlzD4sOTEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlzD98OTEeSiR-ar9ioVjA" base_Comment="_JlzD8cOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlzD-MOTEeSiR-ar9ioVjA" base_Comment="_JlzD8sOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_JlzD-cOTEeSiR-ar9ioVjA" base_Comment="_JlzD88OTEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/ReferentTest.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/ReferentTest.uml
new file mode 100644
index 00000000000..47cf57eec15
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/ReferentTest.uml
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_Jl3VUMOTEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_J78TAMOTEeSiR-ar9ioVjA" name="ReferentTest">
+ <ownedAttribute xmi:id="_J78TGsOTEeSiR-ar9ioVjA" name="ReferentTest$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_J78TG8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_J78THMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_J78THcOTEeSiR-ar9ioVjA" name="ReferentTest$initialization$1" visibility="protected" specification="_J78THsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_J78TLMOTEeSiR-ar9ioVjA" annotatedElement="_J78THcOTEeSiR-ar9ioVjA">
+ <body>activity 'ReferentTest$initialization$1'(){
+ if (this.'ReferentTest$initializationFlag$1' == null) {
+ this.'ReferentTest$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_J78TH8OTEeSiR-ar9ioVjA" name="ReferentTest$method$1" specification="_J78TI8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_J78TLsOTEeSiR-ar9ioVjA" annotatedElement="_J78TH8OTEeSiR-ar9ioVjA">
+ <body>activity 'ReferentTest$method$1'(): ReferentTest {
+ this.'ReferentTest$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_J78TIMOTEeSiR-ar9ioVjA" type="_J78TAMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_J78TIcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_J78TIsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_J78TJ8OTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_J78TKMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_J78TK8OTEeSiR-ar9ioVjA" annotatedElement="_J78TJ8OTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_J78THsOTEeSiR-ar9ioVjA" name="ReferentTest$initialization$1" visibility="protected" method="_J78THcOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_J78TI8OTEeSiR-ar9ioVjA" name="ReferentTest" method="_J78TH8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_J78TJMOTEeSiR-ar9ioVjA" type="_J78TAMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_J78TJcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_J78TJsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_J78TKMOTEeSiR-ar9ioVjA" name="destroy" method="_J78TJ8OTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_J78TAcOTEeSiR-ar9ioVjA" name="Test" visibility="public" classifierBehavior="_J78TGcOTEeSiR-ar9ioVjA" isActive="true">
+ <ownedAttribute xmi:id="_J78TCsOTEeSiR-ar9ioVjA" name="Test$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_J78TC8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_J78TDMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_J78TBsOTEeSiR-ar9ioVjA" name="test$method$1" visibility="protected" specification="_J78TAsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_J78TKsOTEeSiR-ar9ioVjA" annotatedElement="_J78TBsOTEeSiR-ar9ioVjA">
+ <body>activity 'test$method$1'(out test: Test) {
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_J78TB8OTEeSiR-ar9ioVjA" name="test" type="_J78TAcOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_J78TCMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_J78TCcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_J78TDcOTEeSiR-ar9ioVjA" name="Test$initialization$1" visibility="protected" specification="_J78TDsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_J78TLcOTEeSiR-ar9ioVjA" annotatedElement="_J78TDcOTEeSiR-ar9ioVjA">
+ <body>activity 'Test$initialization$1'(){
+ if (this.'Test$initializationFlag$1' == null) {
+ this.'Test$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_J78TD8OTEeSiR-ar9ioVjA" name="Test$method$1" specification="_J78TE8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_J78TL8OTEeSiR-ar9ioVjA" annotatedElement="_J78TD8OTEeSiR-ar9ioVjA">
+ <body>activity 'Test$method$1'(): Test {
+ this.'Test$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_J78TEMOTEeSiR-ar9ioVjA" type="_J78TAcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_J78TEcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_J78TEsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_J78TF8OTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_J78TGMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_J78TKcOTEeSiR-ar9ioVjA" annotatedElement="_J78TF8OTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_J78TGcOTEeSiR-ar9ioVjA" name="Test$behavior$1" visibility="private">
+ <ownedComment xmi:id="_J78TMMOTEeSiR-ar9ioVjA" annotatedElement="_J78TGcOTEeSiR-ar9ioVjA">
+ <body>activity 'Test$behavior$1'() {
+ this.test();
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_J78TAsOTEeSiR-ar9ioVjA" name="test" visibility="private" method="_J78TBsOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_J78TA8OTEeSiR-ar9ioVjA" name="test" type="_J78TAcOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_J78TBMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_J78TBcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_J78TDsOTEeSiR-ar9ioVjA" name="Test$initialization$1" visibility="protected" method="_J78TDcOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_J78TE8OTEeSiR-ar9ioVjA" name="Test" method="_J78TD8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_J78TFMOTEeSiR-ar9ioVjA" type="_J78TAcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_J78TFcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_J78TFsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_J78TGMOTEeSiR-ar9ioVjA" name="destroy" method="_J78TF8OTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:id="_Jl3VUcOTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_Jl3VUsOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_Jl3VU8OTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_Jl3VVMOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Create xmi:id="_J78TMcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_J78TI8OTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_J78TMsOTEeSiR-ar9ioVjA" base_BehavioralFeature="_J78TE8OTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_J78TM8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_J78TKMOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_J786EMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_J78TGMOTEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_J786EcOTEeSiR-ar9ioVjA" base_Comment="_J78TKcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_J786EsOTEeSiR-ar9ioVjA" base_Comment="_J78TKsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_J786E8OTEeSiR-ar9ioVjA" base_Comment="_J78TK8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_J786FMOTEeSiR-ar9ioVjA" base_Comment="_J78TLMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_J786FcOTEeSiR-ar9ioVjA" base_Comment="_J78TLcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_J786FsOTEeSiR-ar9ioVjA" base_Comment="_J78TLsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_J786F8OTEeSiR-ar9ioVjA" base_Comment="_J78TL8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_J786GMOTEeSiR-ar9ioVjA" base_Comment="_J78TMMOTEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/SelfReferenceTest.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/SelfReferenceTest.uml
new file mode 100644
index 00000000000..3a49a89e359
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/SelfReferenceTest.uml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_J8dQYMOTEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_KGPegMOTEeSiR-ar9ioVjA" name="SelfReferenceTest">
+ <ownedAttribute xmi:id="_KGPegcOTEeSiR-ar9ioVjA" name="self" visibility="public" type="_KGPegMOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KGPegsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KGPeg8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_KGPehMOTEeSiR-ar9ioVjA" name="SelfReferenceTest$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KGPehcOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KGPehsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_KGPeh8OTEeSiR-ar9ioVjA" name="SelfReferenceTest$initialization$1" visibility="protected" specification="_KGPeiMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_KGPek8OTEeSiR-ar9ioVjA" annotatedElement="_KGPeh8OTEeSiR-ar9ioVjA">
+ <body>activity 'SelfReferenceTest$initialization$1'(){
+ if (this.'SelfReferenceTest$initializationFlag$1' == null) {
+ this.'SelfReferenceTest$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_KGPeicOTEeSiR-ar9ioVjA" name="SelfReferenceTest$method$1" specification="_KGPejcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_KGPelcOTEeSiR-ar9ioVjA" annotatedElement="_KGPeicOTEeSiR-ar9ioVjA">
+ <body>activity 'SelfReferenceTest$method$1'(): SelfReferenceTest {
+ this.'SelfReferenceTest$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_KGPeisOTEeSiR-ar9ioVjA" type="_KGPegMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KGPei8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KGPejMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_KGPekcOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_KGPeksOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_KGPelMOTEeSiR-ar9ioVjA" annotatedElement="_KGPekcOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_KGPeiMOTEeSiR-ar9ioVjA" name="SelfReferenceTest$initialization$1" visibility="protected" method="_KGPeh8OTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_KGPejcOTEeSiR-ar9ioVjA" name="SelfReferenceTest" method="_KGPeicOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_KGPejsOTEeSiR-ar9ioVjA" type="_KGPegMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KGPej8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KGPekMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_KGPeksOTEeSiR-ar9ioVjA" name="destroy" method="_KGPekcOTEeSiR-ar9ioVjA"/>
+ </packagedElement>
+ <profileApplication xmi:id="_J8dQYcOTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_J8dQYsOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_J8dQY8OTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_J8dQZMOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Destroy xmi:id="_KGPelsOTEeSiR-ar9ioVjA" base_BehavioralFeature="_KGPeksOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_KGPel8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_KGPejcOTEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_KGPemMOTEeSiR-ar9ioVjA" base_Comment="_KGPek8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_KGPemcOTEeSiR-ar9ioVjA" base_Comment="_KGPelMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_KGPemsOTEeSiR-ar9ioVjA" base_Comment="_KGPelcOTEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_Accept.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_Accept.uml
new file mode 100644
index 00000000000..05d40851c97
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_Accept.uml
@@ -0,0 +1,373 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_KG6M4MOTEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_K40yAMOTEeSiR-ar9ioVjA" name="Statements_Accept" classifierBehavior="_K41ZfMOTEeSiR-ar9ioVjA" isActive="true">
+ <ownedComment xmi:id="_K41ZfcOTEeSiR-ar9ioVjA" annotatedElement="_K40yAMOTEeSiR-ar9ioVjA">
+ <body>&#xD;
+ * Test accept statements.&#xD;
+ *</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_K41ZbcOTEeSiR-ar9ioVjA" name="Statements_Accept$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZbsOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41Zb8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_K41ZcMOTEeSiR-ar9ioVjA" name="Statements_Accept$initialization$1" visibility="protected" specification="_K41ZccOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_K41Zg8OTEeSiR-ar9ioVjA" annotatedElement="_K41ZcMOTEeSiR-ar9ioVjA">
+ <body>activity 'Statements_Accept$initialization$1'(){
+ if (this.'Statements_Accept$initializationFlag$1' == null) {
+ this.'Statements_Accept$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_K41ZcsOTEeSiR-ar9ioVjA" name="Statements_Accept$method$1" specification="_K41ZdsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_K41ZgsOTEeSiR-ar9ioVjA" annotatedElement="_K41ZcsOTEeSiR-ar9ioVjA">
+ <body>activity 'Statements_Accept$method$1'(): Statements_Accept {
+ this.'Statements_Accept$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_K41Zc8OTEeSiR-ar9ioVjA" type="_K40yAMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZdMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41ZdcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_K41ZesOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_K41Ze8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_K41ZgMOTEeSiR-ar9ioVjA" annotatedElement="_K41ZesOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_K41ZfMOTEeSiR-ar9ioVjA" name="Statements_Accept$behavior$1" visibility="private">
+ <ownedComment xmi:id="_K41ZgcOTEeSiR-ar9ioVjA" annotatedElement="_K41ZfMOTEeSiR-ar9ioVjA">
+ <body>activity 'Statements_Accept$behavior$1'() {
+ new TestRunner().Start();
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_K41ZccOTEeSiR-ar9ioVjA" name="Statements_Accept$initialization$1" visibility="protected" method="_K41ZcMOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_K41ZdsOTEeSiR-ar9ioVjA" name="Statements_Accept" method="_K41ZcsOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_K41Zd8OTEeSiR-ar9ioVjA" type="_K40yAMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZeMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41ZecOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_K41Ze8OTEeSiR-ar9ioVjA" name="destroy" method="_K41ZesOTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_K40yAcOTEeSiR-ar9ioVjA" name="Super" visibility="private" isAbstract="true" isActive="true">
+ <ownedAttribute xmi:id="_K40yB8OTEeSiR-ar9ioVjA" name="Super$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K40yCMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K40yCcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_K40yCsOTEeSiR-ar9ioVjA" name="Super$initialization$1" visibility="protected" specification="_K40yC8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_K41ZisOTEeSiR-ar9ioVjA" annotatedElement="_K40yCsOTEeSiR-ar9ioVjA">
+ <body>activity 'Super$initialization$1'(){
+ if (this.'Super$initializationFlag$1' == null) {
+ this.'Super$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_K40yDMOTEeSiR-ar9ioVjA" name="Super$method$1" specification="_K41ZEMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_K41ZicOTEeSiR-ar9ioVjA" annotatedElement="_K40yDMOTEeSiR-ar9ioVjA">
+ <body>activity 'Super$method$1'(): Super {
+ this.'Super$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_K40yDcOTEeSiR-ar9ioVjA" type="_K40yAcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K40yDsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K40yD8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_K41ZFMOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_K41ZFcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_K41Zf8OTEeSiR-ar9ioVjA" annotatedElement="_K41ZFMOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_K40yC8OTEeSiR-ar9ioVjA" name="Super$initialization$1" visibility="protected" method="_K40yCsOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_K41ZEMOTEeSiR-ar9ioVjA" name="Super" method="_K40yDMOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_K41ZEcOTEeSiR-ar9ioVjA" type="_K40yAcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZEsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41ZE8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_K41ZFcOTEeSiR-ar9ioVjA" name="destroy" method="_K41ZFMOTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Signal" xmi:id="_K40yAsOTEeSiR-ar9ioVjA" name="SignalNewArrival" visibility="public">
+ <ownedAttribute xmi:id="_K40yA8OTEeSiR-ar9ioVjA" name="name" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K40yBMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K40yBcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Signal" xmi:id="_K40yBsOTEeSiR-ar9ioVjA" name="SignalTermination" visibility="public"/>
+ <ownedReception xmi:id="_K41ZFsOTEeSiR-ar9ioVjA" name="SignalTermination" visibility="public" signal="_K40yBsOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_K41ZF8OTEeSiR-ar9ioVjA" name="Test" visibility="private" classifierBehavior="_K41ZbMOTEeSiR-ar9ioVjA" isActive="true">
+ <generalization xmi:id="_K41ZGMOTEeSiR-ar9ioVjA" general="_K40yAcOTEeSiR-ar9ioVjA"/>
+ <ownedAttribute xmi:id="_K41ZGcOTEeSiR-ar9ioVjA" name="sig" visibility="public">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZGsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41ZG8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_K41ZHMOTEeSiR-ar9ioVjA" name="sig1" visibility="public">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZHcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41ZHsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_K41ZH8OTEeSiR-ar9ioVjA" name="name" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZIMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41ZIcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_K41ZIsOTEeSiR-ar9ioVjA" name="terminate" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZI8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41ZJMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_K41ZJcOTEeSiR-ar9ioVjA" name="arrival" visibility="public" type="_K40yAsOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZJsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41ZJ8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_K41ZKMOTEeSiR-ar9ioVjA" name="count" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZKcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41ZKsOTEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_K41ZK8OTEeSiR-ar9ioVjA" behavior="_K41ZLMOTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_K41ZMMOTEeSiR-ar9ioVjA" name="signals" visibility="public" isOrdered="true" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZMcOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41ZMsOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_K41ZM8OTEeSiR-ar9ioVjA" name="flag" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZNMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41ZNcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_K41ZN8OTEeSiR-ar9ioVjA" name="tester" visibility="public" type="_K41ZOsOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZOMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41ZOcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_K41ZZcOTEeSiR-ar9ioVjA" name="Test$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZZsOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41ZZ8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_K41ZXsOTEeSiR-ar9ioVjA" name="Test$method$1" visibility="protected" specification="_K41ZV8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_K41ZfsOTEeSiR-ar9ioVjA" annotatedElement="_K41ZXsOTEeSiR-ar9ioVjA">
+ <body>activity 'Test$method$1'(in tester: TestRunner): Test {
+if (this.'Test$initializationFlag$1' == null) {
+this.'Test$initialization$1'();
+this.tester = tester;
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_K41ZX8OTEeSiR-ar9ioVjA" name="tester" type="_K41ZOsOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZYMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41ZYcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_K41ZYsOTEeSiR-ar9ioVjA" name="" type="_K41ZF8OTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZY8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41ZZMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_K41ZLMOTEeSiR-ar9ioVjA" name="count$defaultValue$1">
+ <ownedComment xmi:id="_K41ZhsOTEeSiR-ar9ioVjA" annotatedElement="_K41ZLMOTEeSiR-ar9ioVjA">
+ <body>activity 'count$defaultValue$1'(): Integer {
+ return 0;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_K41ZLcOTEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZLsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41ZL8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_K41ZaMOTEeSiR-ar9ioVjA" name="Test$initialization$1" visibility="protected" specification="_K41ZacOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_K41ZhMOTEeSiR-ar9ioVjA" annotatedElement="_K41ZaMOTEeSiR-ar9ioVjA">
+ <body>activity 'Test$initialization$1'(){
+ if (this.'Test$initializationFlag$1' == null) {
+ super.Super::'Super$initialization$1'();
+ this.count = 'count$defaultValue$1'();
+ this.'Test$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_K41ZasOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_K41Za8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_K41ZhcOTEeSiR-ar9ioVjA" annotatedElement="_K41ZasOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_K41ZbMOTEeSiR-ar9ioVjA" name="Test$behavior$1" visibility="private">
+ <ownedComment xmi:id="_K41ZjcOTEeSiR-ar9ioVjA" annotatedElement="_K41ZbMOTEeSiR-ar9ioVjA">
+ <body>activity 'Test$behavior$1'() {
+ accept (sig: SignalNewArrival, SignalTermination);
+ this.sig = sig;
+ terminate = false;
+ accept (arrival1: SignalNewArrival) {
+ this.name = arrival1.name;
+ }
+ or accept (SignalTermination) {
+ terminate = true;
+ }
+ this.terminate = terminate;
+ accept (SignalNewArrival);
+ accept (arrival3: SignalNewArrival);
+ this.arrival = arrival3;
+ for (i in 1..2) {
+ accept (s1: SignalNewArrival, SignalTermination);
+ this.signals[i] = s1;
+ }
+ do {
+ accept (s: SignalNewArrival, SignalTermination);
+ ++ this.count;
+ }
+ while (s hastype SignalNewArrival);
+ if (true) {
+ accept (SignalNewArrival);
+ this.flag = true;
+ }
+ else {
+ accept (SignalTermination);
+ this.flag = false;
+ }
+ accept (sig1: SignalTermination);
+ this.sig1 = sig1;
+ this.tester.Continue();
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_K41ZV8OTEeSiR-ar9ioVjA" name="Test" visibility="public" method="_K41ZXsOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_K41ZWMOTEeSiR-ar9ioVjA" name="tester" type="_K41ZOsOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZWcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41ZWsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_K41ZW8OTEeSiR-ar9ioVjA" name="" type="_K41ZF8OTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZXMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41ZXcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_K41ZacOTEeSiR-ar9ioVjA" name="Test$initialization$1" visibility="protected" method="_K41ZaMOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_K41Za8OTEeSiR-ar9ioVjA" name="destroy" method="_K41ZasOTEeSiR-ar9ioVjA"/>
+ <ownedReception xmi:id="_K41ZNsOTEeSiR-ar9ioVjA" name="SignalNewArrival" visibility="public" signal="_K40yAsOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_K41ZOsOTEeSiR-ar9ioVjA" name="TestRunner" visibility="public" classifierBehavior="_K41ZVsOTEeSiR-ar9ioVjA" isActive="true">
+ <ownedAttribute xmi:id="_K41ZRcOTEeSiR-ar9ioVjA" name="TestRunner$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZRsOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41ZR8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_K41ZQcOTEeSiR-ar9ioVjA" name="run$method$1" visibility="protected" specification="_K41ZPcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_K41ZiMOTEeSiR-ar9ioVjA" annotatedElement="_K41ZQcOTEeSiR-ar9ioVjA">
+ <body>activity 'run$method$1'(out test: Test) {
+ test = new Test(this);
+ test.SignalTermination();
+ test.SignalNewArrival(&quot;Arrival1&quot;);
+ test.SignalNewArrival(&quot;Arrival2&quot;);
+ test.SignalNewArrival(&quot;Arrival3&quot;);
+ test.SignalNewArrival(&quot;Arrival4&quot;);
+ test.SignalTermination();
+ test.SignalNewArrival(&quot;Arrival5&quot;);
+ test.SignalNewArrival(&quot;Arrival6&quot;);
+ test.SignalTermination();
+ test.SignalNewArrival(&quot;Arrival7&quot;);
+ test.SignalNewArrival(&quot;Arrival8&quot;);
+ test.SignalTermination();
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_K41ZQsOTEeSiR-ar9ioVjA" name="test" type="_K41ZF8OTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZQ8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41ZRMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_K41ZSMOTEeSiR-ar9ioVjA" name="TestRunner$initialization$1" visibility="protected" specification="_K41ZScOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_K41ZjMOTEeSiR-ar9ioVjA" annotatedElement="_K41ZSMOTEeSiR-ar9ioVjA">
+ <body>activity 'TestRunner$initialization$1'(){
+ if (this.'TestRunner$initializationFlag$1' == null) {
+ this.'TestRunner$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_K41ZSsOTEeSiR-ar9ioVjA" name="TestRunner$method$1" specification="_K41ZTsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_K41ZjsOTEeSiR-ar9ioVjA" annotatedElement="_K41ZSsOTEeSiR-ar9ioVjA">
+ <body>activity 'TestRunner$method$1'(): TestRunner {
+ this.'TestRunner$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_K41ZS8OTEeSiR-ar9ioVjA" type="_K41ZOsOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZTMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41ZTcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_K41ZUsOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_K41ZU8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_K41Zh8OTEeSiR-ar9ioVjA" annotatedElement="_K41ZUsOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_K41ZVsOTEeSiR-ar9ioVjA" name="TestRunner$behavior$1" visibility="private">
+ <ownedComment xmi:id="_K41Zi8OTEeSiR-ar9ioVjA" annotatedElement="_K41ZVsOTEeSiR-ar9ioVjA">
+ <body>activity 'TestRunner$behavior$1'() {
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_K41ZPcOTEeSiR-ar9ioVjA" name="run" visibility="private" method="_K41ZQcOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_K41ZPsOTEeSiR-ar9ioVjA" name="test" type="_K41ZF8OTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZP8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41ZQMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_K41ZScOTEeSiR-ar9ioVjA" name="TestRunner$initialization$1" visibility="protected" method="_K41ZSMOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_K41ZTsOTEeSiR-ar9ioVjA" name="TestRunner" method="_K41ZSsOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_K41ZT8OTEeSiR-ar9ioVjA" type="_K41ZOsOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K41ZUMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_K41ZUcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_K41ZU8OTEeSiR-ar9ioVjA" name="destroy" method="_K41ZUsOTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Signal" xmi:id="_K41ZO8OTEeSiR-ar9ioVjA" name="Start" visibility="public"/>
+ <nestedClassifier xmi:type="uml:Signal" xmi:id="_K41ZPMOTEeSiR-ar9ioVjA" name="Continue" visibility="public"/>
+ <ownedReception xmi:id="_K41ZVMOTEeSiR-ar9ioVjA" name="Start" visibility="public" signal="_K41ZO8OTEeSiR-ar9ioVjA"/>
+ <ownedReception xmi:id="_K41ZVcOTEeSiR-ar9ioVjA" name="Continue" visibility="public" signal="_K41ZPMOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:id="_KG6M4cOTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_KG6M4sOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_KG6M48OTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_KG6M5MOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Create xmi:id="_K41Zj8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_K41ZdsOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_K41ZkMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_K41Ze8OTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_K41ZkcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_K41ZFcOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_K41ZksOTEeSiR-ar9ioVjA" base_BehavioralFeature="_K41Za8OTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_K41Zk8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_K41ZU8OTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_K41ZlMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_K41ZEMOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_K41ZlcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_K41ZV8OTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_K41ZlsOTEeSiR-ar9ioVjA" base_BehavioralFeature="_K41ZTsOTEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_K41Zl8OTEeSiR-ar9ioVjA" base_Comment="_K41ZfsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_K41ZmMOTEeSiR-ar9ioVjA" base_Comment="_K41Zf8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_K41ZmcOTEeSiR-ar9ioVjA" base_Comment="_K41ZgMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_K41ZmsOTEeSiR-ar9ioVjA" base_Comment="_K41ZgcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_K41Zm8OTEeSiR-ar9ioVjA" base_Comment="_K41ZgsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_K41ZnMOTEeSiR-ar9ioVjA" base_Comment="_K41Zg8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_K41ZncOTEeSiR-ar9ioVjA" base_Comment="_K41ZhMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_K41ZnsOTEeSiR-ar9ioVjA" base_Comment="_K41ZhcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_K41Zn8OTEeSiR-ar9ioVjA" base_Comment="_K41ZhsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_K41ZoMOTEeSiR-ar9ioVjA" base_Comment="_K41Zh8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_K41ZocOTEeSiR-ar9ioVjA" base_Comment="_K41ZiMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_K41ZosOTEeSiR-ar9ioVjA" base_Comment="_K41ZicOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_K41Zo8OTEeSiR-ar9ioVjA" base_Comment="_K41ZisOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_K41ZpMOTEeSiR-ar9ioVjA" base_Comment="_K41Zi8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_K41ZpcOTEeSiR-ar9ioVjA" base_Comment="_K41ZjMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_K41ZpsOTEeSiR-ar9ioVjA" base_Comment="_K41ZjcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_K41Zp8OTEeSiR-ar9ioVjA" base_Comment="_K41ZjsOTEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_Classify.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_Classify.uml
new file mode 100644
index 00000000000..3a3426bcdda
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_Classify.uml
@@ -0,0 +1,773 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_K5ZZwMOTEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_LliHAMOTEeSiR-ar9ioVjA" name="Statements_Classify" classifierBehavior="_LliugcOTEeSiR-ar9ioVjA" isActive="true">
+ <ownedComment xmi:id="_LliugsOTEeSiR-ar9ioVjA" annotatedElement="_LliHAMOTEeSiR-ar9ioVjA">
+ <body>&#xD;
+ * Test classify statements.&#xD;
+ *</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_LliucsOTEeSiR-ar9ioVjA" name="Statements_Classify$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Lliuc8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliudMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliudcOTEeSiR-ar9ioVjA" name="Statements_Classify$initialization$1" visibility="protected" specification="_LliudsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliumcOTEeSiR-ar9ioVjA" annotatedElement="_LliudcOTEeSiR-ar9ioVjA">
+ <body>activity 'Statements_Classify$initialization$1'(){
+ if (this.'Statements_Classify$initializationFlag$1' == null) {
+ this.'Statements_Classify$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Lliud8OTEeSiR-ar9ioVjA" name="Statements_Classify$method$1" specification="_Lliue8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Lliuh8OTEeSiR-ar9ioVjA" annotatedElement="_Lliud8OTEeSiR-ar9ioVjA">
+ <body>activity 'Statements_Classify$method$1'(): Statements_Classify {
+ this.'Statements_Classify$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_LliueMOTEeSiR-ar9ioVjA" type="_LliHAMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliuecOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliuesOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Lliuf8OTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_LliugMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliuisOTEeSiR-ar9ioVjA" annotatedElement="_Lliuf8OTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliugcOTEeSiR-ar9ioVjA" name="Statements_Classify$behavior$1" visibility="private">
+ <ownedComment xmi:id="_LliujsOTEeSiR-ar9ioVjA" annotatedElement="_LliugcOTEeSiR-ar9ioVjA">
+ <body>activity 'Statements_Classify$behavior$1'() {
+ new TestRunner().Start();
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_LliudsOTEeSiR-ar9ioVjA" name="Statements_Classify$initialization$1" visibility="protected" method="_LliudcOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_Lliue8OTEeSiR-ar9ioVjA" name="Statements_Classify" method="_Lliud8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_LliufMOTEeSiR-ar9ioVjA" type="_LliHAMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliufcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliufsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_LliugMOTEeSiR-ar9ioVjA" name="destroy" method="_Lliuf8OTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_LliHAcOTEeSiR-ar9ioVjA" name="Monitor" visibility="package">
+ <ownedAttribute xmi:id="_LliHAsOTEeSiR-ar9ioVjA" name="Monitor$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHA8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHBMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHBcOTEeSiR-ar9ioVjA" name="Monitor$initialization$1" visibility="protected" specification="_LliHC8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Lliuk8OTEeSiR-ar9ioVjA" annotatedElement="_LliHBcOTEeSiR-ar9ioVjA">
+ <body>activity 'Monitor$initialization$1'(){
+ if (this.'Monitor$initializationFlag$1' == null) {
+ this.'Monitor$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHBsOTEeSiR-ar9ioVjA" name="Monitor$method$1" specification="_LliHDMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliuscOTEeSiR-ar9ioVjA" annotatedElement="_LliHBsOTEeSiR-ar9ioVjA">
+ <body>activity 'Monitor$method$1'(): Monitor {
+ this.'Monitor$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_LliHB8OTEeSiR-ar9ioVjA" type="_LliHAcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHCMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHCcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHCsOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_LliHEMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Lliug8OTEeSiR-ar9ioVjA" annotatedElement="_LliHCsOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_LliHC8OTEeSiR-ar9ioVjA" name="Monitor$initialization$1" visibility="protected" method="_LliHBcOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_LliHDMOTEeSiR-ar9ioVjA" name="Monitor" method="_LliHBsOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_LliHDcOTEeSiR-ar9ioVjA" type="_LliHAcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHDsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHD8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_LliHEMOTEeSiR-ar9ioVjA" name="destroy" method="_LliHCsOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_LliHEcOTEeSiR-ar9ioVjA" name="InActiveMonitor" visibility="package">
+ <generalization xmi:id="_LliHEsOTEeSiR-ar9ioVjA" general="_LliHAcOTEeSiR-ar9ioVjA"/>
+ <ownedAttribute xmi:id="_LliHE8OTEeSiR-ar9ioVjA" name="InActiveMonitor$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHFMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHFcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHFsOTEeSiR-ar9ioVjA" name="InActiveMonitor$initialization$1" visibility="protected" specification="_LliHHMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Lliuj8OTEeSiR-ar9ioVjA" annotatedElement="_LliHFsOTEeSiR-ar9ioVjA">
+ <body>activity 'InActiveMonitor$initialization$1'(){
+ if (this.'InActiveMonitor$initializationFlag$1' == null) {
+ super.Monitor::'Monitor$initialization$1'();
+ this.'InActiveMonitor$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHF8OTEeSiR-ar9ioVjA" name="InActiveMonitor$method$1" specification="_LliHHcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliulcOTEeSiR-ar9ioVjA" annotatedElement="_LliHF8OTEeSiR-ar9ioVjA">
+ <body>activity 'InActiveMonitor$method$1'(): InActiveMonitor {
+ this.'InActiveMonitor$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_LliHGMOTEeSiR-ar9ioVjA" type="_LliHEcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHGcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHGsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHG8OTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_LliHIcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliujMOTEeSiR-ar9ioVjA" annotatedElement="_LliHG8OTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_LliHHMOTEeSiR-ar9ioVjA" name="InActiveMonitor$initialization$1" visibility="protected" method="_LliHFsOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_LliHHcOTEeSiR-ar9ioVjA" name="InActiveMonitor" method="_LliHF8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_LliHHsOTEeSiR-ar9ioVjA" type="_LliHEcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHH8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHIMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_LliHIcOTEeSiR-ar9ioVjA" name="destroy" method="_LliHG8OTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_LliHIsOTEeSiR-ar9ioVjA" name="ActiveMonitor" visibility="package" classifierBehavior="_LliHNcOTEeSiR-ar9ioVjA" isActive="true">
+ <generalization xmi:id="_LliHI8OTEeSiR-ar9ioVjA" general="_LliHAcOTEeSiR-ar9ioVjA"/>
+ <ownedAttribute xmi:id="_LliHJMOTEeSiR-ar9ioVjA" name="n" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHJcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHJsOTEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_LliHJ8OTEeSiR-ar9ioVjA" behavior="_LliHK8OTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_LliHKMOTEeSiR-ar9ioVjA" name="ActiveMonitor$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHKcOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHKsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHK8OTEeSiR-ar9ioVjA" name="n$defaultValue$1">
+ <ownedComment xmi:id="_LliursOTEeSiR-ar9ioVjA" annotatedElement="_LliHK8OTEeSiR-ar9ioVjA">
+ <body>activity 'n$defaultValue$1'(): Integer {
+ return 0;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_LliHLMOTEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHLcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHLsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHL8OTEeSiR-ar9ioVjA" name="ActiveMonitor$initialization$1" visibility="protected" specification="_LliHNsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliuhsOTEeSiR-ar9ioVjA" annotatedElement="_LliHL8OTEeSiR-ar9ioVjA">
+ <body>activity 'ActiveMonitor$initialization$1'(){
+ if (this.'ActiveMonitor$initializationFlag$1' == null) {
+ super.Monitor::'Monitor$initialization$1'();
+ this.n = 'n$defaultValue$1'();
+ this.'ActiveMonitor$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHMMOTEeSiR-ar9ioVjA" name="ActiveMonitor$method$1" specification="_LliHN8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Llium8OTEeSiR-ar9ioVjA" annotatedElement="_LliHMMOTEeSiR-ar9ioVjA">
+ <body>activity 'ActiveMonitor$method$1'(): ActiveMonitor {
+ this.'ActiveMonitor$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_LliHMcOTEeSiR-ar9ioVjA" type="_LliHIsOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHMsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHM8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHNMOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_LliHO8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Lliur8OTEeSiR-ar9ioVjA" annotatedElement="_LliHNMOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHNcOTEeSiR-ar9ioVjA" name="ActiveMonitor$behavior$1" visibility="private">
+ <ownedComment xmi:id="_LliupcOTEeSiR-ar9ioVjA" annotatedElement="_LliHNcOTEeSiR-ar9ioVjA">
+ <body>activity 'ActiveMonitor$behavior$1'() {
+ this.n = 1;
+ TestRunner.allInstances ().Continue();
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_LliHNsOTEeSiR-ar9ioVjA" name="ActiveMonitor$initialization$1" visibility="protected" method="_LliHL8OTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_LliHN8OTEeSiR-ar9ioVjA" name="ActiveMonitor" method="_LliHMMOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_LliHOMOTEeSiR-ar9ioVjA" type="_LliHIsOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHOcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHOsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_LliHO8OTEeSiR-ar9ioVjA" name="destroy" method="_LliHNMOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_LliHPMOTEeSiR-ar9ioVjA" name="Employee" visibility="package">
+ <ownedAttribute xmi:id="_LliHPcOTEeSiR-ar9ioVjA" name="Employee$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHPsOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHP8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHQMOTEeSiR-ar9ioVjA" name="Employee$initialization$1" visibility="protected" specification="_LliHRsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliumMOTEeSiR-ar9ioVjA" annotatedElement="_LliHQMOTEeSiR-ar9ioVjA">
+ <body>activity 'Employee$initialization$1'(){
+ if (this.'Employee$initializationFlag$1' == null) {
+ this.'Employee$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHQcOTEeSiR-ar9ioVjA" name="Employee$method$1" specification="_LliHR8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliuhcOTEeSiR-ar9ioVjA" annotatedElement="_LliHQcOTEeSiR-ar9ioVjA">
+ <body>activity 'Employee$method$1'(): Employee {
+ this.'Employee$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_LliHQsOTEeSiR-ar9ioVjA" type="_LliHPMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHQ8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHRMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHRcOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_LliHS8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliujcOTEeSiR-ar9ioVjA" annotatedElement="_LliHRcOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_LliHRsOTEeSiR-ar9ioVjA" name="Employee$initialization$1" visibility="protected" method="_LliHQMOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_LliHR8OTEeSiR-ar9ioVjA" name="Employee" method="_LliHQcOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_LliHSMOTEeSiR-ar9ioVjA" type="_LliHPMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHScOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHSsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_LliHS8OTEeSiR-ar9ioVjA" name="destroy" method="_LliHRcOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_LliHTMOTEeSiR-ar9ioVjA" name="Administrator" visibility="package">
+ <generalization xmi:id="_LliHTcOTEeSiR-ar9ioVjA" general="_LliHPMOTEeSiR-ar9ioVjA"/>
+ <ownedAttribute xmi:id="_LliHTsOTEeSiR-ar9ioVjA" name="Administrator$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHT8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHUMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHUcOTEeSiR-ar9ioVjA" name="Administrator$initialization$1" visibility="protected" specification="_LliHV8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Lliuo8OTEeSiR-ar9ioVjA" annotatedElement="_LliHUcOTEeSiR-ar9ioVjA">
+ <body>activity 'Administrator$initialization$1'(){
+ if (this.'Administrator$initializationFlag$1' == null) {
+ super.Employee::'Employee$initialization$1'();
+ this.'Administrator$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHUsOTEeSiR-ar9ioVjA" name="Administrator$method$1" specification="_LliHWMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliuqsOTEeSiR-ar9ioVjA" annotatedElement="_LliHUsOTEeSiR-ar9ioVjA">
+ <body>activity 'Administrator$method$1'(): Administrator {
+ this.'Administrator$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_LliHU8OTEeSiR-ar9ioVjA" type="_LliHTMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHVMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHVcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHVsOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_LliHXMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliulMOTEeSiR-ar9ioVjA" annotatedElement="_LliHVsOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_LliHV8OTEeSiR-ar9ioVjA" name="Administrator$initialization$1" visibility="protected" method="_LliHUcOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_LliHWMOTEeSiR-ar9ioVjA" name="Administrator" method="_LliHUsOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_LliHWcOTEeSiR-ar9ioVjA" type="_LliHTMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHWsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHW8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_LliHXMOTEeSiR-ar9ioVjA" name="destroy" method="_LliHVsOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_LliHXcOTEeSiR-ar9ioVjA" name="Staff" visibility="package">
+ <generalization xmi:id="_LliHXsOTEeSiR-ar9ioVjA" general="_LliHPMOTEeSiR-ar9ioVjA"/>
+ <ownedAttribute xmi:id="_LliHX8OTEeSiR-ar9ioVjA" name="Staff$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHYMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHYcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHYsOTEeSiR-ar9ioVjA" name="Staff$initialization$1" visibility="protected" specification="_LliHaMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliupsOTEeSiR-ar9ioVjA" annotatedElement="_LliHYsOTEeSiR-ar9ioVjA">
+ <body>activity 'Staff$initialization$1'(){
+ if (this.'Staff$initializationFlag$1' == null) {
+ super.Employee::'Employee$initialization$1'();
+ this.'Staff$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHY8OTEeSiR-ar9ioVjA" name="Staff$method$1" specification="_LliHacOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliunMOTEeSiR-ar9ioVjA" annotatedElement="_LliHY8OTEeSiR-ar9ioVjA">
+ <body>activity 'Staff$method$1'(): Staff {
+ this.'Staff$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_LliHZMOTEeSiR-ar9ioVjA" type="_LliHXcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHZcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHZsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHZ8OTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_LliHbcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliumsOTEeSiR-ar9ioVjA" annotatedElement="_LliHZ8OTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_LliHaMOTEeSiR-ar9ioVjA" name="Staff$initialization$1" visibility="protected" method="_LliHYsOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_LliHacOTEeSiR-ar9ioVjA" name="Staff" method="_LliHY8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_LliHasOTEeSiR-ar9ioVjA" type="_LliHXcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHa8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHbMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_LliHbcOTEeSiR-ar9ioVjA" name="destroy" method="_LliHZ8OTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_LliHbsOTEeSiR-ar9ioVjA" name="PartTime" visibility="package">
+ <generalization xmi:id="_LliHb8OTEeSiR-ar9ioVjA" general="_LliHPMOTEeSiR-ar9ioVjA"/>
+ <ownedAttribute xmi:id="_LliHcMOTEeSiR-ar9ioVjA" name="PartTime$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHccOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHcsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHc8OTEeSiR-ar9ioVjA" name="PartTime$initialization$1" visibility="protected" specification="_LliHecOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Lliui8OTEeSiR-ar9ioVjA" annotatedElement="_LliHc8OTEeSiR-ar9ioVjA">
+ <body>activity 'PartTime$initialization$1'(){
+ if (this.'PartTime$initializationFlag$1' == null) {
+ super.Employee::'Employee$initialization$1'();
+ this.'PartTime$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHdMOTEeSiR-ar9ioVjA" name="PartTime$method$1" specification="_LliHesOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliupMOTEeSiR-ar9ioVjA" annotatedElement="_LliHdMOTEeSiR-ar9ioVjA">
+ <body>activity 'PartTime$method$1'(): PartTime {
+ this.'PartTime$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_LliHdcOTEeSiR-ar9ioVjA" type="_LliHbsOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHdsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHd8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHeMOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_LliHfsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliuksOTEeSiR-ar9ioVjA" annotatedElement="_LliHeMOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_LliHecOTEeSiR-ar9ioVjA" name="PartTime$initialization$1" visibility="protected" method="_LliHc8OTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_LliHesOTEeSiR-ar9ioVjA" name="PartTime" method="_LliHdMOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_LliHe8OTEeSiR-ar9ioVjA" type="_LliHbsOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHfMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHfcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_LliHfsOTEeSiR-ar9ioVjA" name="destroy" method="_LliHeMOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_LliHf8OTEeSiR-ar9ioVjA" name="Issue" visibility="package">
+ <ownedAttribute xmi:id="_LliHgMOTEeSiR-ar9ioVjA" name="Issue$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHgcOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHgsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHg8OTEeSiR-ar9ioVjA" name="Issue$initialization$1" visibility="protected" specification="_LliHicOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliukMOTEeSiR-ar9ioVjA" annotatedElement="_LliHg8OTEeSiR-ar9ioVjA">
+ <body>activity 'Issue$initialization$1'(){
+ if (this.'Issue$initializationFlag$1' == null) {
+ this.'Issue$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHhMOTEeSiR-ar9ioVjA" name="Issue$method$1" specification="_LliHisOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliulsOTEeSiR-ar9ioVjA" annotatedElement="_LliHhMOTEeSiR-ar9ioVjA">
+ <body>activity 'Issue$method$1'(): Issue {
+ this.'Issue$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_LliHhcOTEeSiR-ar9ioVjA" type="_LliHf8OTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHhsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHh8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHiMOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_LliHjsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliuiMOTEeSiR-ar9ioVjA" annotatedElement="_LliHiMOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_LliHicOTEeSiR-ar9ioVjA" name="Issue$initialization$1" visibility="protected" method="_LliHg8OTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_LliHisOTEeSiR-ar9ioVjA" name="Issue" method="_LliHhMOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_LliHi8OTEeSiR-ar9ioVjA" type="_LliHf8OTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHjMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHjcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_LliHjsOTEeSiR-ar9ioVjA" name="destroy" method="_LliHiMOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_LliHj8OTEeSiR-ar9ioVjA" name="Pending" visibility="package">
+ <generalization xmi:id="_LliHkMOTEeSiR-ar9ioVjA" general="_LliHf8OTEeSiR-ar9ioVjA"/>
+ <ownedAttribute xmi:id="_LliHkcOTEeSiR-ar9ioVjA" name="Pending$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHksOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHk8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHlMOTEeSiR-ar9ioVjA" name="Pending$initialization$1" visibility="protected" specification="_LliuEMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliusMOTEeSiR-ar9ioVjA" annotatedElement="_LliHlMOTEeSiR-ar9ioVjA">
+ <body>activity 'Pending$initialization$1'(){
+ if (this.'Pending$initializationFlag$1' == null) {
+ super.Issue::'Issue$initialization$1'();
+ this.'Pending$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHlcOTEeSiR-ar9ioVjA" name="Pending$method$1" specification="_LliuEcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliukcOTEeSiR-ar9ioVjA" annotatedElement="_LliHlcOTEeSiR-ar9ioVjA">
+ <body>activity 'Pending$method$1'(): Pending {
+ this.'Pending$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_LliHlsOTEeSiR-ar9ioVjA" type="_LliHj8OTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliHl8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliHmMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliHmcOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_LliuFcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliuosOTEeSiR-ar9ioVjA" annotatedElement="_LliHmcOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_LliuEMOTEeSiR-ar9ioVjA" name="Pending$initialization$1" visibility="protected" method="_LliHlMOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_LliuEcOTEeSiR-ar9ioVjA" name="Pending" method="_LliHlcOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_LliuEsOTEeSiR-ar9ioVjA" type="_LliHj8OTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliuE8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliuFMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_LliuFcOTEeSiR-ar9ioVjA" name="destroy" method="_LliHmcOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_LliuFsOTEeSiR-ar9ioVjA" name="InProcess" visibility="package">
+ <generalization xmi:id="_LliuF8OTEeSiR-ar9ioVjA" general="_LliHf8OTEeSiR-ar9ioVjA"/>
+ <ownedAttribute xmi:id="_LliuGMOTEeSiR-ar9ioVjA" name="InProcess$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliuGcOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliuGsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliuG8OTEeSiR-ar9ioVjA" name="InProcess$initialization$1" visibility="protected" specification="_LliuIcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliuoMOTEeSiR-ar9ioVjA" annotatedElement="_LliuG8OTEeSiR-ar9ioVjA">
+ <body>activity 'InProcess$initialization$1'(){
+ if (this.'InProcess$initializationFlag$1' == null) {
+ super.Issue::'Issue$initialization$1'();
+ this.'InProcess$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliuHMOTEeSiR-ar9ioVjA" name="InProcess$method$1" specification="_LliuIsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliurcOTEeSiR-ar9ioVjA" annotatedElement="_LliuHMOTEeSiR-ar9ioVjA">
+ <body>activity 'InProcess$method$1'(): InProcess {
+ this.'InProcess$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_LliuHcOTEeSiR-ar9ioVjA" type="_LliuFsOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliuHsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliuH8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliuIMOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_LliuJsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliuqMOTEeSiR-ar9ioVjA" annotatedElement="_LliuIMOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_LliuIcOTEeSiR-ar9ioVjA" name="InProcess$initialization$1" visibility="protected" method="_LliuG8OTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_LliuIsOTEeSiR-ar9ioVjA" name="InProcess" method="_LliuHMOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_LliuI8OTEeSiR-ar9ioVjA" type="_LliuFsOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliuJMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliuJcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_LliuJsOTEeSiR-ar9ioVjA" name="destroy" method="_LliuIMOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_LliuJ8OTEeSiR-ar9ioVjA" name="Overdue" visibility="package">
+ <generalization xmi:id="_LliuKMOTEeSiR-ar9ioVjA" general="_LliHf8OTEeSiR-ar9ioVjA"/>
+ <ownedAttribute xmi:id="_LliuKcOTEeSiR-ar9ioVjA" name="Overdue$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliuKsOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliuK8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliuLMOTEeSiR-ar9ioVjA" name="Overdue$initialization$1" visibility="protected" specification="_LliuMsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliurMOTEeSiR-ar9ioVjA" annotatedElement="_LliuLMOTEeSiR-ar9ioVjA">
+ <body>activity 'Overdue$initialization$1'(){
+ if (this.'Overdue$initializationFlag$1' == null) {
+ super.Issue::'Issue$initialization$1'();
+ this.'Overdue$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliuLcOTEeSiR-ar9ioVjA" name="Overdue$method$1" specification="_LliuM8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Lliuq8OTEeSiR-ar9ioVjA" annotatedElement="_LliuLcOTEeSiR-ar9ioVjA">
+ <body>activity 'Overdue$method$1'(): Overdue {
+ this.'Overdue$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_LliuLsOTEeSiR-ar9ioVjA" type="_LliuJ8OTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliuL8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliuMMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliuMcOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_LliuN8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Lliul8OTEeSiR-ar9ioVjA" annotatedElement="_LliuMcOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_LliuMsOTEeSiR-ar9ioVjA" name="Overdue$initialization$1" visibility="protected" method="_LliuLMOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_LliuM8OTEeSiR-ar9ioVjA" name="Overdue" method="_LliuLcOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_LliuNMOTEeSiR-ar9ioVjA" type="_LliuJ8OTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliuNcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliuNsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_LliuN8OTEeSiR-ar9ioVjA" name="destroy" method="_LliuMcOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_LliuOMOTEeSiR-ar9ioVjA" name="Resolved" visibility="package">
+ <generalization xmi:id="_LliuOcOTEeSiR-ar9ioVjA" general="_LliHf8OTEeSiR-ar9ioVjA"/>
+ <ownedAttribute xmi:id="_LliuOsOTEeSiR-ar9ioVjA" name="Resolved$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliuO8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliuPMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliuPcOTEeSiR-ar9ioVjA" name="Resolved$initialization$1" visibility="protected" specification="_LliuQ8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliuncOTEeSiR-ar9ioVjA" annotatedElement="_LliuPcOTEeSiR-ar9ioVjA">
+ <body>activity 'Resolved$initialization$1'(){
+ if (this.'Resolved$initializationFlag$1' == null) {
+ super.Issue::'Issue$initialization$1'();
+ this.'Resolved$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliuPsOTEeSiR-ar9ioVjA" name="Resolved$method$1" specification="_LliuRMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Lliun8OTEeSiR-ar9ioVjA" annotatedElement="_LliuPsOTEeSiR-ar9ioVjA">
+ <body>activity 'Resolved$method$1'(): Resolved {
+ this.'Resolved$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_LliuP8OTEeSiR-ar9ioVjA" type="_LliuOMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliuQMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliuQcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliuQsOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_LliuSMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliunsOTEeSiR-ar9ioVjA" annotatedElement="_LliuQsOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_LliuQ8OTEeSiR-ar9ioVjA" name="Resolved$initialization$1" visibility="protected" method="_LliuPcOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_LliuRMOTEeSiR-ar9ioVjA" name="Resolved" method="_LliuPsOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_LliuRcOTEeSiR-ar9ioVjA" type="_LliuOMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliuRsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliuR8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_LliuSMOTEeSiR-ar9ioVjA" name="destroy" method="_LliuQsOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_LliuScOTEeSiR-ar9ioVjA" name="TestRunner" visibility="package" classifierBehavior="_LliuccOTEeSiR-ar9ioVjA" isActive="true">
+ <ownedAttribute xmi:id="_LliuSsOTEeSiR-ar9ioVjA" name="TestRunner$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliuS8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliuTMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliuTcOTEeSiR-ar9ioVjA" name="test$method$1" visibility="protected" specification="_LliuV8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliuocOTEeSiR-ar9ioVjA" annotatedElement="_LliuTcOTEeSiR-ar9ioVjA">
+ <body>activity 'test$method$1'(out employee: Employee, out monitor: Monitor, out issue: Issue) {
+ employee = new Staff();
+ monitor = new InActiveMonitor();
+ issue = new Pending();
+ classify employee from * to Administrator;
+ classify employee to PartTime;
+ classify employee from Administrator;
+ classify monitor from InActiveMonitor to ActiveMonitor;
+ classify issue from Pending, Overdue to Resolved, InProcess;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_LliuTsOTEeSiR-ar9ioVjA" name="employee" type="_LliHPMOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliuT8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliuUMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_LliuUcOTEeSiR-ar9ioVjA" name="monitor" type="_LliHAcOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliuUsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliuU8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_LliuVMOTEeSiR-ar9ioVjA" name="issue" type="_LliHf8OTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliuVcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliuVsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliuY8OTEeSiR-ar9ioVjA" name="TestRunner$initialization$1" visibility="protected" specification="_LliuZMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliuicOTEeSiR-ar9ioVjA" annotatedElement="_LliuY8OTEeSiR-ar9ioVjA">
+ <body>activity 'TestRunner$initialization$1'(){
+ if (this.'TestRunner$initializationFlag$1' == null) {
+ this.'TestRunner$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliuZcOTEeSiR-ar9ioVjA" name="TestRunner$method$1" specification="_LliuacOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_LliuqcOTEeSiR-ar9ioVjA" annotatedElement="_LliuZcOTEeSiR-ar9ioVjA">
+ <body>activity 'TestRunner$method$1'(): TestRunner {
+ this.'TestRunner$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_LliuZsOTEeSiR-ar9ioVjA" type="_LliuScOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliuZ8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliuaMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliubcOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_LliubsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_Lliup8OTEeSiR-ar9ioVjA" annotatedElement="_LliubcOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_LliuccOTEeSiR-ar9ioVjA" name="TestRunner$behavior$1" visibility="private">
+ <ownedComment xmi:id="_LliuhMOTEeSiR-ar9ioVjA" annotatedElement="_LliuccOTEeSiR-ar9ioVjA">
+ <body>activity 'TestRunner$behavior$1'() {
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_LliuV8OTEeSiR-ar9ioVjA" name="test" visibility="public" method="_LliuTcOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_LliuWMOTEeSiR-ar9ioVjA" name="employee" type="_LliHPMOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliuWcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliuWsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_LliuW8OTEeSiR-ar9ioVjA" name="monitor" type="_LliHAcOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliuXMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliuXcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_LliuXsOTEeSiR-ar9ioVjA" name="issue" type="_LliHf8OTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LliuX8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliuYMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_LliuZMOTEeSiR-ar9ioVjA" name="TestRunner$initialization$1" visibility="protected" method="_LliuY8OTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_LliuacOTEeSiR-ar9ioVjA" name="TestRunner" method="_LliuZcOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_LliuasOTEeSiR-ar9ioVjA" type="_LliuScOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Lliua8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LliubMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_LliubsOTEeSiR-ar9ioVjA" name="destroy" method="_LliubcOTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Signal" xmi:id="_LliuYcOTEeSiR-ar9ioVjA" name="Start" visibility="public"/>
+ <nestedClassifier xmi:type="uml:Signal" xmi:id="_LliuYsOTEeSiR-ar9ioVjA" name="Continue" visibility="public"/>
+ <ownedReception xmi:id="_Lliub8OTEeSiR-ar9ioVjA" name="Start" visibility="public" signal="_LliuYcOTEeSiR-ar9ioVjA"/>
+ <ownedReception xmi:id="_LliucMOTEeSiR-ar9ioVjA" name="Continue" visibility="public" signal="_LliuYsOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:id="_K5ZZwcOTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_K5ZZwsOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_K5ZZw8OTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_K5ZZxMOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Destroy xmi:id="_LljVIMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliHjsOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_LljVIcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliuM8OTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_LljVIsOTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliHN8OTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_LljVI8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliHbcOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_LljVJMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliuEcOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_LljVJcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliHesOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_LljVJsOTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliHacOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_LljVJ8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliHDMOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_LljVKMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliuIsOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_LljVKcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliuacOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_LljVKsOTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliHO8OTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_LljVK8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliugMOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_LljVLMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliHS8OTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_LljVLcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliHIcOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_LljVLsOTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliuN8OTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_LljVL8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliuJsOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_LljVMMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliHXMOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_LljVMcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliHisOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_LljVMsOTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliHR8OTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_LljVM8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliubsOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_LljVNMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliuRMOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_LljVNcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliHEMOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_LljVNsOTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliHWMOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_LljVN8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliuSMOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_LljVOMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliHHcOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_LljVOcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_Lliue8OTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_LljVOsOTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliuFcOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_LljVO8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_LliHfsOTEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVPMOTEeSiR-ar9ioVjA" base_Comment="_Lliug8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVPcOTEeSiR-ar9ioVjA" base_Comment="_LliuhMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVPsOTEeSiR-ar9ioVjA" base_Comment="_LliuhcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVP8OTEeSiR-ar9ioVjA" base_Comment="_LliuhsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVQMOTEeSiR-ar9ioVjA" base_Comment="_Lliuh8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVQcOTEeSiR-ar9ioVjA" base_Comment="_LliuiMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVQsOTEeSiR-ar9ioVjA" base_Comment="_LliuicOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVQ8OTEeSiR-ar9ioVjA" base_Comment="_LliuisOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVRMOTEeSiR-ar9ioVjA" base_Comment="_Lliui8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVRcOTEeSiR-ar9ioVjA" base_Comment="_LliujMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVRsOTEeSiR-ar9ioVjA" base_Comment="_LliujcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVR8OTEeSiR-ar9ioVjA" base_Comment="_LliujsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVSMOTEeSiR-ar9ioVjA" base_Comment="_Lliuj8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVScOTEeSiR-ar9ioVjA" base_Comment="_LliukMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVSsOTEeSiR-ar9ioVjA" base_Comment="_LliukcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVS8OTEeSiR-ar9ioVjA" base_Comment="_LliuksOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVTMOTEeSiR-ar9ioVjA" base_Comment="_Lliuk8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVTcOTEeSiR-ar9ioVjA" base_Comment="_LliulMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVTsOTEeSiR-ar9ioVjA" base_Comment="_LliulcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVT8OTEeSiR-ar9ioVjA" base_Comment="_LliulsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVUMOTEeSiR-ar9ioVjA" base_Comment="_Lliul8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVUcOTEeSiR-ar9ioVjA" base_Comment="_LliumMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVUsOTEeSiR-ar9ioVjA" base_Comment="_LliumcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVU8OTEeSiR-ar9ioVjA" base_Comment="_LliumsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVVMOTEeSiR-ar9ioVjA" base_Comment="_Llium8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVVcOTEeSiR-ar9ioVjA" base_Comment="_LliunMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVVsOTEeSiR-ar9ioVjA" base_Comment="_LliuncOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVV8OTEeSiR-ar9ioVjA" base_Comment="_LliunsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVWMOTEeSiR-ar9ioVjA" base_Comment="_Lliun8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVWcOTEeSiR-ar9ioVjA" base_Comment="_LliuoMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVWsOTEeSiR-ar9ioVjA" base_Comment="_LliuocOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVW8OTEeSiR-ar9ioVjA" base_Comment="_LliuosOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVXMOTEeSiR-ar9ioVjA" base_Comment="_Lliuo8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVXcOTEeSiR-ar9ioVjA" base_Comment="_LliupMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVXsOTEeSiR-ar9ioVjA" base_Comment="_LliupcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVX8OTEeSiR-ar9ioVjA" base_Comment="_LliupsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVYMOTEeSiR-ar9ioVjA" base_Comment="_Lliup8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVYcOTEeSiR-ar9ioVjA" base_Comment="_LliuqMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVYsOTEeSiR-ar9ioVjA" base_Comment="_LliuqcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVY8OTEeSiR-ar9ioVjA" base_Comment="_LliuqsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVZMOTEeSiR-ar9ioVjA" base_Comment="_Lliuq8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVZcOTEeSiR-ar9ioVjA" base_Comment="_LliurMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVZsOTEeSiR-ar9ioVjA" base_Comment="_LliurcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVZ8OTEeSiR-ar9ioVjA" base_Comment="_LliursOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVaMOTEeSiR-ar9ioVjA" base_Comment="_Lliur8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVacOTEeSiR-ar9ioVjA" base_Comment="_LliusMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_LljVasOTEeSiR-ar9ioVjA" base_Comment="_LliuscOTEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_Conditional.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_Conditional.uml
new file mode 100644
index 00000000000..b58d1883acf
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_Conditional.uml
@@ -0,0 +1,273 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_LmdUEMOTEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_MKpmQMOTEeSiR-ar9ioVjA" name="Statements_Conditional" classifierBehavior="_MKqNisOTEeSiR-ar9ioVjA" isActive="true">
+ <ownedComment xmi:id="_MKqNi8OTEeSiR-ar9ioVjA" annotatedElement="_MKpmQMOTEeSiR-ar9ioVjA">
+ <body>&#xD;
+ * Test if and switch statements.&#xD;
+ *</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_MKqNe8OTEeSiR-ar9ioVjA" name="Statements_Conditional$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MKqNfMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MKqNfcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_MKqNaMOTEeSiR-ar9ioVjA" name="test$method$1" visibility="protected" specification="_MKqNVcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_MKqNlMOTEeSiR-ar9ioVjA" annotatedElement="_MKqNaMOTEeSiR-ar9ioVjA">
+ <body>activity 'test$method$1'(out condition1: Condition, out condition2: Condition, out condition3: Condition, out year: Integer, out month: Integer, out numDays: Integer) {
+ reading = 150;
+ threshold = 10;
+ safeLimit = 100;
+ criticalLimit = 200;
+ errorLimit = 1000;
+ sensorId = 1;
+ monitor = new Monitor();
+ year = 2012;
+ if (reading > threshold) {
+ monitor.raiseAlarm(sensorId);
+ }
+ //@determinate @assured&#xD;
+ if (reading &lt;= safeLimit) {
+ condition1 = Condition::normal;
+ }
+ or if (reading > safeLimit &amp;&amp; reading &lt;= criticalLimit) {
+ condition1 = Condition::alert;
+ }
+ or if (reading > criticalLimit) {
+ condition1 = Condition::critical;
+ }
+ reading = 500;
+ if (reading &lt;= safeLimit) {
+ condition2 = Condition::normal;
+ }
+ else if (reading &lt;= criticalLimit) {
+ condition2 = Condition::alert;
+ }
+ else {
+ condition2 = Condition::critical;
+ }
+ if (reading &lt;= safeLimit) {
+ condition3 = Condition::normal;
+ }
+ else if (reading > safeLimit &amp;&amp; reading &lt;= criticalLimit) {
+ condition3 = Condition::alert;
+ }
+ or if (reading > criticalLimit &amp;&amp; reading &lt; errorLimit) {
+ condition3 = Condition::critical;
+ }
+ else {
+ condition3 = Condition::error;
+ }
+ switch (year) { case 2012: month = 2;
+ default: month = 3;
+ } switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case
+ 12: numDays = 31;
+ case 4: case 6: case 9: case 11: numDays = 30;
+ case 2: if (year % 4 == 0 &amp;&amp; ! (year % 100 == 0) || year % 400 == 0) {
+ numDays = 29;
+ }
+ else {
+ numDays = 28;
+ }
+ default: WriteLine(&quot;Invalid month.&quot;);
+ numDays = 0;
+ } }</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_MKqNacOTEeSiR-ar9ioVjA" name="condition1" type="_MKqNUMOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MKqNasOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MKqNa8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_MKqNbMOTEeSiR-ar9ioVjA" name="condition2" type="_MKqNUMOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MKqNbcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MKqNbsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_MKqNb8OTEeSiR-ar9ioVjA" name="condition3" type="_MKqNUMOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MKqNcMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MKqNccOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_MKqNcsOTEeSiR-ar9ioVjA" name="year" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MKqNc8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MKqNdMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_MKqNdcOTEeSiR-ar9ioVjA" name="month" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MKqNdsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MKqNd8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_MKqNeMOTEeSiR-ar9ioVjA" name="numDays" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MKqNecOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MKqNesOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_MKqNfsOTEeSiR-ar9ioVjA" name="Statements_Conditional$initialization$1" visibility="protected" specification="_MKqNf8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_MKqNjMOTEeSiR-ar9ioVjA" annotatedElement="_MKqNfsOTEeSiR-ar9ioVjA">
+ <body>activity 'Statements_Conditional$initialization$1'(){
+ if (this.'Statements_Conditional$initializationFlag$1' == null) {
+ this.'Statements_Conditional$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_MKqNgMOTEeSiR-ar9ioVjA" name="Statements_Conditional$method$1" specification="_MKqNhMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_MKqNjsOTEeSiR-ar9ioVjA" annotatedElement="_MKqNgMOTEeSiR-ar9ioVjA">
+ <body>activity 'Statements_Conditional$method$1'(): Statements_Conditional {
+ this.'Statements_Conditional$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_MKqNgcOTEeSiR-ar9ioVjA" type="_MKpmQMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MKqNgsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MKqNg8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_MKqNiMOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_MKqNicOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_MKqNkcOTEeSiR-ar9ioVjA" annotatedElement="_MKqNiMOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_MKqNisOTEeSiR-ar9ioVjA" name="Statements_Conditional$behavior$1" visibility="private">
+ <ownedComment xmi:id="_MKqNjcOTEeSiR-ar9ioVjA" annotatedElement="_MKqNisOTEeSiR-ar9ioVjA">
+ <body>activity 'Statements_Conditional$behavior$1'() {
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_MKqNVcOTEeSiR-ar9ioVjA" name="test" visibility="package" method="_MKqNaMOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_MKqNVsOTEeSiR-ar9ioVjA" name="condition1" type="_MKqNUMOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MKqNV8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MKqNWMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_MKqNWcOTEeSiR-ar9ioVjA" name="condition2" type="_MKqNUMOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MKqNWsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MKqNW8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_MKqNXMOTEeSiR-ar9ioVjA" name="condition3" type="_MKqNUMOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MKqNXcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MKqNXsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_MKqNX8OTEeSiR-ar9ioVjA" name="year" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MKqNYMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MKqNYcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_MKqNYsOTEeSiR-ar9ioVjA" name="month" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MKqNY8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MKqNZMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_MKqNZcOTEeSiR-ar9ioVjA" name="numDays" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MKqNZsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MKqNZ8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_MKqNf8OTEeSiR-ar9ioVjA" name="Statements_Conditional$initialization$1" visibility="protected" method="_MKqNfsOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_MKqNhMOTEeSiR-ar9ioVjA" name="Statements_Conditional" method="_MKqNgMOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_MKqNhcOTEeSiR-ar9ioVjA" type="_MKpmQMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MKqNhsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MKqNh8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_MKqNicOTEeSiR-ar9ioVjA" name="destroy" method="_MKqNiMOTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_MKpmQcOTEeSiR-ar9ioVjA" name="Monitor" visibility="package">
+ <ownedAttribute xmi:id="_MKpmTMOTEeSiR-ar9ioVjA" name="Monitor$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MKpmTcOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MKpmTsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_MKpmRsOTEeSiR-ar9ioVjA" name="raiseAlarm$method$1" visibility="protected" specification="_MKpmQsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_MKqNk8OTEeSiR-ar9ioVjA" annotatedElement="_MKpmRsOTEeSiR-ar9ioVjA">
+ <body>activity 'raiseAlarm$method$1'(in sensorId: Integer) {
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_MKpmR8OTEeSiR-ar9ioVjA" name="sensorId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MKpmSMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MKpmScOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_MKpmS8OTEeSiR-ar9ioVjA" name="cleanUp$method$1" visibility="protected" specification="_MKpmSsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_MKqNksOTEeSiR-ar9ioVjA" annotatedElement="_MKpmS8OTEeSiR-ar9ioVjA">
+ <body>activity 'cleanUp$method$1'() {
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_MKpmT8OTEeSiR-ar9ioVjA" name="Monitor$initialization$1" visibility="protected" specification="_MKpmUMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_MKqNj8OTEeSiR-ar9ioVjA" annotatedElement="_MKpmT8OTEeSiR-ar9ioVjA">
+ <body>activity 'Monitor$initialization$1'(){
+ if (this.'Monitor$initializationFlag$1' == null) {
+ this.'Monitor$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_MKpmUcOTEeSiR-ar9ioVjA" name="Monitor$method$1" specification="_MKpmVcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_MKqNkMOTEeSiR-ar9ioVjA" annotatedElement="_MKpmUcOTEeSiR-ar9ioVjA">
+ <body>activity 'Monitor$method$1'(): Monitor {
+ this.'Monitor$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_MKpmUsOTEeSiR-ar9ioVjA" type="_MKpmQcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MKpmU8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MKpmVMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_MKpmWcOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_MKpmWsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_MKqNlcOTEeSiR-ar9ioVjA" annotatedElement="_MKpmWcOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_MKpmQsOTEeSiR-ar9ioVjA" name="raiseAlarm" visibility="public" method="_MKpmRsOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_MKpmQ8OTEeSiR-ar9ioVjA" name="sensorId">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MKpmRMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MKpmRcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_MKpmSsOTEeSiR-ar9ioVjA" name="cleanUp" visibility="public" method="_MKpmS8OTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_MKpmUMOTEeSiR-ar9ioVjA" name="Monitor$initialization$1" visibility="protected" method="_MKpmT8OTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_MKpmVcOTEeSiR-ar9ioVjA" name="Monitor" method="_MKpmUcOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_MKpmVsOTEeSiR-ar9ioVjA" type="_MKpmQcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MKpmV8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MKpmWMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_MKpmWsOTEeSiR-ar9ioVjA" name="destroy" method="_MKpmWcOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Enumeration" xmi:id="_MKqNUMOTEeSiR-ar9ioVjA" name="Condition" visibility="package">
+ <ownedLiteral xmi:id="_MKqNUcOTEeSiR-ar9ioVjA" name="normal" visibility="package"/>
+ <ownedLiteral xmi:id="_MKqNUsOTEeSiR-ar9ioVjA" name="alert" visibility="package"/>
+ <ownedLiteral xmi:id="_MKqNU8OTEeSiR-ar9ioVjA" name="critical" visibility="package"/>
+ <ownedLiteral xmi:id="_MKqNVMOTEeSiR-ar9ioVjA" name="error" visibility="package"/>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:id="_LmdUEcOTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_LmdUEsOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_LmdUE8OTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_LmdUFMOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Destroy xmi:id="_MKqNlsOTEeSiR-ar9ioVjA" base_BehavioralFeature="_MKqNicOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_MKqNl8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_MKpmVcOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_MKqNmMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_MKqNhMOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_MKqNmcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_MKpmWsOTEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_MKqNmsOTEeSiR-ar9ioVjA" base_Comment="_MKqNjMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_MKqNm8OTEeSiR-ar9ioVjA" base_Comment="_MKqNjcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_MKqNnMOTEeSiR-ar9ioVjA" base_Comment="_MKqNjsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_MKqNncOTEeSiR-ar9ioVjA" base_Comment="_MKqNj8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_MKqNnsOTEeSiR-ar9ioVjA" base_Comment="_MKqNkMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_MKqNn8OTEeSiR-ar9ioVjA" base_Comment="_MKqNkcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_MKqNoMOTEeSiR-ar9ioVjA" base_Comment="_MKqNksOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_MKqNocOTEeSiR-ar9ioVjA" base_Comment="_MKqNk8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_MKqNosOTEeSiR-ar9ioVjA" base_Comment="_MKqNlMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_MKqNo8OTEeSiR-ar9ioVjA" base_Comment="_MKqNlcOTEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_For_Looping.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_For_Looping.uml
new file mode 100644
index 00000000000..02317a4c860
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_For_Looping.uml
@@ -0,0 +1,345 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_MLLKsMOTEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_M8w_sMOTEeSiR-ar9ioVjA" name="Statements_For_Looping" classifierBehavior="_M8xnD8OTEeSiR-ar9ioVjA" isActive="true">
+ <ownedComment xmi:id="_M8xnEMOTEeSiR-ar9ioVjA" annotatedElement="_M8w_sMOTEeSiR-ar9ioVjA">
+ <body>&#xD;
+ * Test for statements.&#xD;
+ *</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_M8xnAMOTEeSiR-ar9ioVjA" name="Statements_For_Looping$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8xnAcOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8xnAsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_M8xm8MOTEeSiR-ar9ioVjA" name="test$method$1" visibility="protected" specification="_M8xm4MOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_M8xnFsOTEeSiR-ar9ioVjA" annotatedElement="_M8xm8MOTEeSiR-ar9ioVjA">
+ <body>activity 'test$method$1'(out readings: Integer[0..*], out sum1: Integer, out outgoingEdges: ActivityEdgeInstance[0..*], out SnEven: Integer[0..*], out SnOdd: Integer[0..*]) {
+ noiseLimit = 0;
+ sensors = new Sensor [] { new Sensor(1), new Sensor(2), new Sensor(null), new
+ Sensor(3) };
+ reading = + 0;
+ readings = null;
+ recordCount = 10;
+ let sum: Integer = 0;
+ outgoingEdges = new ActivityEdgeInstance [] { new ActivityEdgeInstance(), new
+ ActivityEdgeInstance() };
+ tokens = new Integer [] { 1, 2, 3 };
+ SLower = new Integer [] { 4, 5, 6 };
+ SUpper = new Integer [] { 1, 2, 3 };
+ SnEven = null;
+ SnOdd = null;
+ V = new Integer [] { 10, 20, 30 };
+ for (s in sensors) {
+ reading = s.getNextReading();
+ if (reading->isEmpty()) {
+ break;
+ }
+ if (reading > noiseLimit) {
+ readings->add(reading);
+ }
+ }
+ for (j in 1..recordCount) {
+ sum = sum + j;
+ }
+ sum1 = sum;
+ for (ActivityEdgeInstance outgoingEdge: outgoingEdges, Integer token: tokens)
+ {
+ outgoingEdge.sendOffer(token);
+ }
+ //@parallel &#xD;
+ for (outgoingEdge in outgoingEdges, token in tokens) {
+ outgoingEdge.sendOffer(outgoingEdge.token + token);
+ }
+ //@parallel(SnEven,SnOdd)&#xD;
+ for (lower in SLower, upper in SUpper, root in V) {
+ //@parallel &#xD;
+ {
+ add(SnEven, lower + upper);
+ SnOdd->add(lower - upper * root);
+ }
+ }
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_M8xm8cOTEeSiR-ar9ioVjA" name="readings" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8xm8sOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8xm88OTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_M8xm9MOTEeSiR-ar9ioVjA" name="sum1" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8xm9cOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8xm9sOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_M8xm98OTEeSiR-ar9ioVjA" name="outgoingEdges" type="_M8xmwcOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8xm-MOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8xm-cOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_M8xm-sOTEeSiR-ar9ioVjA" name="SnEven" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8xm-8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8xm_MOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_M8xm_cOTEeSiR-ar9ioVjA" name="SnOdd" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8xm_sOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8xm_8OTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_M8xnA8OTEeSiR-ar9ioVjA" name="Statements_For_Looping$initialization$1" visibility="protected" specification="_M8xnBMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_M8xnHsOTEeSiR-ar9ioVjA" annotatedElement="_M8xnA8OTEeSiR-ar9ioVjA">
+ <body>activity 'Statements_For_Looping$initialization$1'(){
+ if (this.'Statements_For_Looping$initializationFlag$1' == null) {
+ this.'Statements_For_Looping$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_M8xnBcOTEeSiR-ar9ioVjA" name="Statements_For_Looping$method$1" specification="_M8xnCcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_M8xnEsOTEeSiR-ar9ioVjA" annotatedElement="_M8xnBcOTEeSiR-ar9ioVjA">
+ <body>activity 'Statements_For_Looping$method$1'(): Statements_For_Looping {
+ this.'Statements_For_Looping$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_M8xnBsOTEeSiR-ar9ioVjA" type="_M8w_sMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8xnB8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8xnCMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_M8xnDcOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_M8xnDsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_M8xnFcOTEeSiR-ar9ioVjA" annotatedElement="_M8xnDcOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_M8xnD8OTEeSiR-ar9ioVjA" name="Statements_For_Looping$behavior$1" visibility="private">
+ <ownedComment xmi:id="_M8xnHcOTEeSiR-ar9ioVjA" annotatedElement="_M8xnD8OTEeSiR-ar9ioVjA">
+ <body>activity 'Statements_For_Looping$behavior$1'() {
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_M8xm4MOTEeSiR-ar9ioVjA" name="test" visibility="public" method="_M8xm8MOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_M8xm4cOTEeSiR-ar9ioVjA" name="readings" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8xm4sOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8xm48OTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_M8xm5MOTEeSiR-ar9ioVjA" name="sum1" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8xm5cOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8xm5sOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_M8xm58OTEeSiR-ar9ioVjA" name="outgoingEdges" type="_M8xmwcOTEeSiR-ar9ioVjA" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8xm6MOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8xm6cOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_M8xm6sOTEeSiR-ar9ioVjA" name="SnEven" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8xm68OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8xm7MOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_M8xm7cOTEeSiR-ar9ioVjA" name="SnOdd" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8xm7sOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8xm78OTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_M8xnBMOTEeSiR-ar9ioVjA" name="Statements_For_Looping$initialization$1" visibility="protected" method="_M8xnA8OTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_M8xnCcOTEeSiR-ar9ioVjA" name="Statements_For_Looping" method="_M8xnBcOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_M8xnCsOTEeSiR-ar9ioVjA" type="_M8w_sMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8xnC8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8xnDMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_M8xnDsOTEeSiR-ar9ioVjA" name="destroy" method="_M8xnDcOTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_M8w_scOTEeSiR-ar9ioVjA" name="Sensor" visibility="private">
+ <ownedAttribute xmi:id="_M8w_ssOTEeSiR-ar9ioVjA" name="reading" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8w_s8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8w_tMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_M8w_y8OTEeSiR-ar9ioVjA" name="Sensor$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8w_zMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8w_zcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_M8w_vMOTEeSiR-ar9ioVjA" name="Sensor$method$1" visibility="protected" specification="_M8w_tcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_M8xnHMOTEeSiR-ar9ioVjA" annotatedElement="_M8w_vMOTEeSiR-ar9ioVjA">
+ <body>activity 'Sensor$method$1'(in reading: Integer[0..1]): Sensor {
+if (this.'Sensor$initializationFlag$1' == null) {
+this.'Sensor$initialization$1'();
+this.reading = reading;
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_M8w_vcOTEeSiR-ar9ioVjA" name="reading">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8w_vsOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8w_v8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_M8w_wMOTEeSiR-ar9ioVjA" name="" type="_M8w_scOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8w_wcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8w_wsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_M8w_x8OTEeSiR-ar9ioVjA" name="getNextReading$method$1" visibility="protected" specification="_M8w_w8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_M8xnFMOTEeSiR-ar9ioVjA" annotatedElement="_M8w_x8OTEeSiR-ar9ioVjA">
+ <body>activity 'getNextReading$method$1'(): Integer[0..1] {
+ return this.reading;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_M8w_yMOTEeSiR-ar9ioVjA" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8w_ycOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8w_ysOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_M8w_zsOTEeSiR-ar9ioVjA" name="Sensor$initialization$1" visibility="protected" specification="_M8w_z8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_M8xnGMOTEeSiR-ar9ioVjA" annotatedElement="_M8w_zsOTEeSiR-ar9ioVjA">
+ <body>activity 'Sensor$initialization$1'(){
+ if (this.'Sensor$initializationFlag$1' == null) {
+ this.'Sensor$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_M8w_0MOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_M8xmwMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_M8xnGcOTEeSiR-ar9ioVjA" annotatedElement="_M8w_0MOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_M8w_tcOTEeSiR-ar9ioVjA" name="Sensor" visibility="public" method="_M8w_vMOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_M8w_tsOTEeSiR-ar9ioVjA" name="reading">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8w_t8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8w_uMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_M8w_ucOTEeSiR-ar9ioVjA" name="" type="_M8w_scOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8w_usOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8w_u8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_M8w_w8OTEeSiR-ar9ioVjA" name="getNextReading" visibility="public" method="_M8w_x8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_M8w_xMOTEeSiR-ar9ioVjA" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8w_xcOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8w_xsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_M8w_z8OTEeSiR-ar9ioVjA" name="Sensor$initialization$1" visibility="protected" method="_M8w_zsOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_M8xmwMOTEeSiR-ar9ioVjA" name="destroy" method="_M8w_0MOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_M8xmwcOTEeSiR-ar9ioVjA" name="ActivityEdgeInstance" visibility="private">
+ <ownedAttribute xmi:id="_M8xmwsOTEeSiR-ar9ioVjA" name="token" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8xmw8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8xmxMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_M8xmzcOTEeSiR-ar9ioVjA" name="ActivityEdgeInstance$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8xmzsOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8xmz8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_M8xmycOTEeSiR-ar9ioVjA" name="sendOffer$method$1" visibility="protected" specification="_M8xmxcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_M8xnEcOTEeSiR-ar9ioVjA" annotatedElement="_M8xmycOTEeSiR-ar9ioVjA">
+ <body>activity 'sendOffer$method$1'(in token: Integer) {
+ this.token = token;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_M8xmysOTEeSiR-ar9ioVjA" name="token">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8xmy8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8xmzMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_M8xm0MOTEeSiR-ar9ioVjA" name="ActivityEdgeInstance$initialization$1" visibility="protected" specification="_M8xm0cOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_M8xnF8OTEeSiR-ar9ioVjA" annotatedElement="_M8xm0MOTEeSiR-ar9ioVjA">
+ <body>activity 'ActivityEdgeInstance$initialization$1'(){
+ if (this.'ActivityEdgeInstance$initializationFlag$1' == null) {
+ this.'ActivityEdgeInstance$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_M8xm0sOTEeSiR-ar9ioVjA" name="ActivityEdgeInstance$method$1" specification="_M8xm1sOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_M8xnE8OTEeSiR-ar9ioVjA" annotatedElement="_M8xm0sOTEeSiR-ar9ioVjA">
+ <body>activity 'ActivityEdgeInstance$method$1'(): ActivityEdgeInstance {
+ this.'ActivityEdgeInstance$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_M8xm08OTEeSiR-ar9ioVjA" type="_M8xmwcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8xm1MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8xm1cOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_M8xm2sOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_M8xm28OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_M8xnG8OTEeSiR-ar9ioVjA" annotatedElement="_M8xm2sOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_M8xmxcOTEeSiR-ar9ioVjA" name="sendOffer" visibility="public" method="_M8xmycOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_M8xmxsOTEeSiR-ar9ioVjA" name="token">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8xmx8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8xmyMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_M8xm0cOTEeSiR-ar9ioVjA" name="ActivityEdgeInstance$initialization$1" visibility="protected" method="_M8xm0MOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_M8xm1sOTEeSiR-ar9ioVjA" name="ActivityEdgeInstance" method="_M8xm0sOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_M8xm18OTEeSiR-ar9ioVjA" type="_M8xmwcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8xm2MOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8xm2cOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_M8xm28OTEeSiR-ar9ioVjA" name="destroy" method="_M8xm2sOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Activity" xmi:id="_M8xm3MOTEeSiR-ar9ioVjA" name="processRecord" visibility="private">
+ <ownedComment xmi:id="_M8xnGsOTEeSiR-ar9ioVjA" annotatedElement="_M8xm3MOTEeSiR-ar9ioVjA">
+ <body>activity processRecord(in index: Integer) {
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_M8xm3cOTEeSiR-ar9ioVjA" name="index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M8xm3sOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M8xm38OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:id="_MLLKscOTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_MLLKssOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_MLLKs8OTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_MLLKtMOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Create xmi:id="_M8xnH8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_M8w_tcOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_M8xnIMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_M8xm1sOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_M8xnIcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_M8xnCcOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_M8xnIsOTEeSiR-ar9ioVjA" base_BehavioralFeature="_M8xm28OTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_M8xnI8OTEeSiR-ar9ioVjA" base_BehavioralFeature="_M8xmwMOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_M8xnJMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_M8xnDsOTEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_M8xnJcOTEeSiR-ar9ioVjA" base_Comment="_M8xnEcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_M8xnJsOTEeSiR-ar9ioVjA" base_Comment="_M8xnEsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_M8xnJ8OTEeSiR-ar9ioVjA" base_Comment="_M8xnE8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_M8xnKMOTEeSiR-ar9ioVjA" base_Comment="_M8xnFMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_M8xnKcOTEeSiR-ar9ioVjA" base_Comment="_M8xnFcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_M8xnKsOTEeSiR-ar9ioVjA" base_Comment="_M8xnFsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_M8xnK8OTEeSiR-ar9ioVjA" base_Comment="_M8xnF8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_M8xnLMOTEeSiR-ar9ioVjA" base_Comment="_M8xnGMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_M8xnLcOTEeSiR-ar9ioVjA" base_Comment="_M8xnGcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_M8xnLsOTEeSiR-ar9ioVjA" base_Comment="_M8xnGsOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_M8xnL8OTEeSiR-ar9ioVjA" base_Comment="_M8xnG8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_M8xnMMOTEeSiR-ar9ioVjA" base_Comment="_M8xnHMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_M8xnMcOTEeSiR-ar9ioVjA" base_Comment="_M8xnHcOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_M8xnMsOTEeSiR-ar9ioVjA" base_Comment="_M8xnHsOTEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_Return.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_Return.uml
new file mode 100644
index 00000000000..b5fdb1e33db
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_Return.uml
@@ -0,0 +1,237 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="__ZDuwIKGEeSFEt9m3bH63A" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_ABoKoIKHEeSFEt9m3bH63A" name="Statements_Return" classifierBehavior="_ABoK8oKHEeSFEt9m3bH63A" isActive="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ABoK84KHEeSFEt9m3bH63A" annotatedElement="_ABoKoIKHEeSFEt9m3bH63A">
+ <body>&#xD;
+ * Test return statements.&#xD;
+ *</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ABoK44KHEeSFEt9m3bH63A" name="Statements_Return$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ABoK5IKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ABoK5YKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_ABoKzYKHEeSFEt9m3bH63A" name="test$method$1" visibility="protected" specification="_ABoKt4KHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ABoK-4KHEeSFEt9m3bH63A" annotatedElement="_ABoKzYKHEeSFEt9m3bH63A">
+ <body>activity 'test$method$1'(out a: Integer, out b: Integer, out c: String, out x: Integer, out y: Integer, out z: Integer, out n: Integer) { a = test1();
+b = test2();
+c = test3();
+x = 0;
+z = test4(x, y);
+n = 1;
+return;
+n = 2;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ABoKzoKHEeSFEt9m3bH63A" name="a" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ABoKz4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ABoK0IKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ABoK0YKHEeSFEt9m3bH63A" name="b" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ABoK0oKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ABoK04KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ABoK1IKHEeSFEt9m3bH63A" name="c" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ABoK1YKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ABoK1oKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ABoK14KHEeSFEt9m3bH63A" name="x" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ABoK2IKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ABoK2YKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ABoK2oKHEeSFEt9m3bH63A" name="y" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ABoK24KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ABoK3IKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ABoK3YKHEeSFEt9m3bH63A" name="z" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ABoK3oKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ABoK34KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ABoK4IKHEeSFEt9m3bH63A" name="n" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ABoK4YKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ABoK4oKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_ABoK5oKHEeSFEt9m3bH63A" name="Statements_Return$initialization$1" visibility="protected" specification="_ABoK54KHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ABoK-oKHEeSFEt9m3bH63A" annotatedElement="_ABoK5oKHEeSFEt9m3bH63A">
+ <body>activity 'Statements_Return$initialization$1'(){
+ if (this.'Statements_Return$initializationFlag$1' == null) {
+ this.'Statements_Return$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_ABoK6IKHEeSFEt9m3bH63A" name="Statements_Return$method$1" specification="_ABoK7IKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ABoK94KHEeSFEt9m3bH63A" annotatedElement="_ABoK6IKHEeSFEt9m3bH63A">
+ <body>activity 'Statements_Return$method$1'(): Statements_Return {
+ this.'Statements_Return$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ABoK6YKHEeSFEt9m3bH63A" type="_ABoKoIKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ABoK6oKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ABoK64KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_ABoK8IKHEeSFEt9m3bH63A" name="destroy$method$1" specification="_ABoK8YKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ABoK9oKHEeSFEt9m3bH63A" annotatedElement="_ABoK8IKHEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_ABoK8oKHEeSFEt9m3bH63A" name="Statements_Return$behavior$1" visibility="private">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ABoK-YKHEeSFEt9m3bH63A" annotatedElement="_ABoK8oKHEeSFEt9m3bH63A">
+ <body>activity 'Statements_Return$behavior$1'() { this.test(a, b, c, x, y, z, n);
+AssertEqual(&quot;a&quot;, a, 4);
+AssertEqual(&quot;b&quot;, b, 2);
+AssertEqual(&quot;c&quot;, c, &quot;xx&quot;);
+AssertEqual(&quot;x&quot;, x, 1);
+AssertEqual(&quot;y&quot;, y, 2);
+AssertEqual(&quot;z&quot;, z, 3);
+AssertEqual(&quot;n&quot;, n, 1);
+WriteLine(&quot;Done&quot;);
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ABoKt4KHEeSFEt9m3bH63A" name="test" visibility="public" method="_ABoKzYKHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ABoKuIKHEeSFEt9m3bH63A" name="a" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ABoKuYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ABoKuoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ABoKu4KHEeSFEt9m3bH63A" name="b" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ABoKvIKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ABoKvYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ABoKvoKHEeSFEt9m3bH63A" name="c" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ABoKv4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ABoKwIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ABoKwYKHEeSFEt9m3bH63A" name="x" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ABoKwoKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ABoKw4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ABoKxIKHEeSFEt9m3bH63A" name="y" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ABoKxYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ABoKxoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ABoKx4KHEeSFEt9m3bH63A" name="z" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ABoKyIKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ABoKyYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ABoKyoKHEeSFEt9m3bH63A" name="n" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ABoKy4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ABoKzIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ABoK54KHEeSFEt9m3bH63A" name="Statements_Return$initialization$1" visibility="protected" method="_ABoK5oKHEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ABoK7IKHEeSFEt9m3bH63A" name="Statements_Return" method="_ABoK6IKHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ABoK7YKHEeSFEt9m3bH63A" type="_ABoKoIKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ABoK7oKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ABoK74KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ABoK8YKHEeSFEt9m3bH63A" name="destroy" method="_ABoK8IKHEeSFEt9m3bH63A"/>
+ <nestedClassifier xmi:type="uml:Activity" xmi:id="_ABoKoYKHEeSFEt9m3bH63A" name="test1">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ABoK_IKHEeSFEt9m3bH63A" annotatedElement="_ABoKoYKHEeSFEt9m3bH63A">
+ <body>activity test1(): Integer { item = 4;
+return item;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ABoKooKHEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ABoKo4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ABoKpIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Activity" xmi:id="_ABoKpYKHEeSFEt9m3bH63A" name="test2">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ABoK-IKHEeSFEt9m3bH63A" annotatedElement="_ABoKpYKHEeSFEt9m3bH63A">
+ <body>activity test2(): Integer { index = 2;
+list = new Integer [] { 1, 2, 3 };
+return list[index];
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ABoKpoKHEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ABoKp4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ABoKqIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Activity" xmi:id="_ABoKqYKHEeSFEt9m3bH63A" name="test3">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ABoK9YKHEeSFEt9m3bH63A" annotatedElement="_ABoKqYKHEeSFEt9m3bH63A">
+ <body>activity test3(): String { s = &quot;x&quot;;
+return s + s;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ABoKqoKHEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ABoKq4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ABoKrIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Activity" xmi:id="_ABoKrYKHEeSFEt9m3bH63A" name="test4">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ABoK9IKHEeSFEt9m3bH63A" annotatedElement="_ABoKrYKHEeSFEt9m3bH63A">
+ <body>activity test4(inout x: Integer, out y: Integer): Integer { y = 2;
+if (x == 0) { x = x + 1;
+return 3;
+} }</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ABoKroKHEeSFEt9m3bH63A" name="x" direction="inout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ABoKr4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ABoKsIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ABoKsYKHEeSFEt9m3bH63A" name="y" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ABoKsoKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ABoKs4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_ABoKtIKHEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ABoKtYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ABoKtoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="__ZDuwYKGEeSFEt9m3bH63A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__ZDuwoKGEeSFEt9m3bH63A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_2I5lhLeNEeS_zZpc9I-Bsg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2I6MkLeNEeS_zZpc9I-Bsg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <ActionLanguage:TextualRepresentation xmi:id="_ABoK_YKHEeSFEt9m3bH63A" base_Comment="_ABoK9oKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_ABoK_oKHEeSFEt9m3bH63A" base_Comment="_ABoK-oKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_ABoK_4KHEeSFEt9m3bH63A" base_Comment="_ABoK-4KHEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Create xmi:id="_ABoLAIKHEeSFEt9m3bH63A" base_BehavioralFeature="_ABoK7IKHEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_ABoLAYKHEeSFEt9m3bH63A" base_Comment="_ABoK9IKHEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Destroy xmi:id="_ABoLAoKHEeSFEt9m3bH63A" base_BehavioralFeature="_ABoK8YKHEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_ABoLA4KHEeSFEt9m3bH63A" base_Comment="_ABoK-YKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_ABoLBIKHEeSFEt9m3bH63A" base_Comment="_ABoK9YKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_ABoLBYKHEeSFEt9m3bH63A" base_Comment="_ABoK94KHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_ABoLBoKHEeSFEt9m3bH63A" base_Comment="_ABoK_IKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_ABoLB4KHEeSFEt9m3bH63A" base_Comment="_ABoK-IKHEeSFEt9m3bH63A" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_Simple.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_Simple.uml
new file mode 100644
index 00000000000..707ca2e4499
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_Simple.uml
@@ -0,0 +1,464 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_ACnpIIKHEeSFEt9m3bH63A" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_A-bKEIKHEeSFEt9m3bH63A" name="Statements_Simple" classifierBehavior="_A-bx1IKHEeSFEt9m3bH63A" isActive="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_A-bx1YKHEeSFEt9m3bH63A" annotatedElement="_A-bKEIKHEeSFEt9m3bH63A">
+ <body> &#xD;
+ * Test block, empty and local name declaration statements.&#xD;
+ *</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_A-bKEYKHEeSFEt9m3bH63A" name="offers" visibility="package" type="_A-bxIoKHEeSFEt9m3bH63A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxIIKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxIYKHEeSFEt9m3bH63A" value="*"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_A-bxMoKHEeSFEt9m3bH63A" behavior="_A-bxM4KHEeSFEt9m3bH63A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_A-bxN4KHEeSFEt9m3bH63A" name="principal" visibility="package">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxOIKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxOYKHEeSFEt9m3bH63A" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_A-bxOoKHEeSFEt9m3bH63A" behavior="_A-bxO4KHEeSFEt9m3bH63A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_A-bxP4KHEeSFEt9m3bH63A" name="rate" visibility="package">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxQIKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxQYKHEeSFEt9m3bH63A" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_A-bxQoKHEeSFEt9m3bH63A" behavior="_A-bxQ4KHEeSFEt9m3bH63A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_A-bxxYKHEeSFEt9m3bH63A" name="Statements_Simple$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxxoKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxx4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_A-bxqYKHEeSFEt9m3bH63A" name="test$method$1" visibility="protected" specification="_A-bxjYKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_A-bx2YKHEeSFEt9m3bH63A" annotatedElement="_A-bxqYKHEeSFEt9m3bH63A">
+ <body>activity 'test$method$1'(out i: Integer, out last: Integer, out collection: Integer[0..*] sequence, out offer: Offer, out money: Money, out members: Member[0..*] sequence, out properties: RealProperty[0..*] sequence, out assets: RealProperty[0..*] sequence, out point: Point) { e1 = 1;
+e2 = 2;
+period = 10;
+members = new Member [] { new Member(false, &quot;A&quot;), new Member(true, &quot;B&quot;), new
+Member(false, &quot;C&quot;) };
+land = new RealProperty(&quot;land&quot;);
+home = new RealProperty(&quot;home&quot;);
+condominium = new RealProperty(&quot;condominium&quot;);
+things = any [] { land, home, condominium, &quot;something&quot; }; // *****&#xD;
+//@parallel &#xD;
+{ i = e1;
+last = e2;
+collection = new Integer [] { i, last };
+};
+let currentOffer: Offer = this.offers[1];
+let interest: Money = new(this.principal * this.rate * period / 100);
+let inactiveMembers: Member [] = members->select member (! member.isActive);
+let realProperties: RealProperty [] = (RealProperty) things;
+let fixedAssets: RealProperty [] = { land, home, condominium };
+let origin: Point = new(0, 0);
+offer = currentOffer;
+money = interest;
+members = inactiveMembers;
+properties = realProperties;
+assets = fixedAssets;
+point = origin;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxqoKHEeSFEt9m3bH63A" name="i" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxq4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxrIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxrYKHEeSFEt9m3bH63A" name="last" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxroKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxr4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxsIKHEeSFEt9m3bH63A" name="collection" isOrdered="true" isUnique="false" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxsYKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxsoKHEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxs4KHEeSFEt9m3bH63A" name="offer" type="_A-bxIoKHEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxtIKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxtYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxtoKHEeSFEt9m3bH63A" name="money" type="_A-bxiYKHEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxt4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxuIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxuYKHEeSFEt9m3bH63A" name="members" type="_A-bxR4KHEeSFEt9m3bH63A" isOrdered="true" isUnique="false" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxuoKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxu4KHEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxvIKHEeSFEt9m3bH63A" name="properties" type="_A-bxaYKHEeSFEt9m3bH63A" isOrdered="true" isUnique="false" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxvYKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxvoKHEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxv4KHEeSFEt9m3bH63A" name="assets" type="_A-bxaYKHEeSFEt9m3bH63A" isOrdered="true" isUnique="false" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxwIKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxwYKHEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxwoKHEeSFEt9m3bH63A" name="point" type="_A-bxgoKHEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxw4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxxIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_A-bxM4KHEeSFEt9m3bH63A" name="offers$defaultValue$1">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_A-bx4oKHEeSFEt9m3bH63A" annotatedElement="_A-bxM4KHEeSFEt9m3bH63A">
+ <body>activity 'offers$defaultValue$1'(): Offer[0..*] {
+ return new Offer();
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxNIKHEeSFEt9m3bH63A" type="_A-bxIoKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxNYKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxNoKHEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_A-bxO4KHEeSFEt9m3bH63A" name="principal$defaultValue$1">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_A-bx5IKHEeSFEt9m3bH63A" annotatedElement="_A-bxO4KHEeSFEt9m3bH63A">
+ <body>activity 'principal$defaultValue$1'(): Integer {
+ return 100;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxPIKHEeSFEt9m3bH63A" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxPYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxPoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_A-bxQ4KHEeSFEt9m3bH63A" name="rate$defaultValue$1">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_A-bx14KHEeSFEt9m3bH63A" annotatedElement="_A-bxQ4KHEeSFEt9m3bH63A">
+ <body>activity 'rate$defaultValue$1'(): Integer {
+ return 5;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxRIKHEeSFEt9m3bH63A" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxRYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxRoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_A-bxyIKHEeSFEt9m3bH63A" name="Statements_Simple$initialization$1" visibility="protected" specification="_A-bxyYKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_A-bx2IKHEeSFEt9m3bH63A" annotatedElement="_A-bxyIKHEeSFEt9m3bH63A">
+ <body>activity 'Statements_Simple$initialization$1'(){
+ if (this.'Statements_Simple$initializationFlag$1' == null) {
+ this.offers = 'offers$defaultValue$1'();
+ this.principal = 'principal$defaultValue$1'();
+ this.rate = 'rate$defaultValue$1'();
+ this.'Statements_Simple$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_A-bxyoKHEeSFEt9m3bH63A" name="Statements_Simple$method$1" specification="_A-bxzoKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_A-bx5oKHEeSFEt9m3bH63A" annotatedElement="_A-bxyoKHEeSFEt9m3bH63A">
+ <body>activity 'Statements_Simple$method$1'(): Statements_Simple {
+ this.'Statements_Simple$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxy4KHEeSFEt9m3bH63A" type="_A-bKEIKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxzIKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxzYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_A-bx0oKHEeSFEt9m3bH63A" name="destroy$method$1" specification="_A-bx04KHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_A-bx1oKHEeSFEt9m3bH63A" annotatedElement="_A-bx0oKHEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_A-bx1IKHEeSFEt9m3bH63A" name="Statements_Simple$behavior$1" visibility="private">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_A-bx5YKHEeSFEt9m3bH63A" annotatedElement="_A-bx1IKHEeSFEt9m3bH63A">
+ <body>activity 'Statements_Simple$behavior$1'() { this.test(i, last, collection, offer, money, members, properties, assets,
+point);
+AssertEqual(&quot;i&quot;, i, 1);
+AssertEqual(&quot;last&quot;, last, 2);
+AssertList(&quot;collection&quot;, collection, new Integer [] { 1, 2 });
+AssertEqual(&quot;offer->size()&quot;, offer->size(), 1);
+AssertEqual(&quot;money.amount&quot;, money.amount, 50);
+AssertList(&quot;members.name&quot;, members.name, new String [] { &quot;A&quot;, &quot;C&quot; });
+AssertList(&quot;properties.name&quot;, properties.name, assets.name);
+AssertEqual(&quot;point.x&quot;, point.x, 0);
+AssertEqual(&quot;point.y&quot;, point.y, 0);
+WriteLine(&quot;Done&quot;);
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_A-bxjYKHEeSFEt9m3bH63A" name="test" visibility="package" method="_A-bxqYKHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxjoKHEeSFEt9m3bH63A" name="i" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxj4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxkIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxkYKHEeSFEt9m3bH63A" name="last" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxkoKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxk4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxlIKHEeSFEt9m3bH63A" name="collection" isOrdered="true" isUnique="false" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxlYKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxloKHEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxl4KHEeSFEt9m3bH63A" name="offer" type="_A-bxIoKHEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxmIKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxmYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxmoKHEeSFEt9m3bH63A" name="money" type="_A-bxiYKHEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxm4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxnIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxnYKHEeSFEt9m3bH63A" name="members" type="_A-bxR4KHEeSFEt9m3bH63A" isOrdered="true" isUnique="false" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxnoKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxn4KHEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxoIKHEeSFEt9m3bH63A" name="properties" type="_A-bxaYKHEeSFEt9m3bH63A" isOrdered="true" isUnique="false" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxoYKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxooKHEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxo4KHEeSFEt9m3bH63A" name="assets" type="_A-bxaYKHEeSFEt9m3bH63A" isOrdered="true" isUnique="false" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxpIKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxpYKHEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxpoKHEeSFEt9m3bH63A" name="point" type="_A-bxgoKHEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxp4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxqIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_A-bxyYKHEeSFEt9m3bH63A" name="Statements_Simple$initialization$1" visibility="protected" method="_A-bxyIKHEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_A-bxzoKHEeSFEt9m3bH63A" name="Statements_Simple" method="_A-bxyoKHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxz4KHEeSFEt9m3bH63A" type="_A-bKEIKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bx0IKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bx0YKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_A-bx04KHEeSFEt9m3bH63A" name="destroy" method="_A-bx0oKHEeSFEt9m3bH63A"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_A-bxIoKHEeSFEt9m3bH63A" name="Offer" visibility="package">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_A-bxI4KHEeSFEt9m3bH63A" name="Offer$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxJIKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxJYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_A-bxJoKHEeSFEt9m3bH63A" name="Offer$initialization$1" visibility="protected" specification="_A-bxJ4KHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_A-bx34KHEeSFEt9m3bH63A" annotatedElement="_A-bxJoKHEeSFEt9m3bH63A">
+ <body>activity 'Offer$initialization$1'(){
+ if (this.'Offer$initializationFlag$1' == null) {
+ this.'Offer$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_A-bxKIKHEeSFEt9m3bH63A" name="Offer$method$1" specification="_A-bxLIKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_A-bx44KHEeSFEt9m3bH63A" annotatedElement="_A-bxKIKHEeSFEt9m3bH63A">
+ <body>activity 'Offer$method$1'(): Offer {
+ this.'Offer$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxKYKHEeSFEt9m3bH63A" type="_A-bxIoKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxKoKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxK4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_A-bxMIKHEeSFEt9m3bH63A" name="destroy$method$1" specification="_A-bxMYKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_A-bx4YKHEeSFEt9m3bH63A" annotatedElement="_A-bxMIKHEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_A-bxJ4KHEeSFEt9m3bH63A" name="Offer$initialization$1" visibility="protected" method="_A-bxJoKHEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_A-bxLIKHEeSFEt9m3bH63A" name="Offer" method="_A-bxKIKHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxLYKHEeSFEt9m3bH63A" type="_A-bxIoKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxLoKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxL4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_A-bxMYKHEeSFEt9m3bH63A" name="destroy" method="_A-bxMIKHEeSFEt9m3bH63A"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_A-bxR4KHEeSFEt9m3bH63A" name="Member" visibility="package">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_A-bxSIKHEeSFEt9m3bH63A" name="isActive" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxSYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxSoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_A-bxS4KHEeSFEt9m3bH63A" name="name" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxTIKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxTYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_A-bxYoKHEeSFEt9m3bH63A" name="Member$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxY4KHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxZIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_A-bxWIKHEeSFEt9m3bH63A" name="Member$method$1" visibility="protected" specification="_A-bxToKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_A-bx3IKHEeSFEt9m3bH63A" annotatedElement="_A-bxWIKHEeSFEt9m3bH63A">
+ <body>activity 'Member$method$1'(in isActive: Boolean, in name: String): Member {
+if (this.'Member$initializationFlag$1' == null) {
+this.'Member$initialization$1'();
+this.isActive = isActive; this.name = name;
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxWYKHEeSFEt9m3bH63A" name="isActive">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxWoKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxW4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxXIKHEeSFEt9m3bH63A" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxXYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxXoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxX4KHEeSFEt9m3bH63A" name="" type="_A-bxR4KHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxYIKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxYYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_A-bxZYKHEeSFEt9m3bH63A" name="Member$initialization$1" visibility="protected" specification="_A-bxZoKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_A-bx24KHEeSFEt9m3bH63A" annotatedElement="_A-bxZYKHEeSFEt9m3bH63A">
+ <body>activity 'Member$initialization$1'(){
+ if (this.'Member$initializationFlag$1' == null) {
+ this.'Member$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_A-bxZ4KHEeSFEt9m3bH63A" name="destroy$method$1" specification="_A-bxaIKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_A-bx2oKHEeSFEt9m3bH63A" annotatedElement="_A-bxZ4KHEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_A-bxToKHEeSFEt9m3bH63A" name="Member" visibility="public" method="_A-bxWIKHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxT4KHEeSFEt9m3bH63A" name="isActive">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxUIKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxUYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxUoKHEeSFEt9m3bH63A" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxU4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxVIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxVYKHEeSFEt9m3bH63A" name="" type="_A-bxR4KHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxVoKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxV4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_A-bxZoKHEeSFEt9m3bH63A" name="Member$initialization$1" visibility="protected" method="_A-bxZYKHEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_A-bxaIKHEeSFEt9m3bH63A" name="destroy" method="_A-bxZ4KHEeSFEt9m3bH63A"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_A-bxaYKHEeSFEt9m3bH63A" name="RealProperty" visibility="package">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_A-bxaoKHEeSFEt9m3bH63A" name="name" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxa4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxbIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_A-bxe4KHEeSFEt9m3bH63A" name="RealProperty$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxfIKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxfYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_A-bxdIKHEeSFEt9m3bH63A" name="RealProperty$method$1" visibility="protected" specification="_A-bxbYKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_A-bx3YKHEeSFEt9m3bH63A" annotatedElement="_A-bxdIKHEeSFEt9m3bH63A">
+ <body>activity 'RealProperty$method$1'(in name: String): RealProperty {
+if (this.'RealProperty$initializationFlag$1' == null) {
+this.'RealProperty$initialization$1'();
+this.name = name;
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxdYKHEeSFEt9m3bH63A" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxdoKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxd4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxeIKHEeSFEt9m3bH63A" name="" type="_A-bxaYKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxeYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxeoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_A-bxfoKHEeSFEt9m3bH63A" name="RealProperty$initialization$1" visibility="protected" specification="_A-bxf4KHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_A-bx4IKHEeSFEt9m3bH63A" annotatedElement="_A-bxfoKHEeSFEt9m3bH63A">
+ <body>activity 'RealProperty$initialization$1'(){
+ if (this.'RealProperty$initializationFlag$1' == null) {
+ this.'RealProperty$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_A-bxgIKHEeSFEt9m3bH63A" name="destroy$method$1" specification="_A-bxgYKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_A-bx3oKHEeSFEt9m3bH63A" annotatedElement="_A-bxgIKHEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_A-bxbYKHEeSFEt9m3bH63A" name="RealProperty" visibility="public" method="_A-bxdIKHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxboKHEeSFEt9m3bH63A" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxb4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxcIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_A-bxcYKHEeSFEt9m3bH63A" name="" type="_A-bxaYKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxcoKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxc4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_A-bxf4KHEeSFEt9m3bH63A" name="RealProperty$initialization$1" visibility="protected" method="_A-bxfoKHEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_A-bxgYKHEeSFEt9m3bH63A" name="destroy" method="_A-bxgIKHEeSFEt9m3bH63A"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:DataType" xmi:id="_A-bxgoKHEeSFEt9m3bH63A" name="Point" visibility="package">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_A-bxg4KHEeSFEt9m3bH63A" name="x" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxhIKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxhYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_A-bxhoKHEeSFEt9m3bH63A" name="y" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxh4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxiIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:DataType" xmi:id="_A-bxiYKHEeSFEt9m3bH63A" name="Money" visibility="package">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_A-bxioKHEeSFEt9m3bH63A" name="amount" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A-bxi4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A-bxjIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_ACnpIYKHEeSFEt9m3bH63A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ACnpIoKHEeSFEt9m3bH63A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_52Ea2beNEeS_zZpc9I-Bsg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_52FB4LeNEeS_zZpc9I-Bsg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <ActionLanguage:TextualRepresentation xmi:id="_A-bx54KHEeSFEt9m3bH63A" base_Comment="_A-bx3IKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_A-bx6IKHEeSFEt9m3bH63A" base_Comment="_A-bx3oKHEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Destroy xmi:id="_A-bx6YKHEeSFEt9m3bH63A" base_BehavioralFeature="_A-bxMYKHEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_A-bx6oKHEeSFEt9m3bH63A" base_Comment="_A-bx2YKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_A-bx64KHEeSFEt9m3bH63A" base_Comment="_A-bx5YKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_A-bx7IKHEeSFEt9m3bH63A" base_Comment="_A-bx44KHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_A-bx7YKHEeSFEt9m3bH63A" base_Comment="_A-bx2IKHEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Destroy xmi:id="_A-bx7oKHEeSFEt9m3bH63A" base_BehavioralFeature="_A-bxaIKHEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_A-bx74KHEeSFEt9m3bH63A" base_Comment="_A-bx34KHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_A-bx8IKHEeSFEt9m3bH63A" base_Comment="_A-bx4YKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_A-bx8YKHEeSFEt9m3bH63A" base_Comment="_A-bx3YKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_A-bx8oKHEeSFEt9m3bH63A" base_Comment="_A-bx2oKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_A-bx84KHEeSFEt9m3bH63A" base_Comment="_A-bx5oKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_A-bx9IKHEeSFEt9m3bH63A" base_Comment="_A-bx24KHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_A-bx9YKHEeSFEt9m3bH63A" base_Comment="_A-bx4oKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_A-bx9oKHEeSFEt9m3bH63A" base_Comment="_A-bx14KHEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Create xmi:id="_A-bx94KHEeSFEt9m3bH63A" base_BehavioralFeature="_A-bxbYKHEeSFEt9m3bH63A"/>
+ <standard:Destroy xmi:id="_A-bx-IKHEeSFEt9m3bH63A" base_BehavioralFeature="_A-bxgYKHEeSFEt9m3bH63A"/>
+ <standard:Create xmi:id="_A-bx-YKHEeSFEt9m3bH63A" base_BehavioralFeature="_A-bxzoKHEeSFEt9m3bH63A"/>
+ <standard:Create xmi:id="_A-bx-oKHEeSFEt9m3bH63A" base_BehavioralFeature="_A-bxLIKHEeSFEt9m3bH63A"/>
+ <standard:Create xmi:id="_A-bx-4KHEeSFEt9m3bH63A" base_BehavioralFeature="_A-bxToKHEeSFEt9m3bH63A"/>
+ <standard:Destroy xmi:id="_A-bx_IKHEeSFEt9m3bH63A" base_BehavioralFeature="_A-bx04KHEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_A-bx_YKHEeSFEt9m3bH63A" base_Comment="_A-bx4IKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_A-bx_oKHEeSFEt9m3bH63A" base_Comment="_A-bx5IKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_A-bx_4KHEeSFEt9m3bH63A" base_Comment="_A-bx1oKHEeSFEt9m3bH63A" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_While_Do_Looping.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_While_Do_Looping.uml
new file mode 100644
index 00000000000..66fb1499730
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Statements_While_Do_Looping.uml
@@ -0,0 +1,657 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_A_m10IKHEeSFEt9m3bH63A" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_Ce0l0IKHEeSFEt9m3bH63A" name="Statements_While_Do_Looping" classifierBehavior="_Ce0mxYKHEeSFEt9m3bH63A" isActive="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce0mxoKHEeSFEt9m3bH63A" annotatedElement="_Ce0l0IKHEeSFEt9m3bH63A">
+ <body>&#xD;
+ * Test while and do statements.&#xD;
+ *</body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ce0l0YKHEeSFEt9m3bH63A" name="list" visibility="package" type="_Ce0l1IKHEeSFEt9m3bH63A" isOrdered="true" isUnique="false">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0l0oKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0l04KHEeSFEt9m3bH63A" value="*"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_Ce0l5oKHEeSFEt9m3bH63A" behavior="_Ce0l54KHEeSFEt9m3bH63A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ce0mtoKHEeSFEt9m3bH63A" name="Statements_While_Do_Looping$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mt4KHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0muIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0mmoKHEeSFEt9m3bH63A" name="test$method$1" visibility="protected" specification="_Ce0mfoKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce0mzoKHEeSFEt9m3bH63A" annotatedElement="_Ce0mmoKHEeSFEt9m3bH63A">
+ <body>activity 'test$method$1'(out count: Integer, out checksum: Integer, out nextRecord: FileRecord[0..1], out file: File, out lines: String[0..*] sequence, out readings: Reading[0..*] sequence, out i: Integer, out j: Integer, out self: Statements_While_Do_Looping) { count = 0;
+checksum = 0;
+file = new File();
+endMarker = file.endMarker;
+sensor = new Sensor(2);
+lines = null;
+readings = null;
+i = 4;
+j = 0;
+while ((last = this.list->size()) > 0) { this.list[last].cleanUp();
+this.list->removeAt(last);
+++ count;
+} continue = true;
+while (continue) { nextRecord = file.readNext();
+if (! nextRecord->isEmpty()) { checksum = checksum + 1;
+} continue = file.hasMore();
+} file.reset();
+do { line = file.readNext();
+lines->add(line.toString());
+} while (line != endMarker);
+do { nextReading = sensor.getNextReading();
+readings->add(nextReading.getValue());
+} while (! nextReading.isFinal());
+do { if (i &lt;= 2) { break;
+} -- i;
+} while (true);
+do { ++ j;
+if (j > 2) { break;
+} } while (true);
+self = this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mm4KHEeSFEt9m3bH63A" name="count" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mnIKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mnYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mnoKHEeSFEt9m3bH63A" name="checksum" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mn4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0moIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0moYKHEeSFEt9m3bH63A" name="nextRecord" type="_Ce0l8oKHEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mooKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mo4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mpIKHEeSFEt9m3bH63A" name="file" type="_Ce0l64KHEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mpYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mpoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mp4KHEeSFEt9m3bH63A" name="lines" isOrdered="true" isUnique="false" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mqIKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mqYKHEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mqoKHEeSFEt9m3bH63A" name="readings" type="_Ce0mSoKHEeSFEt9m3bH63A" isOrdered="true" isUnique="false" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mq4KHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mrIKHEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mrYKHEeSFEt9m3bH63A" name="i" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mroKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mr4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0msIKHEeSFEt9m3bH63A" name="j" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0msYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0msoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0ms4KHEeSFEt9m3bH63A" name="self" type="_Ce0l0IKHEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mtIKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mtYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0l54KHEeSFEt9m3bH63A" name="list$defaultValue$1">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce0m14KHEeSFEt9m3bH63A" annotatedElement="_Ce0l54KHEeSFEt9m3bH63A">
+ <body>activity 'list$defaultValue$1'(): Monitor[0..*] sequence {
+ return { new Monitor(), new Monitor() };
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0l6IKHEeSFEt9m3bH63A" type="_Ce0l1IKHEeSFEt9m3bH63A" isOrdered="true" isUnique="false" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0l6YKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0l6oKHEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0muYKHEeSFEt9m3bH63A" name="Statements_While_Do_Looping$initialization$1" visibility="protected" specification="_Ce0muoKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce0myIKHEeSFEt9m3bH63A" annotatedElement="_Ce0muYKHEeSFEt9m3bH63A">
+ <body>activity 'Statements_While_Do_Looping$initialization$1'(){
+ if (this.'Statements_While_Do_Looping$initializationFlag$1' == null) {
+ this.list = 'list$defaultValue$1'();
+ this.'Statements_While_Do_Looping$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0mu4KHEeSFEt9m3bH63A" name="Statements_While_Do_Looping$method$1" specification="_Ce0mv4KHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce0m0IKHEeSFEt9m3bH63A" annotatedElement="_Ce0mu4KHEeSFEt9m3bH63A">
+ <body>activity 'Statements_While_Do_Looping$method$1'(): Statements_While_Do_Looping {
+ this.'Statements_While_Do_Looping$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mvIKHEeSFEt9m3bH63A" type="_Ce0l0IKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mvYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mvoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0mw4KHEeSFEt9m3bH63A" name="destroy$method$1" specification="_Ce0mxIKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce0m0oKHEeSFEt9m3bH63A" annotatedElement="_Ce0mw4KHEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0mxYKHEeSFEt9m3bH63A" name="Statements_While_Do_Looping$behavior$1" visibility="private">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce0m04KHEeSFEt9m3bH63A" annotatedElement="_Ce0mxYKHEeSFEt9m3bH63A">
+ <body>activity 'Statements_While_Do_Looping$behavior$1'() { this.test(count, checksum, nextRecord, file, lines, readings, i, j, self);
+AssertEqual(&quot;count&quot;, count, 2);
+AssertEqual(&quot;checksum&quot;, checksum, 1);
+AssertEqual(&quot;nextRecord.label&quot;, nextRecord.label, &quot;Record&quot;);
+AssertList(&quot;lines&quot;, lines, new String [] { &quot;Record&quot;, &quot;End&quot; });
+AssertList(&quot;readings&quot;, readings, new Integer [] { 2, 1, 0 });
+AssertEqual(&quot;i&quot;, i, 2);
+AssertEqual(&quot;j&quot;, j, 3);
+AssertTrue(&quot;self.list->isEmpty()&quot;, self.list->isEmpty());
+WriteLine(&quot;Done&quot;);
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0mfoKHEeSFEt9m3bH63A" name="test" visibility="package" method="_Ce0mmoKHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mf4KHEeSFEt9m3bH63A" name="count" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mgIKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mgYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mgoKHEeSFEt9m3bH63A" name="checksum" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mg4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mhIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mhYKHEeSFEt9m3bH63A" name="nextRecord" type="_Ce0l8oKHEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mhoKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mh4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0miIKHEeSFEt9m3bH63A" name="file" type="_Ce0l64KHEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0miYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mioKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mi4KHEeSFEt9m3bH63A" name="lines" isOrdered="true" isUnique="false" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mjIKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mjYKHEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mjoKHEeSFEt9m3bH63A" name="readings" type="_Ce0mSoKHEeSFEt9m3bH63A" isOrdered="true" isUnique="false" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mj4KHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mkIKHEeSFEt9m3bH63A" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mkYKHEeSFEt9m3bH63A" name="i" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mkoKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mk4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mlIKHEeSFEt9m3bH63A" name="j" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mlYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mloKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0ml4KHEeSFEt9m3bH63A" name="self" type="_Ce0l0IKHEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mmIKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mmYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0muoKHEeSFEt9m3bH63A" name="Statements_While_Do_Looping$initialization$1" visibility="protected" method="_Ce0muYKHEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0mv4KHEeSFEt9m3bH63A" name="Statements_While_Do_Looping" method="_Ce0mu4KHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mwIKHEeSFEt9m3bH63A" type="_Ce0l0IKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mwYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mwoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0mxIKHEeSFEt9m3bH63A" name="destroy" method="_Ce0mw4KHEeSFEt9m3bH63A"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_Ce0l1IKHEeSFEt9m3bH63A" name="Monitor" visibility="package">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ce0l14KHEeSFEt9m3bH63A" name="Monitor$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0l2IKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0l2YKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0l1oKHEeSFEt9m3bH63A" name="cleanUp$method$1" visibility="protected" specification="_Ce0l1YKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce0m2IKHEeSFEt9m3bH63A" annotatedElement="_Ce0l1oKHEeSFEt9m3bH63A">
+ <body>activity 'cleanUp$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0l2oKHEeSFEt9m3bH63A" name="Monitor$initialization$1" visibility="protected" specification="_Ce0l24KHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce0m1oKHEeSFEt9m3bH63A" annotatedElement="_Ce0l2oKHEeSFEt9m3bH63A">
+ <body>activity 'Monitor$initialization$1'(){
+ if (this.'Monitor$initializationFlag$1' == null) {
+ this.'Monitor$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0l3IKHEeSFEt9m3bH63A" name="Monitor$method$1" specification="_Ce0l4IKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce5eUoKHEeSFEt9m3bH63A" annotatedElement="_Ce0l3IKHEeSFEt9m3bH63A">
+ <body>activity 'Monitor$method$1'(): Monitor {
+ this.'Monitor$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0l3YKHEeSFEt9m3bH63A" type="_Ce0l1IKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0l3oKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0l34KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0l5IKHEeSFEt9m3bH63A" name="destroy$method$1" specification="_Ce0l5YKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce5eU4KHEeSFEt9m3bH63A" annotatedElement="_Ce0l5IKHEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0l1YKHEeSFEt9m3bH63A" name="cleanUp" visibility="public" method="_Ce0l1oKHEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0l24KHEeSFEt9m3bH63A" name="Monitor$initialization$1" visibility="protected" method="_Ce0l2oKHEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0l4IKHEeSFEt9m3bH63A" name="Monitor" method="_Ce0l3IKHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0l4YKHEeSFEt9m3bH63A" type="_Ce0l1IKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0l4oKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0l44KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0l5YKHEeSFEt9m3bH63A" name="destroy" method="_Ce0l5IKHEeSFEt9m3bH63A"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_Ce0l64KHEeSFEt9m3bH63A" name="File" visibility="package">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ce0l7IKHEeSFEt9m3bH63A" name="more" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0l7YKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0l7oKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ce0l74KHEeSFEt9m3bH63A" name="endMarker" visibility="public" type="_Ce0l8oKHEeSFEt9m3bH63A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0l8IKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0l8YKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ce0mLYKHEeSFEt9m3bH63A" name="File$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mLoKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mL4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0mF4KHEeSFEt9m3bH63A" name="File$method$1" visibility="protected" specification="_Ce0mE4KHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce0mzYKHEeSFEt9m3bH63A" annotatedElement="_Ce0mF4KHEeSFEt9m3bH63A">
+ <body>activity 'File$method$1'(): File {
+if (this.'File$initializationFlag$1' == null) {
+this.'File$initialization$1'();
+this.more = true; this.endMarker = new FileRecord(&quot;End&quot;);
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mGIKHEeSFEt9m3bH63A" name="" type="_Ce0l64KHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mGYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mGoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0mH4KHEeSFEt9m3bH63A" name="hasMore$method$1" visibility="protected" specification="_Ce0mG4KHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce5eUIKHEeSFEt9m3bH63A" annotatedElement="_Ce0mH4KHEeSFEt9m3bH63A">
+ <body>activity 'hasMore$method$1'(): Boolean { return this.more;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mIIKHEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mIYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mIoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0mJ4KHEeSFEt9m3bH63A" name="readNext$method$1" visibility="protected" specification="_Ce0mI4KHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce5eVYKHEeSFEt9m3bH63A" annotatedElement="_Ce0mJ4KHEeSFEt9m3bH63A">
+ <body>activity 'readNext$method$1'(): FileRecord[0..1] { if (this.more) { this.more = false;
+return new FileRecord(&quot;Record&quot;);
+} else { return this.endMarker;
+} }</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mKIKHEeSFEt9m3bH63A" type="_Ce0l8oKHEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mKYKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mKoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0mLIKHEeSFEt9m3bH63A" name="reset$method$1" visibility="protected" specification="_Ce0mK4KHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce0m0YKHEeSFEt9m3bH63A" annotatedElement="_Ce0mLIKHEeSFEt9m3bH63A">
+ <body>activity 'reset$method$1'() { this.more = true;
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0mMIKHEeSFEt9m3bH63A" name="File$initialization$1" visibility="protected" specification="_Ce0mMYKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce0my4KHEeSFEt9m3bH63A" annotatedElement="_Ce0mMIKHEeSFEt9m3bH63A">
+ <body>activity 'File$initialization$1'(){
+ if (this.'File$initializationFlag$1' == null) {
+ this.'File$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0mMoKHEeSFEt9m3bH63A" name="destroy$method$1" specification="_Ce0mM4KHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce0m1YKHEeSFEt9m3bH63A" annotatedElement="_Ce0mMoKHEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0mE4KHEeSFEt9m3bH63A" name="File" visibility="public" method="_Ce0mF4KHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mFIKHEeSFEt9m3bH63A" name="" type="_Ce0l64KHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mFYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mFoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0mG4KHEeSFEt9m3bH63A" name="hasMore" visibility="public" method="_Ce0mH4KHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mHIKHEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mHYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mHoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0mI4KHEeSFEt9m3bH63A" name="readNext" visibility="public" method="_Ce0mJ4KHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mJIKHEeSFEt9m3bH63A" type="_Ce0l8oKHEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mJYKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mJoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0mK4KHEeSFEt9m3bH63A" name="reset" visibility="public" method="_Ce0mLIKHEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0mMYKHEeSFEt9m3bH63A" name="File$initialization$1" visibility="protected" method="_Ce0mMIKHEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0mM4KHEeSFEt9m3bH63A" name="destroy" method="_Ce0mMoKHEeSFEt9m3bH63A"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_Ce0l8oKHEeSFEt9m3bH63A" name="FileRecord" visibility="package">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ce0l84KHEeSFEt9m3bH63A" name="label" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0l9IKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0l9YKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ce0mDIKHEeSFEt9m3bH63A" name="FileRecord$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mDYKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mDoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0l_YKHEeSFEt9m3bH63A" name="FileRecord$method$1" visibility="protected" specification="_Ce0l9oKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce0m24KHEeSFEt9m3bH63A" annotatedElement="_Ce0l_YKHEeSFEt9m3bH63A">
+ <body>activity 'FileRecord$method$1'(in label: String): FileRecord {
+if (this.'FileRecord$initializationFlag$1' == null) {
+this.'FileRecord$initialization$1'();
+this.label = label;
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0l_oKHEeSFEt9m3bH63A" name="label">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0l_4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mAIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mAYKHEeSFEt9m3bH63A" name="" type="_Ce0l8oKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mAoKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mA4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0mCIKHEeSFEt9m3bH63A" name="toString$method$1" visibility="protected" specification="_Ce0mBIKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce0m2oKHEeSFEt9m3bH63A" annotatedElement="_Ce0mCIKHEeSFEt9m3bH63A">
+ <body>activity 'toString$method$1'(): String { return this.label;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mCYKHEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mCoKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mC4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0mD4KHEeSFEt9m3bH63A" name="FileRecord$initialization$1" visibility="protected" specification="_Ce0mEIKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce0mz4KHEeSFEt9m3bH63A" annotatedElement="_Ce0mD4KHEeSFEt9m3bH63A">
+ <body>activity 'FileRecord$initialization$1'(){
+ if (this.'FileRecord$initializationFlag$1' == null) {
+ this.'FileRecord$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0mEYKHEeSFEt9m3bH63A" name="destroy$method$1" specification="_Ce0mEoKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce5eUYKHEeSFEt9m3bH63A" annotatedElement="_Ce0mEYKHEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0l9oKHEeSFEt9m3bH63A" name="FileRecord" visibility="public" method="_Ce0l_YKHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0l94KHEeSFEt9m3bH63A" name="label">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0l-IKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0l-YKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0l-oKHEeSFEt9m3bH63A" name="" type="_Ce0l8oKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0l-4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0l_IKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0mBIKHEeSFEt9m3bH63A" name="toString" visibility="public" method="_Ce0mCIKHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mBYKHEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mBoKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mB4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0mEIKHEeSFEt9m3bH63A" name="FileRecord$initialization$1" visibility="protected" method="_Ce0mD4KHEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0mEoKHEeSFEt9m3bH63A" name="destroy" method="_Ce0mEYKHEeSFEt9m3bH63A"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_Ce0mNIKHEeSFEt9m3bH63A" name="Sensor" visibility="package">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ce0mNYKHEeSFEt9m3bH63A" name="count" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mNoKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mN4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ce0md4KHEeSFEt9m3bH63A" name="Sensor$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0meIKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0meYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0mP4KHEeSFEt9m3bH63A" name="Sensor$method$1" visibility="protected" specification="_Ce0mOIKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce0myYKHEeSFEt9m3bH63A" annotatedElement="_Ce0mP4KHEeSFEt9m3bH63A">
+ <body>activity 'Sensor$method$1'(in count: Integer): Sensor {
+if (this.'Sensor$initializationFlag$1' == null) {
+this.'Sensor$initialization$1'();
+this.count = count;
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mQIKHEeSFEt9m3bH63A" name="count">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mQYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mQoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mQ4KHEeSFEt9m3bH63A" name="" type="_Ce0mNIKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mRIKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mRYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0mc4KHEeSFEt9m3bH63A" name="getNextReading$method$1" visibility="protected" specification="_Ce0mRoKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce5eVoKHEeSFEt9m3bH63A" annotatedElement="_Ce0mc4KHEeSFEt9m3bH63A">
+ <body>activity 'getNextReading$method$1'(): Reading[0..1] { return new Reading(-- this.count);
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mdIKHEeSFEt9m3bH63A" type="_Ce0mSoKHEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mdYKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mdoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0meoKHEeSFEt9m3bH63A" name="Sensor$initialization$1" visibility="protected" specification="_Ce0me4KHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce0m2YKHEeSFEt9m3bH63A" annotatedElement="_Ce0meoKHEeSFEt9m3bH63A">
+ <body>activity 'Sensor$initialization$1'(){
+ if (this.'Sensor$initializationFlag$1' == null) {
+ this.'Sensor$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0mfIKHEeSFEt9m3bH63A" name="destroy$method$1" specification="_Ce0mfYKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce0mx4KHEeSFEt9m3bH63A" annotatedElement="_Ce0mfIKHEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0mOIKHEeSFEt9m3bH63A" name="Sensor" visibility="public" method="_Ce0mP4KHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mOYKHEeSFEt9m3bH63A" name="count">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mOoKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mO4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mPIKHEeSFEt9m3bH63A" name="" type="_Ce0mNIKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mPYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mPoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0mRoKHEeSFEt9m3bH63A" name="getNextReading" visibility="public" method="_Ce0mc4KHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mR4KHEeSFEt9m3bH63A" type="_Ce0mSoKHEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mSIKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mSYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0me4KHEeSFEt9m3bH63A" name="Sensor$initialization$1" visibility="protected" method="_Ce0meoKHEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0mfYKHEeSFEt9m3bH63A" name="destroy" method="_Ce0mfIKHEeSFEt9m3bH63A"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_Ce0mSoKHEeSFEt9m3bH63A" name="Reading" visibility="package">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ce0mS4KHEeSFEt9m3bH63A" name="value" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mTIKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mTYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ce0mbIKHEeSFEt9m3bH63A" name="Reading$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mbYKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mboKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0mVYKHEeSFEt9m3bH63A" name="Reading$method$1" visibility="protected" specification="_Ce0mToKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce0myoKHEeSFEt9m3bH63A" annotatedElement="_Ce0mVYKHEeSFEt9m3bH63A">
+ <body>activity 'Reading$method$1'(in value: Integer): Reading {
+if (this.'Reading$initializationFlag$1' == null) {
+this.'Reading$initialization$1'();
+this.value = value;
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mVoKHEeSFEt9m3bH63A" name="value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mV4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mWIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mWYKHEeSFEt9m3bH63A" name="" type="_Ce0mSoKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mWoKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mW4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0mYIKHEeSFEt9m3bH63A" name="isFinal$method$1" visibility="protected" specification="_Ce0mXIKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce0m3IKHEeSFEt9m3bH63A" annotatedElement="_Ce0mYIKHEeSFEt9m3bH63A">
+ <body>activity 'isFinal$method$1'(): Boolean { return this.value &lt;= 0;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mYYKHEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mYoKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mY4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0maIKHEeSFEt9m3bH63A" name="getValue$method$1" visibility="protected" specification="_Ce0mZIKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce0mzIKHEeSFEt9m3bH63A" annotatedElement="_Ce0maIKHEeSFEt9m3bH63A">
+ <body>activity 'getValue$method$1'(): Integer { return this.value;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0maYKHEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0maoKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0ma4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0mb4KHEeSFEt9m3bH63A" name="Reading$initialization$1" visibility="protected" specification="_Ce0mcIKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce5eVIKHEeSFEt9m3bH63A" annotatedElement="_Ce0mb4KHEeSFEt9m3bH63A">
+ <body>activity 'Reading$initialization$1'(){
+ if (this.'Reading$initializationFlag$1' == null) {
+ this.'Reading$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_Ce0mcYKHEeSFEt9m3bH63A" name="destroy$method$1" specification="_Ce0mcoKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ce0m1IKHEeSFEt9m3bH63A" annotatedElement="_Ce0mcYKHEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0mToKHEeSFEt9m3bH63A" name="Reading" visibility="public" method="_Ce0mVYKHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mT4KHEeSFEt9m3bH63A" name="value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mUIKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mUYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mUoKHEeSFEt9m3bH63A" name="" type="_Ce0mSoKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mU4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mVIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0mXIKHEeSFEt9m3bH63A" name="isFinal" visibility="public" method="_Ce0mYIKHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mXYKHEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mXoKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mX4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0mZIKHEeSFEt9m3bH63A" name="getValue" visibility="public" method="_Ce0maIKHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Ce0mZYKHEeSFEt9m3bH63A" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ce0mZoKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ce0mZ4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0mcIKHEeSFEt9m3bH63A" name="Reading$initialization$1" visibility="protected" method="_Ce0mb4KHEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Ce0mcoKHEeSFEt9m3bH63A" name="destroy" method="_Ce0mcYKHEeSFEt9m3bH63A"/>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_A_m10YKHEeSFEt9m3bH63A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_A_m10oKHEeSFEt9m3bH63A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_DmMRELeOEeS_zZpc9I-Bsg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DmM4ILeOEeS_zZpc9I-Bsg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5eV4KHEeSFEt9m3bH63A" base_Comment="_Ce0myIKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5eWIKHEeSFEt9m3bH63A" base_Comment="_Ce0m1oKHEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Create xmi:id="_Ce5eWYKHEeSFEt9m3bH63A" base_BehavioralFeature="_Ce0mToKHEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5eWoKHEeSFEt9m3bH63A" base_Comment="_Ce0mzIKHEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Create xmi:id="_Ce5eW4KHEeSFEt9m3bH63A" base_BehavioralFeature="_Ce0mE4KHEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5eXIKHEeSFEt9m3bH63A" base_Comment="_Ce0myYKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5eXYKHEeSFEt9m3bH63A" base_Comment="_Ce0mz4KHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5eXoKHEeSFEt9m3bH63A" base_Comment="_Ce5eUoKHEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Create xmi:id="_Ce5eX4KHEeSFEt9m3bH63A" base_BehavioralFeature="_Ce0l4IKHEeSFEt9m3bH63A"/>
+ <standard:Destroy xmi:id="_Ce5eYIKHEeSFEt9m3bH63A" base_BehavioralFeature="_Ce0l5YKHEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5eYYKHEeSFEt9m3bH63A" base_Comment="_Ce0m2oKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5eYoKHEeSFEt9m3bH63A" base_Comment="_Ce0m24KHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5eY4KHEeSFEt9m3bH63A" base_Comment="_Ce5eVoKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5eZIKHEeSFEt9m3bH63A" base_Comment="_Ce0m04KHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5eZYKHEeSFEt9m3bH63A" base_Comment="_Ce0mx4KHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5eZoKHEeSFEt9m3bH63A" base_Comment="_Ce0m1YKHEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Destroy xmi:id="_Ce5eZ4KHEeSFEt9m3bH63A" base_BehavioralFeature="_Ce0mxIKHEeSFEt9m3bH63A"/>
+ <standard:Destroy xmi:id="_Ce5eaIKHEeSFEt9m3bH63A" base_BehavioralFeature="_Ce0mcoKHEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5eaYKHEeSFEt9m3bH63A" base_Comment="_Ce5eUYKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5eaoKHEeSFEt9m3bH63A" base_Comment="_Ce0m0YKHEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Destroy xmi:id="_Ce5ea4KHEeSFEt9m3bH63A" base_BehavioralFeature="_Ce0mfYKHEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5ebIKHEeSFEt9m3bH63A" base_Comment="_Ce0m3IKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5ebYKHEeSFEt9m3bH63A" base_Comment="_Ce0m0oKHEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Create xmi:id="_Ce5eboKHEeSFEt9m3bH63A" base_BehavioralFeature="_Ce0mv4KHEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5eb4KHEeSFEt9m3bH63A" base_Comment="_Ce0m14KHEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Create xmi:id="_Ce5ecIKHEeSFEt9m3bH63A" base_BehavioralFeature="_Ce0mOIKHEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5ecYKHEeSFEt9m3bH63A" base_Comment="_Ce0m0IKHEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Destroy xmi:id="_Ce5ecoKHEeSFEt9m3bH63A" base_BehavioralFeature="_Ce0mM4KHEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5ec4KHEeSFEt9m3bH63A" base_Comment="_Ce0m2YKHEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Destroy xmi:id="_Ce5edIKHEeSFEt9m3bH63A" base_BehavioralFeature="_Ce0mEoKHEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5edYKHEeSFEt9m3bH63A" base_Comment="_Ce5eU4KHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5edoKHEeSFEt9m3bH63A" base_Comment="_Ce5eUIKHEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Create xmi:id="_Ce5ed4KHEeSFEt9m3bH63A" base_BehavioralFeature="_Ce0l9oKHEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5eeIKHEeSFEt9m3bH63A" base_Comment="_Ce0mzYKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5eeYKHEeSFEt9m3bH63A" base_Comment="_Ce0m2IKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5eeoKHEeSFEt9m3bH63A" base_Comment="_Ce5eVYKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5ee4KHEeSFEt9m3bH63A" base_Comment="_Ce0myoKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5efIKHEeSFEt9m3bH63A" base_Comment="_Ce5eVIKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5efYKHEeSFEt9m3bH63A" base_Comment="_Ce0mzoKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5efoKHEeSFEt9m3bH63A" base_Comment="_Ce0m1IKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_Ce5ef4KHEeSFEt9m3bH63A" base_Comment="_Ce0my4KHEeSFEt9m3bH63A" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/TemplateActivityTest.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/TemplateActivityTest.uml
new file mode 100644
index 00000000000..410daf7ac3c
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/TemplateActivityTest.uml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_M9R9EMOTEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Activity" xmi:id="_NIFe4MOTEeSiR-ar9ioVjA" name="A" visibility="protected">
+ <ownedComment xmi:id="_NIFe58OTEeSiR-ar9ioVjA" annotatedElement="_NIFe4MOTEeSiR-ar9ioVjA">
+ <body>activity A&lt;T>(in x: T) {
+ return;
+}</body>
+ </ownedComment>
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_NIFe5MOTEeSiR-ar9ioVjA" parameter="_NIFe5cOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_NIFe5cOTEeSiR-ar9ioVjA" parameteredElement="_NIFe5sOTEeSiR-ar9ioVjA" allowSubstitutable="false">
+ <ownedParameteredElement xmi:type="uml:DataType" xmi:id="_NIFe5sOTEeSiR-ar9ioVjA" name="T" templateParameter="_NIFe5cOTEeSiR-ar9ioVjA" isAbstract="true"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedParameter xmi:id="_NIFe4cOTEeSiR-ar9ioVjA" name="x" type="_NIFe5sOTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NIFe4sOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NIFe48OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <profileApplication xmi:id="_M9R9EcOTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_M9R9EsOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_M9R9E8OTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_M9R9FMOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <ActionLanguage:TextualRepresentation xmi:id="_NIFe6MOTEeSiR-ar9ioVjA" base_Comment="_NIFe58OTEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/TemplateBindingTest.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/TemplateBindingTest.uml
new file mode 100644
index 00000000000..68c7aaee139
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/TemplateBindingTest.uml
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_NIMMkMOTEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_NYX9oMOTEeSiR-ar9ioVjA" name="TemplateBindingTest" classifierBehavior="_NYYk0cOTEeSiR-ar9ioVjA" isActive="true">
+ <ownedAttribute xmi:id="_NYYkvMOTEeSiR-ar9ioVjA" name="c" visibility="public" type="_NYYkv8OTEeSiR-ar9ioVjA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NYYkvcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NYYkvsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_NYYkwsOTEeSiR-ar9ioVjA" name="TemplateBindingTest$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NYYkw8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NYYkxMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_NYYkxcOTEeSiR-ar9ioVjA" name="TemplateBindingTest$initialization$1" visibility="protected" specification="_NYYkxsOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_NYYk2MOTEeSiR-ar9ioVjA" annotatedElement="_NYYkxcOTEeSiR-ar9ioVjA">
+ <body>activity 'TemplateBindingTest$initialization$1'(){
+ if (this.'TemplateBindingTest$initializationFlag$1' == null) {
+ this.'TemplateBindingTest$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_NYYkx8OTEeSiR-ar9ioVjA" name="TemplateBindingTest$method$1" specification="_NYYky8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_NYYk0sOTEeSiR-ar9ioVjA" annotatedElement="_NYYkx8OTEeSiR-ar9ioVjA">
+ <body>activity 'TemplateBindingTest$method$1'(): TemplateBindingTest {
+ this.'TemplateBindingTest$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_NYYkyMOTEeSiR-ar9ioVjA" type="_NYX9oMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NYYkycOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NYYkysOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_NYYkz8OTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_NYYk0MOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_NYYk1cOTEeSiR-ar9ioVjA" annotatedElement="_NYYkz8OTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_NYYk0cOTEeSiR-ar9ioVjA" name="TemplateBindingTest$behavior$1" visibility="private">
+ <ownedComment xmi:id="_NYYk1MOTEeSiR-ar9ioVjA" annotatedElement="_NYYk0cOTEeSiR-ar9ioVjA">
+ <body>activity 'TemplateBindingTest$behavior$1'() {
+ this.c = new C&lt; Integer >();
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_NYYkxsOTEeSiR-ar9ioVjA" name="TemplateBindingTest$initialization$1" visibility="protected" method="_NYYkxcOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_NYYky8OTEeSiR-ar9ioVjA" name="TemplateBindingTest" method="_NYYkx8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_NYYkzMOTEeSiR-ar9ioVjA" type="_NYX9oMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NYYkzcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NYYkzsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_NYYk0MOTEeSiR-ar9ioVjA" name="destroy" method="_NYYkz8OTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_NYX9ocOTEeSiR-ar9ioVjA" name="C" visibility="package">
+ <ownedTemplateSignature xmi:type="uml:RedefinableTemplateSignature" xmi:id="_NYX9osOTEeSiR-ar9ioVjA" parameter="_NYX9o8OTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_NYX9o8OTEeSiR-ar9ioVjA" parameteredElement="_NYX9pMOTEeSiR-ar9ioVjA" allowSubstitutable="false">
+ <ownedParameteredElement xmi:type="uml:DataType" xmi:id="_NYX9pMOTEeSiR-ar9ioVjA" name="T" templateParameter="_NYX9o8OTEeSiR-ar9ioVjA" isAbstract="true"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <ownedAttribute xmi:id="_NYYktcOTEeSiR-ar9ioVjA" name="C$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NYYktsOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NYYkt8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_NYYkscOTEeSiR-ar9ioVjA" name="C$method$1" visibility="protected" specification="_NYX9pcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_NYYk1sOTEeSiR-ar9ioVjA" annotatedElement="_NYYkscOTEeSiR-ar9ioVjA">
+ <body>activity 'C$method$1'(): '$$TemplateBindingTest$C__TemplateBindingTest$C$T__' {
+if (this.'C$initializationFlag$1' == null) {
+this.'C$initialization$1'();
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_NYYkssOTEeSiR-ar9ioVjA" name="" type="_NYX9qcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NYYks8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NYYktMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_NYYkuMOTEeSiR-ar9ioVjA" name="C$initialization$1" visibility="protected" specification="_NYYkucOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_NYYk08OTEeSiR-ar9ioVjA" annotatedElement="_NYYkuMOTEeSiR-ar9ioVjA">
+ <body>activity 'C$initialization$1'(){
+ if (this.'C$initializationFlag$1' == null) {
+ this.'C$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_NYYkusOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_NYYku8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_NYYk18OTEeSiR-ar9ioVjA" annotatedElement="_NYYkusOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_NYX9pcOTEeSiR-ar9ioVjA" name="C" visibility="public" method="_NYYkscOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_NYX9psOTEeSiR-ar9ioVjA" name="" type="_NYX9qcOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NYX9p8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NYX9qMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_NYYkucOTEeSiR-ar9ioVjA" name="C$initialization$1" visibility="protected" method="_NYYkuMOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_NYYku8OTEeSiR-ar9ioVjA" name="destroy" method="_NYYkusOTEeSiR-ar9ioVjA"/>
+ </nestedClassifier>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_NYX9qcOTEeSiR-ar9ioVjA" name="$$TemplateBindingTest$C__TemplateBindingTest$C$T__">
+ <templateBinding xmi:id="_NYX9qsOTEeSiR-ar9ioVjA" signature="_NYX9osOTEeSiR-ar9ioVjA">
+ <parameterSubstitution xmi:id="_NYYksMOTEeSiR-ar9ioVjA" actual="_NYX9pMOTEeSiR-ar9ioVjA" formal="_NYX9o8OTEeSiR-ar9ioVjA"/>
+ </templateBinding>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_NYYkv8OTEeSiR-ar9ioVjA" name="$$TemplateBindingTest$C__PrimitiveTypes$Integer__">
+ <templateBinding xmi:id="_NYYkwMOTEeSiR-ar9ioVjA" signature="_NYX9osOTEeSiR-ar9ioVjA">
+ <parameterSubstitution xmi:id="_NYYkwcOTEeSiR-ar9ioVjA" formal="_NYX9o8OTEeSiR-ar9ioVjA">
+ <actual xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </parameterSubstitution>
+ </templateBinding>
+ </packagedElement>
+ <profileApplication xmi:id="_NIMMkcOTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_NIMMksOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_NIMMk8OTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_NIMMlMOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Create xmi:id="_NYYk2cOTEeSiR-ar9ioVjA" base_BehavioralFeature="_NYX9pcOTEeSiR-ar9ioVjA"/>
+ <standard:Create xmi:id="_NYYk2sOTEeSiR-ar9ioVjA" base_BehavioralFeature="_NYYky8OTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_NYYk28OTEeSiR-ar9ioVjA" base_BehavioralFeature="_NYYk0MOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_NYYk3MOTEeSiR-ar9ioVjA" base_BehavioralFeature="_NYYku8OTEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_NYYk3cOTEeSiR-ar9ioVjA" base_Comment="_NYYk0sOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_NYYk3sOTEeSiR-ar9ioVjA" base_Comment="_NYYk08OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_NYYk38OTEeSiR-ar9ioVjA" base_Comment="_NYYk1MOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_NYYk4MOTEeSiR-ar9ioVjA" base_Comment="_NYYk1cOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_NYYk4cOTEeSiR-ar9ioVjA" base_Comment="_NYYk1sOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_NYYk4sOTEeSiR-ar9ioVjA" base_Comment="_NYYk18OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_NYYk48OTEeSiR-ar9ioVjA" base_Comment="_NYYk2MOTEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/TestActivity.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/TestActivity.uml
new file mode 100644
index 00000000000..f165dc2223d
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/TestActivity.uml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_NY0pkMOTEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Activity" xmi:id="_Nj204MOTEeSiR-ar9ioVjA" name="TestActivity" visibility="protected">
+ <ownedComment xmi:id="_Nj205cOTEeSiR-ar9ioVjA" annotatedElement="_Nj204MOTEeSiR-ar9ioVjA">
+ <body>activity TestActivity(): Integer {
+ WriteLine(&quot;Hello Test!&quot;);
+}</body>
+ </ownedComment>
+ <packageImport xmi:id="_Nj205MOTEeSiR-ar9ioVjA" visibility="private">
+ <importedPackage href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf-Library-BasicInputOutput"/>
+ </packageImport>
+ <ownedParameter xmi:id="_Nj204cOTEeSiR-ar9ioVjA" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Nj204sOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Nj2048OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <profileApplication xmi:id="_NY0pkcOTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_NY0pksOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_NY0pk8OTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_NY0plMOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <ActionLanguage:TextualRepresentation xmi:id="_Nj3b8MOTEeSiR-ar9ioVjA" base_Comment="_Nj205cOTEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/TestClass.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/TestClass.uml
new file mode 100644
index 00000000000..32a5b6e4e42
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/TestClass.uml
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_NkQdgMOTEeSiR-ar9ioVjA" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_N7SdcMOTEeSiR-ar9ioVjA" name="A" isAbstract="true">
+ <ownedComment xmi:id="_N7TEtsOTEeSiR-ar9ioVjA" annotatedElement="_N7SdcMOTEeSiR-ar9ioVjA">
+ <body> Comment </body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_N7SdccOTEeSiR-ar9ioVjA" name="x" visibility="private">
+ <ownedComment xmi:id="_N7TEhsOTEeSiR-ar9ioVjA" annotatedElement="_N7SdccOTEeSiR-ar9ioVjA">
+ <body> Member Comment </body>
+ </ownedComment>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_N7SdcsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_N7TEgMOTEeSiR-ar9ioVjA" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_N7TEgcOTEeSiR-ar9ioVjA" behavior="_N7TEgsOTEeSiR-ar9ioVjA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_N7TEh8OTEeSiR-ar9ioVjA" name="y" visibility="private">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_N7TEiMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_N7TEicOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_N7TEisOTEeSiR-ar9ioVjA" name="z" visibility="private">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_N7TEi8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_N7TEjMOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_N7TEp8OTEeSiR-ar9ioVjA" name="A$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_N7TEqMOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_N7TEqcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_N7TEoMOTEeSiR-ar9ioVjA" name="q$method$1" visibility="protected" specification="_N7TEmcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_N7TEt8OTEeSiR-ar9ioVjA" annotatedElement="_N7TEoMOTEeSiR-ar9ioVjA">
+ <body>activity 'q$method$1'(in s: String[0..*]): Boolean {
+ return s == &quot;&quot;;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_N7TEocOTEeSiR-ar9ioVjA" name="s">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_N7TEosOTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_N7TEo8OTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_N7TEpMOTEeSiR-ar9ioVjA" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_N7TEpcOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_N7TEpsOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_N7TEgsOTEeSiR-ar9ioVjA" name="x$defaultValue$1">
+ <ownedComment xmi:id="_N7TEu8OTEeSiR-ar9ioVjA" annotatedElement="_N7TEgsOTEeSiR-ar9ioVjA">
+ <body>activity 'x$defaultValue$1'(): Integer {
+ return 1;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_N7TEg8OTEeSiR-ar9ioVjA" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_N7TEhMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_N7TEhcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_N7TEqsOTEeSiR-ar9ioVjA" name="A$initialization$1" visibility="protected" specification="_N7TEq8OTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_N7TEucOTEeSiR-ar9ioVjA" annotatedElement="_N7TEqsOTEeSiR-ar9ioVjA">
+ <body>activity 'A$initialization$1'(){
+ if (this.'A$initializationFlag$1' == null) {
+ this.x = 'x$defaultValue$1'();
+ this.'A$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_N7TErMOTEeSiR-ar9ioVjA" name="A$method$1" specification="_N7TEsMOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_N7TEusOTEeSiR-ar9ioVjA" annotatedElement="_N7TErMOTEeSiR-ar9ioVjA">
+ <body>activity 'A$method$1'(): A {
+ this.'A$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:id="_N7TErcOTEeSiR-ar9ioVjA" type="_N7SdcMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_N7TErsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_N7TEr8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_N7TEtMOTEeSiR-ar9ioVjA" name="destroy$method$1" specification="_N7TEtcOTEeSiR-ar9ioVjA">
+ <ownedComment xmi:id="_N7TEuMOTEeSiR-ar9ioVjA" annotatedElement="_N7TEtMOTEeSiR-ar9ioVjA">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_N7TEksOTEeSiR-ar9ioVjA" name="p" visibility="public" isAbstract="true">
+ <ownedParameter xmi:id="_N7TEk8OTEeSiR-ar9ioVjA" name="x">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_N7TElMOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_N7TElcOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_N7TElsOTEeSiR-ar9ioVjA" name="y" direction="out">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_N7TEl8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_N7TEmMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_N7TEmcOTEeSiR-ar9ioVjA" name="q" visibility="public" method="_N7TEoMOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_N7TEmsOTEeSiR-ar9ioVjA" name="s">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_N7TEm8OTEeSiR-ar9ioVjA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_N7TEnMOTEeSiR-ar9ioVjA" value="*"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_N7TEncOTEeSiR-ar9ioVjA" direction="return">
+ <name xsi:nil="true"/>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_N7TEnsOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_N7TEn8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_N7TEq8OTEeSiR-ar9ioVjA" name="A$initialization$1" visibility="protected" method="_N7TEqsOTEeSiR-ar9ioVjA"/>
+ <ownedOperation xmi:id="_N7TEsMOTEeSiR-ar9ioVjA" name="A" method="_N7TErMOTEeSiR-ar9ioVjA">
+ <ownedParameter xmi:id="_N7TEscOTEeSiR-ar9ioVjA" type="_N7SdcMOTEeSiR-ar9ioVjA" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_N7TEssOTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_N7TEs8OTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_N7TEtcOTEeSiR-ar9ioVjA" name="destroy" method="_N7TEtMOTEeSiR-ar9ioVjA"/>
+ <nestedClassifier xmi:type="uml:Activity" xmi:id="_N7TEjcOTEeSiR-ar9ioVjA" name="R" visibility="package">
+ <ownedComment xmi:id="_N7TEkcOTEeSiR-ar9ioVjA" annotatedElement="_N7TEjcOTEeSiR-ar9ioVjA">
+ <body> Another comment </body>
+ </ownedComment>
+ <ownedParameter xmi:id="_N7TEjsOTEeSiR-ar9ioVjA" name="x">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_N7TEj8OTEeSiR-ar9ioVjA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_N7TEkMOTEeSiR-ar9ioVjA" value="1"/>
+ </ownedParameter>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:id="_NkQdgcOTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_NkQdgsOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_NkQdg8OTEeSiR-ar9ioVjA">
+ <eAnnotations xmi:id="_NkQdhMOTEeSiR-ar9ioVjA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Create xmi:id="_N7TEvMOTEeSiR-ar9ioVjA" base_BehavioralFeature="_N7TEsMOTEeSiR-ar9ioVjA"/>
+ <standard:Destroy xmi:id="_N7TEvcOTEeSiR-ar9ioVjA" base_BehavioralFeature="_N7TEtcOTEeSiR-ar9ioVjA"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_N7TEvsOTEeSiR-ar9ioVjA" base_Comment="_N7TEt8OTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_N7TEv8OTEeSiR-ar9ioVjA" base_Comment="_N7TEuMOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_N7TEwMOTEeSiR-ar9ioVjA" base_Comment="_N7TEucOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_N7TEwcOTEeSiR-ar9ioVjA" base_Comment="_N7TEusOTEeSiR-ar9ioVjA" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_N7TEwsOTEeSiR-ar9ioVjA" base_Comment="_N7TEu8OTEeSiR-ar9ioVjA" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Test_EmptyAssociationName.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Test_EmptyAssociationName.uml
new file mode 100644
index 00000000000..6e1204ecb7a
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Test_EmptyAssociationName.uml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_U-RRoKiwEeSnxYSoNvE-fw" name="Model">
+ <packagedElement xmi:type="uml:Package" xmi:id="_V-Nu4Ki0EeSNMu29jvDdkA" name="Test_EmptyAssociationName">
+ <packagedElement xmi:type="uml:Association" xmi:id="_ewXhAKi0EeSNMu29jvDdkA" memberEnd="_f_m7UKi0EeSNMu29jvDdkA _mSHbMKi0EeSNMu29jvDdkA">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_f_m7UKi0EeSNMu29jvDdkA" name="First" type="_UFf1kKi7EeSNMu29jvDdkA" association="_ewXhAKi0EeSNMu29jvDdkA"/>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_mSHbMKi0EeSNMu29jvDdkA" name="Second" type="_Ws9AAKi7EeSNMu29jvDdkA" association="_ewXhAKi0EeSNMu29jvDdkA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_UFf1kKi7EeSNMu29jvDdkA" name="A"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Ws9AAKi7EeSNMu29jvDdkA" name="B"/>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_U-RRoaiwEeSnxYSoNvE-fw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rSykEoKGEeSFEt9m3bH63A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_U-RRo6iwEeSnxYSoNvE-fw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Eu1Q8LeKEeS_zZpc9I-Bsg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+</uml:Model>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Units_ActiveClass.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Units_ActiveClass.uml
new file mode 100644
index 00000000000..c0a50d93776
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Units_ActiveClass.uml
@@ -0,0 +1,242 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_CfwZ8IKHEeSFEt9m3bH63A" name="Model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_C6rbYIKHEeSFEt9m3bH63A" name="Units_ActiveClass" classifierBehavior="_C6rbs4KHEeSFEt9m3bH63A" isActive="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_C6rbtIKHEeSFEt9m3bH63A" annotatedElement="_C6rbYIKHEeSFEt9m3bH63A">
+ <body>
+ * Test active class instantiation
+ </body>
+ </ownedComment>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_C6rbpIKHEeSFEt9m3bH63A" name="Units_ActiveClass$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C6rbpYKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C6rbpoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C6rbp4KHEeSFEt9m3bH63A" name="Units_ActiveClass$initialization$1" visibility="protected" specification="_C6rbqIKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_C6rbuoKHEeSFEt9m3bH63A" annotatedElement="_C6rbp4KHEeSFEt9m3bH63A">
+ <body>activity 'Units_ActiveClass$initialization$1'(){
+ if (this.'Units_ActiveClass$initializationFlag$1' == null) {
+ this.'Units_ActiveClass$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C6rbqYKHEeSFEt9m3bH63A" name="Units_ActiveClass$method$1" specification="_C6rbrYKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_C6rbvYKHEeSFEt9m3bH63A" annotatedElement="_C6rbqYKHEeSFEt9m3bH63A">
+ <body>activity 'Units_ActiveClass$method$1'(): Units_ActiveClass {
+ this.'Units_ActiveClass$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C6rbqoKHEeSFEt9m3bH63A" type="_C6rbYIKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C6rbq4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C6rbrIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C6rbsYKHEeSFEt9m3bH63A" name="destroy$method$1" specification="_C6rbsoKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_C6rbvIKHEeSFEt9m3bH63A" annotatedElement="_C6rbsYKHEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C6rbs4KHEeSFEt9m3bH63A" name="Units_ActiveClass$behavior$1" visibility="private">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_C6rbu4KHEeSFEt9m3bH63A" annotatedElement="_C6rbs4KHEeSFEt9m3bH63A">
+ <body>activity 'Units_ActiveClass$behavior$1'() { new TestRunner().Start();
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_C6rbqIKHEeSFEt9m3bH63A" name="Units_ActiveClass$initialization$1" visibility="protected" method="_C6rbp4KHEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_C6rbrYKHEeSFEt9m3bH63A" name="Units_ActiveClass" method="_C6rbqYKHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C6rbroKHEeSFEt9m3bH63A" type="_C6rbYIKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C6rbr4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C6rbsIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_C6rbsoKHEeSFEt9m3bH63A" name="destroy" method="_C6rbsYKHEeSFEt9m3bH63A"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_C6rbYYKHEeSFEt9m3bH63A" name="C" classifierBehavior="_C6rbo4KHEeSFEt9m3bH63A" isActive="true">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_C6rbYoKHEeSFEt9m3bH63A" name="i" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C6rbY4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C6rbZIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_C6rbZYKHEeSFEt9m3bH63A" name="j" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C6rbZoKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C6rbZ4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_C6rbaIKHEeSFEt9m3bH63A" name="t" visibility="public" type="_C6rba4KHEeSFEt9m3bH63A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C6rbaYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C6rbaoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_C6rbnIKHEeSFEt9m3bH63A" name="C$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C6rbnYKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C6rbnoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C6rbkoKHEeSFEt9m3bH63A" name="C$method$1" visibility="protected" specification="_C6rbiIKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_C6rbuYKHEeSFEt9m3bH63A" annotatedElement="_C6rbkoKHEeSFEt9m3bH63A">
+ <body>activity 'C$method$1'(in i: Integer, in t: TestRunner): C {
+if (this.'C$initializationFlag$1' == null) {
+this.'C$initialization$1'();
+this.i = i; this.t = t;
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C6rbk4KHEeSFEt9m3bH63A" name="i">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C6rblIKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C6rblYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C6rbloKHEeSFEt9m3bH63A" name="t" type="_C6rba4KHEeSFEt9m3bH63A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C6rbl4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C6rbmIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C6rbmYKHEeSFEt9m3bH63A" name="" type="_C6rbYYKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C6rbmoKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C6rbm4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C6rbn4KHEeSFEt9m3bH63A" name="C$initialization$1" visibility="protected" specification="_C6rboIKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_C6rbtoKHEeSFEt9m3bH63A" annotatedElement="_C6rbn4KHEeSFEt9m3bH63A">
+ <body>activity 'C$initialization$1'(){
+ if (this.'C$initializationFlag$1' == null) {
+ this.'C$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C6rboYKHEeSFEt9m3bH63A" name="destroy$method$1" specification="_C6rbooKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_C6rbuIKHEeSFEt9m3bH63A" annotatedElement="_C6rboYKHEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C6rbo4KHEeSFEt9m3bH63A" name="C$behavior$1" visibility="private">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_C6rbvoKHEeSFEt9m3bH63A" annotatedElement="_C6rbo4KHEeSFEt9m3bH63A">
+ <body>activity 'C$behavior$1'() { $ (this.j = this.i);
+this.t.Continue();
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_C6rbiIKHEeSFEt9m3bH63A" name="C" visibility="public" method="_C6rbkoKHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C6rbiYKHEeSFEt9m3bH63A" name="i">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C6rbioKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C6rbi4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C6rbjIKHEeSFEt9m3bH63A" name="t" type="_C6rba4KHEeSFEt9m3bH63A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C6rbjYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C6rbjoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C6rbj4KHEeSFEt9m3bH63A" name="" type="_C6rbYYKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C6rbkIKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C6rbkYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_C6rboIKHEeSFEt9m3bH63A" name="C$initialization$1" visibility="protected" method="_C6rbn4KHEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_C6rbooKHEeSFEt9m3bH63A" name="destroy" method="_C6rboYKHEeSFEt9m3bH63A"/>
+ </nestedClassifier>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_C6rba4KHEeSFEt9m3bH63A" name="TestRunner" classifierBehavior="_C6rbh4KHEeSFEt9m3bH63A" isActive="true">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_C6rbdoKHEeSFEt9m3bH63A" name="TestRunner$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C6rbd4KHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C6rbeIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C6rbcoKHEeSFEt9m3bH63A" name="test$method$1" visibility="protected" specification="_C6rbboKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_C6rbwYKHEeSFEt9m3bH63A" annotatedElement="_C6rbcoKHEeSFEt9m3bH63A">
+ <body>activity 'test$method$1'(out c: C) { c = new C(1, this);
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C6rbc4KHEeSFEt9m3bH63A" name="c" type="_C6rbYYKHEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C6rbdIKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C6rbdYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C6rbeYKHEeSFEt9m3bH63A" name="TestRunner$initialization$1" visibility="protected" specification="_C6rbeoKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_C6rbwIKHEeSFEt9m3bH63A" annotatedElement="_C6rbeYKHEeSFEt9m3bH63A">
+ <body>activity 'TestRunner$initialization$1'(){
+ if (this.'TestRunner$initializationFlag$1' == null) {
+ this.'TestRunner$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C6rbe4KHEeSFEt9m3bH63A" name="TestRunner$method$1" specification="_C6rbf4KHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_C6rbv4KHEeSFEt9m3bH63A" annotatedElement="_C6rbe4KHEeSFEt9m3bH63A">
+ <body>activity 'TestRunner$method$1'(): TestRunner {
+ this.'TestRunner$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C6rbfIKHEeSFEt9m3bH63A" type="_C6rba4KHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C6rbfYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C6rbfoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C6rbg4KHEeSFEt9m3bH63A" name="destroy$method$1" specification="_C6rbhIKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_C6rbt4KHEeSFEt9m3bH63A" annotatedElement="_C6rbg4KHEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_C6rbh4KHEeSFEt9m3bH63A" name="TestRunner$behavior$1" visibility="private">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_C6rbtYKHEeSFEt9m3bH63A" annotatedElement="_C6rbh4KHEeSFEt9m3bH63A">
+ <body>activity 'TestRunner$behavior$1'() { accept (Start);
+this.test(c);
+accept (Continue);
+AssertEqual(&quot;c.j&quot;, c.j, 1);
+WriteLine(&quot;Done&quot;);
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_C6rbboKHEeSFEt9m3bH63A" name="test" visibility="public" method="_C6rbcoKHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C6rbb4KHEeSFEt9m3bH63A" name="c" type="_C6rbYYKHEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C6rbcIKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C6rbcYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_C6rbeoKHEeSFEt9m3bH63A" name="TestRunner$initialization$1" visibility="protected" method="_C6rbeYKHEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_C6rbf4KHEeSFEt9m3bH63A" name="TestRunner" method="_C6rbe4KHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_C6rbgIKHEeSFEt9m3bH63A" type="_C6rba4KHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C6rbgYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_C6rbgoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_C6rbhIKHEeSFEt9m3bH63A" name="destroy" method="_C6rbg4KHEeSFEt9m3bH63A"/>
+ <nestedClassifier xmi:type="uml:Signal" xmi:id="_C6rbbIKHEeSFEt9m3bH63A" name="Start"/>
+ <nestedClassifier xmi:type="uml:Signal" xmi:id="_C6rbbYKHEeSFEt9m3bH63A" name="Continue"/>
+ <ownedReception xmi:type="uml:Reception" xmi:id="_C6rbhYKHEeSFEt9m3bH63A" name="Start" visibility="public" signal="_C6rbbIKHEeSFEt9m3bH63A"/>
+ <ownedReception xmi:type="uml:Reception" xmi:id="_C6rbhoKHEeSFEt9m3bH63A" name="Continue" visibility="public" signal="_C6rbbYKHEeSFEt9m3bH63A"/>
+ </nestedClassifier>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_CfwZ8YKHEeSFEt9m3bH63A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CfwZ8oKHEeSFEt9m3bH63A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_eTvm4LeQEeS_zZpc9I-Bsg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eTvm4beQEeS_zZpc9I-Bsg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <standard:Destroy xmi:id="_C6sCcIKHEeSFEt9m3bH63A" base_BehavioralFeature="_C6rbsoKHEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C6sCcYKHEeSFEt9m3bH63A" base_Comment="_C6rbtoKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C6sCcoKHEeSFEt9m3bH63A" base_Comment="_C6rbtYKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C6sCc4KHEeSFEt9m3bH63A" base_Comment="_C6rbu4KHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C6sCdIKHEeSFEt9m3bH63A" base_Comment="_C6rbvIKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C6sCdYKHEeSFEt9m3bH63A" base_Comment="_C6rbv4KHEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Create xmi:id="_C6sCdoKHEeSFEt9m3bH63A" base_BehavioralFeature="_C6rbrYKHEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C6sCd4KHEeSFEt9m3bH63A" base_Comment="_C6rbuoKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C6sCeIKHEeSFEt9m3bH63A" base_Comment="_C6rbuIKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C6sCeYKHEeSFEt9m3bH63A" base_Comment="_C6rbt4KHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C6sCeoKHEeSFEt9m3bH63A" base_Comment="_C6rbwIKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C6sCe4KHEeSFEt9m3bH63A" base_Comment="_C6rbwYKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C6sCfIKHEeSFEt9m3bH63A" base_Comment="_C6rbvoKHEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Destroy xmi:id="_C6sCfYKHEeSFEt9m3bH63A" base_BehavioralFeature="_C6rbooKHEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C6sCfoKHEeSFEt9m3bH63A" base_Comment="_C6rbuYKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_C6sCf4KHEeSFEt9m3bH63A" base_Comment="_C6rbvYKHEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Create xmi:id="_C6sCgIKHEeSFEt9m3bH63A" base_BehavioralFeature="_C6rbf4KHEeSFEt9m3bH63A"/>
+ <standard:Create xmi:id="_C6sCgYKHEeSFEt9m3bH63A" base_BehavioralFeature="_C6rbiIKHEeSFEt9m3bH63A"/>
+ <standard:Destroy xmi:id="_C6sCgoKHEeSFEt9m3bH63A" base_BehavioralFeature="_C6rbhIKHEeSFEt9m3bH63A"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Units_Map.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Units_Map.uml
new file mode 100644
index 00000000000..939790c5917
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Units_Map.uml
@@ -0,0 +1,244 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_C7BZoIKHEeSFEt9m3bH63A" name="Model">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_zFtp4LekEeS3ed40DpSXCw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Class" xmi:id="_DY62kIKHEeSFEt9m3bH63A" name="Units_Map" classifierBehavior="_DY625YKHEeSFEt9m3bH63A" isActive="true">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_DY62tIKHEeSFEt9m3bH63A" name="listeners" visibility="public" type="_DY62t4KHEeSFEt9m3bH63A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DY62tYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DY62toKHEeSFEt9m3bH63A" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_DY62u4KHEeSFEt9m3bH63A" behavior="_DY62vIKHEeSFEt9m3bH63A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_DY621oKHEeSFEt9m3bH63A" name="Units_Map$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DY6214KHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DY622IKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_DY62x4KHEeSFEt9m3bH63A" name="register$method$1" visibility="protected" specification="_DY62wIKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_DY6254KHEeSFEt9m3bH63A" annotatedElement="_DY62x4KHEeSFEt9m3bH63A">
+ <body>activity 'register$method$1'(in listener: Listener, in id: Integer) { { this.listeners.put(id, listener);
+} }</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DY62yIKHEeSFEt9m3bH63A" name="listener" type="_DY62kYKHEeSFEt9m3bH63A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DY62yYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DY62yoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DY62y4KHEeSFEt9m3bH63A" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DY62zIKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DY62zYKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_DY620oKHEeSFEt9m3bH63A" name="test$method$1" visibility="protected" specification="_DY62zoKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_DY6274KHEeSFEt9m3bH63A" annotatedElement="_DY620oKHEeSFEt9m3bH63A">
+ <body>activity 'test$method$1'(out listener: Listener) { listener = new Listener(&quot;Listener&quot;);
+this.register(listener, 1);
+listener = this.listeners.get(1);
+listener.notify();
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DY6204KHEeSFEt9m3bH63A" name="listener" type="_DY62kYKHEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DY621IKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DY621YKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_DY62vIKHEeSFEt9m3bH63A" name="listeners$defaultValue$1">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_DY627YKHEeSFEt9m3bH63A" annotatedElement="_DY62vIKHEeSFEt9m3bH63A">
+ <body>activity 'listeners$defaultValue$1'(): '$$Alf$Library$CollectionClasses$Map__PrimitiveTypes$Integer_Units_Map$Listener__' {
+ return new();
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DY62vYKHEeSFEt9m3bH63A" type="_DY62t4KHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DY62voKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DY62v4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_DY622YKHEeSFEt9m3bH63A" name="Units_Map$initialization$1" visibility="protected" specification="_DY622oKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_DY626IKHEeSFEt9m3bH63A" annotatedElement="_DY622YKHEeSFEt9m3bH63A">
+ <body>activity 'Units_Map$initialization$1'(){
+ if (this.'Units_Map$initializationFlag$1' == null) {
+ this.listeners = 'listeners$defaultValue$1'();
+ this.'Units_Map$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_DY6224KHEeSFEt9m3bH63A" name="Units_Map$method$1" specification="_DY6234KHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_DY627IKHEeSFEt9m3bH63A" annotatedElement="_DY6224KHEeSFEt9m3bH63A">
+ <body>activity 'Units_Map$method$1'(): Units_Map {
+ this.'Units_Map$initialization$1'();
+ return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DY623IKHEeSFEt9m3bH63A" type="_DY62kIKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DY623YKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DY623oKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_DY6244KHEeSFEt9m3bH63A" name="destroy$method$1" specification="_DY625IKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_DY627oKHEeSFEt9m3bH63A" annotatedElement="_DY6244KHEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_DY625YKHEeSFEt9m3bH63A" name="Units_Map$behavior$1" visibility="private">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_DY626oKHEeSFEt9m3bH63A" annotatedElement="_DY625YKHEeSFEt9m3bH63A">
+ <body>activity 'Units_Map$behavior$1'() { this.test(listener);
+AssertEqual(&quot;listener.notifications&quot;, listener.notifications, 1);
+WriteLine(&quot;Done&quot;);
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_DY62wIKHEeSFEt9m3bH63A" name="register" visibility="public" method="_DY62x4KHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DY62wYKHEeSFEt9m3bH63A" name="listener" type="_DY62kYKHEeSFEt9m3bH63A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DY62woKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DY62w4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DY62xIKHEeSFEt9m3bH63A" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DY62xYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DY62xoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_DY62zoKHEeSFEt9m3bH63A" name="test" visibility="public" method="_DY620oKHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DY62z4KHEeSFEt9m3bH63A" name="listener" type="_DY62kYKHEeSFEt9m3bH63A" direction="out">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DY620IKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DY620YKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_DY622oKHEeSFEt9m3bH63A" name="Units_Map$initialization$1" visibility="protected" method="_DY622YKHEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_DY6234KHEeSFEt9m3bH63A" name="Units_Map" method="_DY6224KHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DY624IKHEeSFEt9m3bH63A" type="_DY62kIKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DY624YKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DY624oKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_DY625IKHEeSFEt9m3bH63A" name="destroy" method="_DY6244KHEeSFEt9m3bH63A"/>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_DY62kYKHEeSFEt9m3bH63A" name="Listener">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_DY62koKHEeSFEt9m3bH63A" name="name" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DY62k4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DY62lIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_DY62lYKHEeSFEt9m3bH63A" name="notifications" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DY62loKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DY62l4KHEeSFEt9m3bH63A" value="1"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_DY62mIKHEeSFEt9m3bH63A" behavior="_DY62mYKHEeSFEt9m3bH63A"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_DY62rYKHEeSFEt9m3bH63A" name="Listener$initializationFlag$1" visibility="protected">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DY62roKHEeSFEt9m3bH63A"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DY62r4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_DY62pIKHEeSFEt9m3bH63A" name="Listener$method$1" visibility="protected" specification="_DY62nYKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_DY628YKHEeSFEt9m3bH63A" annotatedElement="_DY62pIKHEeSFEt9m3bH63A">
+ <body>activity 'Listener$method$1'(in name: String): Listener {
+if (this.'Listener$initializationFlag$1' == null) {
+this.'Listener$initialization$1'();
+this.name = name;
+}
+return this;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DY62pYKHEeSFEt9m3bH63A" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DY62poKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DY62p4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DY62qIKHEeSFEt9m3bH63A" name="" type="_DY62kYKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DY62qYKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DY62qoKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_DY62rIKHEeSFEt9m3bH63A" name="notify$method$1" visibility="protected" specification="_DY62q4KHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_DY626YKHEeSFEt9m3bH63A" annotatedElement="_DY62rIKHEeSFEt9m3bH63A">
+ <body>activity 'notify$method$1'() { ++ this.notifications;
+}</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_DY62mYKHEeSFEt9m3bH63A" name="notifications$defaultValue$1">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_DY625oKHEeSFEt9m3bH63A" annotatedElement="_DY62mYKHEeSFEt9m3bH63A">
+ <body>activity 'notifications$defaultValue$1'(): Integer {
+ return 0;
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DY62moKHEeSFEt9m3bH63A" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DY62m4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DY62nIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_DY62sIKHEeSFEt9m3bH63A" name="Listener$initialization$1" visibility="protected" specification="_DY62sYKHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_DY628IKHEeSFEt9m3bH63A" annotatedElement="_DY62sIKHEeSFEt9m3bH63A">
+ <body>activity 'Listener$initialization$1'(){
+ if (this.'Listener$initializationFlag$1' == null) {
+ this.notifications = 'notifications$defaultValue$1'();
+ this.'Listener$initializationFlag$1' = true;
+ }
+}
+</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_DY62soKHEeSFEt9m3bH63A" name="destroy$method$1" specification="_DY62s4KHEeSFEt9m3bH63A">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_DY6264KHEeSFEt9m3bH63A" annotatedElement="_DY62soKHEeSFEt9m3bH63A">
+ <body>activity 'destroy$method$1'() { }</body>
+ </ownedComment>
+ </ownedBehavior>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_DY62nYKHEeSFEt9m3bH63A" name="Listener" visibility="public" method="_DY62pIKHEeSFEt9m3bH63A">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DY62noKHEeSFEt9m3bH63A" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DY62n4KHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DY62oIKHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_DY62oYKHEeSFEt9m3bH63A" name="" type="_DY62kYKHEeSFEt9m3bH63A" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DY62ooKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DY62o4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_DY62q4KHEeSFEt9m3bH63A" name="notify" visibility="public" method="_DY62rIKHEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_DY62sYKHEeSFEt9m3bH63A" name="Listener$initialization$1" visibility="protected" method="_DY62sIKHEeSFEt9m3bH63A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_DY62s4KHEeSFEt9m3bH63A" name="destroy" method="_DY62soKHEeSFEt9m3bH63A"/>
+ </nestedClassifier>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_DY62t4KHEeSFEt9m3bH63A" name="$$Alf$Library$CollectionClasses$Map__PrimitiveTypes$Integer_Units_Map$Listener__">
+ <templateBinding xmi:type="uml:TemplateBinding" xmi:id="_DY62uIKHEeSFEt9m3bH63A">
+ <parameterSubstitution xmi:type="uml:TemplateParameterSubstitution" xmi:id="_DY62uYKHEeSFEt9m3bH63A">
+ <actual xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <formal xmi:type="uml:ClassifierTemplateParameter" href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf-Library-CollectionClasses-Map-ownedTemplateSignature-ownedParameter-1"/>
+ </parameterSubstitution>
+ <parameterSubstitution xmi:type="uml:TemplateParameterSubstitution" xmi:id="_DY62uoKHEeSFEt9m3bH63A" actual="_DY62kYKHEeSFEt9m3bH63A">
+ <formal xmi:type="uml:ClassifierTemplateParameter" href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf-Library-CollectionClasses-Map-ownedTemplateSignature-ownedParameter-2"/>
+ </parameterSubstitution>
+ <signature xmi:type="uml:RedefinableTemplateSignature" href="pathmap://PAPYRUS_ALF_LIBRARY/Alf.library.uml#Alf-Library-CollectionClasses-Map-ownedTemplateSignature"/>
+ </templateBinding>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_C7BZoYKHEeSFEt9m3bH63A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_C7BZooKHEeSFEt9m3bH63A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_jFhT1reQEeS_zZpc9I-Bsg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jFh64LeQEeS_zZpc9I-Bsg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <ActionLanguage:TextualRepresentation xmi:id="_DY628oKHEeSFEt9m3bH63A" base_Comment="_DY627oKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_DY6284KHEeSFEt9m3bH63A" base_Comment="_DY6264KHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_DY629IKHEeSFEt9m3bH63A" base_Comment="_DY626IKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_DY629YKHEeSFEt9m3bH63A" base_Comment="_DY628YKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_DY629oKHEeSFEt9m3bH63A" base_Comment="_DY626oKHEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Destroy xmi:id="_DY6294KHEeSFEt9m3bH63A" base_BehavioralFeature="_DY625IKHEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_DY62-IKHEeSFEt9m3bH63A" base_Comment="_DY626YKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_DY62-YKHEeSFEt9m3bH63A" base_Comment="_DY627IKHEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Destroy xmi:id="_DY62-oKHEeSFEt9m3bH63A" base_BehavioralFeature="_DY62s4KHEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_DY62-4KHEeSFEt9m3bH63A" base_Comment="_DY6254KHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_DY62_IKHEeSFEt9m3bH63A" base_Comment="_DY627YKHEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Create xmi:id="_DY62_YKHEeSFEt9m3bH63A" base_BehavioralFeature="_DY62nYKHEeSFEt9m3bH63A"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_DY62_oKHEeSFEt9m3bH63A" base_Comment="_DY6274KHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_DY62_4KHEeSFEt9m3bH63A" base_Comment="_DY625oKHEeSFEt9m3bH63A" language="Alf"/>
+ <ActionLanguage:TextualRepresentation xmi:id="_DY63AIKHEeSFEt9m3bH63A" base_Comment="_DY628IKHEeSFEt9m3bH63A" language="Alf"/>
+ <standard:Create xmi:id="_DY63AYKHEeSFEt9m3bH63A" base_BehavioralFeature="_DY6234KHEeSFEt9m3bH63A"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Write.uml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Write.uml
new file mode 100644
index 00000000000..4dada313159
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/UML/Write.uml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ActionLanguage="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.omg.org/spec/ALF/20120827/ActionLanguage-Profile pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ">
+ <uml:Model xmi:id="_DZSqAIKHEeSFEt9m3bH63A" name="Model">
+ <packagedElement xmi:type="uml:Activity" xmi:id="_Dc9CAIKHEeSFEt9m3bH63A" name="Write" visibility="protected">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Dc9CBIKHEeSFEt9m3bH63A" annotatedElement="_Dc9CAIKHEeSFEt9m3bH63A">
+ <body>activity Write(in value: any) { StandardOutputChannel.allInstances ()[1].write(value);
+}</body>
+ </ownedComment>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Dc9CAYKHEeSFEt9m3bH63A" name="value">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Dc9CAoKHEeSFEt9m3bH63A" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Dc9CA4KHEeSFEt9m3bH63A" value="1"/>
+ </ownedParameter>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_DZSqAYKHEeSFEt9m3bH63A">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DZSqAoKHEeSFEt9m3bH63A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_nz6VkLeQEeS_zZpc9I-Bsg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nz6VkbeQEeS_zZpc9I-Bsg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+ </uml:Model>
+ <ActionLanguage:TextualRepresentation xmi:id="_Dc9CBYKHEeSFEt9m3bH63A" base_Comment="_Dc9CBIKHEeSFEt9m3bH63A" language="Alf"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/about.html b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/build.properties b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/build.properties
new file mode 100644
index 00000000000..dbdf105ff1e
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/build.properties
@@ -0,0 +1,11 @@
+source.. = src/,\
+ src-gen/,\
+ xtend-gen/
+bin.includes = META-INF/,\
+ .,\
+ bin/,\
+ Alf/,\
+ UML/,\
+ about.html
+src.includes = about.html
+output..=bin/
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/pom.xml b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/pom.xml
new file mode 100644
index 00000000000..b74a281d51a
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.1.0-SNAPSHOT</version>
+ <relativePath>../../../../../../releng/top-pom-main-tests.xml</relativePath>
+ </parent>
+ <artifactId>org.eclipse.papyrus.uml.alf.tests</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>1.1.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project> \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src-gen/org/eclipse/papyrus/uml/alf/AlfInjectorProvider.java b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src-gen/org/eclipse/papyrus/uml/alf/AlfInjectorProvider.java
new file mode 100644
index 00000000000..3e0cff1455b
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src-gen/org/eclipse/papyrus/uml/alf/AlfInjectorProvider.java
@@ -0,0 +1,45 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.papyrus.uml.alf;
+
+import org.eclipse.xtext.junit4.GlobalRegistries;
+import org.eclipse.xtext.junit4.GlobalRegistries.GlobalStateMemento;
+import org.eclipse.xtext.junit4.IInjectorProvider;
+import org.eclipse.xtext.junit4.IRegistryConfigurator;
+
+import com.google.inject.Injector;
+
+public class AlfInjectorProvider implements IInjectorProvider, IRegistryConfigurator {
+
+ protected GlobalStateMemento stateBeforeInjectorCreation;
+ protected GlobalStateMemento stateAfterInjectorCreation;
+ protected Injector injector;
+
+ static {
+ GlobalRegistries.initializeDefaults();
+ }
+
+ public Injector getInjector()
+ {
+ if (injector == null) {
+ stateBeforeInjectorCreation = GlobalRegistries.makeCopyOfGlobalState();
+ this.injector = internalCreateInjector();
+ stateAfterInjectorCreation = GlobalRegistries.makeCopyOfGlobalState();
+ }
+ return injector;
+ }
+
+ protected Injector internalCreateInjector() {
+ return new AlfStandaloneSetup().createInjectorAndDoEMFRegistration();
+ }
+
+ public void restoreRegistry() {
+ stateBeforeInjectorCreation.restoreGlobalState();
+ }
+
+ public void setupRegistry() {
+ getInjector();
+ stateAfterInjectorCreation.restoreGlobalState();
+ }
+}
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src-gen/org/eclipse/papyrus/uml/alf/AlfUiInjectorProvider.java b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src-gen/org/eclipse/papyrus/uml/alf/AlfUiInjectorProvider.java
new file mode 100644
index 00000000000..5c3c6e10aac
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src-gen/org/eclipse/papyrus/uml/alf/AlfUiInjectorProvider.java
@@ -0,0 +1,16 @@
+/*
+ * generated by Xtext
+ */
+package org.eclipse.papyrus.uml.alf;
+
+import org.eclipse.xtext.junit4.IInjectorProvider;
+
+import com.google.inject.Injector;
+
+public class AlfUiInjectorProvider implements IInjectorProvider {
+
+ public Injector getInjector() {
+ return org.eclipse.papyrus.uml.alf.ui.internal.AlfActivator.getInstance().getInjector("org.eclipse.papyrus.alf.integration.Alf");
+ }
+
+}
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/Parse.xtend b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/Parse.xtend
new file mode 100644
index 00000000000..ce653d77248
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/Parse.xtend
@@ -0,0 +1,69 @@
+/*****************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * MDS - Initial implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.alf.tests
+
+import org.eclipse.emf.common.util.URI
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.papyrus.uml.alf.UnitDefinition
+import org.eclipse.xtext.resource.XtextResourceSet
+import java.io.IOException
+import org.eclipse.papyrus.uml.alf.AlfStandaloneSetup
+
+class Parse {
+
+ static String testDirectory = "tests"
+ static String testFile = "TestClass"
+
+ static protected ResourceSet resourceSet
+
+ def static UnitDefinition parseFile(ResourceSet resourceSet, String path) {
+ var unit = null as UnitDefinition;
+ System.out.println(path + "...")
+ val resource = resourceSet.getResource(URI.createFileURI(path), true)
+ unit = resource.getContents().get(0) as UnitDefinition
+ resource.unload()
+ return unit
+ }
+
+ def static void main(String[] args) {
+ AlfStandaloneSetup.doSetup()
+
+ resourceSet = new XtextResourceSet()
+
+ testDirectory = System.getProperty("test.directory", testDirectory)
+ testFile = System.getProperty("test.file", testFile)
+
+ if (testFile.endsWith(".alf")) {
+ testFile = testFile.substring(0, testFile.length-4)
+ }
+
+ val path = testDirectory + "/" + testFile
+
+ val unit = parseFile(resourceSet, path + ".alf")
+
+ if (unit == null) {
+ System.out.println("PARSE FAILED")
+ } else {
+ val resource = resourceSet.createResource(URI.createFileURI(path + ".ecore"));
+ resource.getContents().add(unit);
+ try {
+ resource.save(null)
+ } catch (IOException e) {
+ System.out.println("SAVE FAILED")
+ }
+ }
+ }
+
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/ParserTest.xtend b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/ParserTest.xtend
new file mode 100644
index 00000000000..7431d1ee078
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/ParserTest.xtend
@@ -0,0 +1,100 @@
+/*****************************************************************************
+ * Copyright (c) 2013, 2014 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ed Seidewitz (IJI) - Initial implementation
+ * Ed Seidewitz (MDS) - Updated for Luna
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.alf.tests
+
+import java.io.File
+import org.eclipse.emf.common.util.Diagnostic
+import org.eclipse.emf.common.util.URI
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.papyrus.uml.alf.UnitDefinition
+import org.eclipse.papyrus.uml.alf.CachingDiagnostician
+
+abstract class ParserTest {
+
+ def int parseDirectory(ResourceSet resourceSet, String directoryPath, boolean validate) {
+ var failures = 0;
+ System.out.println("Directory " + directoryPath + ":")
+ val directory = new File(directoryPath)
+ for (file : directory.listFiles()) {
+ failures = failures + this.parseFile(resourceSet, file, validate)
+ }
+ System.out.println()
+ return failures
+ }
+
+ def int parseFile(ResourceSet resourceSet, File file, boolean validate) {
+ var failures = 0;
+ val name = file.name;
+ val l = name.length
+ if (name.substring(l - 4, l).equals(".alf")) {
+ System.out.print(name + ": ")
+ val resource = resourceSet.getResource(URI.createFileURI(file.path), true)
+ failures = parseResource(resource, validate)
+ resource.unload()
+ }
+ return failures
+ }
+
+ def int parseResource(Resource resource, boolean validate) {
+ var failures = 0
+ val unit = resource.getContents().get(0) as UnitDefinition
+ if (unit == null) {
+ System.out.println("PARSE FAILED")
+ failures = failures + 1
+ } else {
+ val definition = unit.definition
+ if (definition == null) {
+ System.out.println("NO DEFINITION")
+ failures = failures + 1
+ } else {
+ System.out.println(definition.class.simpleName + " " + definition.actualName);
+ val errors = resource.getErrors()
+ if (errors.size() > 0) {
+ failures = failures + 1
+ System.out.println("SYNTACTIC ERRORS:");
+ for (error: errors) {
+ System.out.println(error)
+ }
+ System.out.println();
+ } else if (validate) {
+ val diagnostic = new CachingDiagnostician().validate(unit)
+ if (diagnostic.severity == Diagnostic.ERROR) {
+ failures = failures + 1;
+ System.out.println("SEMANTIC ERRORS:")
+ for (child: diagnostic.children) {
+ System.out.println(child.class.simpleName + ": " + child.message);
+ var exception = child.exception;
+ if (exception != null) {
+ var cause = exception.cause
+ while (cause != null && cause != exception) {
+ System.out.println("Caused by: " + cause.class.name)
+ System.out.println(cause.message)
+ exception = cause;
+ cause = exception.cause;
+ }
+ System.out.println()
+ }
+ }
+ System.out.println();
+ }
+ }
+ }
+ }
+ return failures
+ }
+
+}
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SemanticTest.xtend b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SemanticTest.xtend
new file mode 100644
index 00000000000..7f1e1eab472
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SemanticTest.xtend
@@ -0,0 +1,76 @@
+/*****************************************************************************
+ * Copyright (c) 2013, 2014 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IJI - Initial implementation
+ * MDS - Update for Luna
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.alf.tests
+
+import org.eclipse.xtext.junit4.XtextRunner
+import org.junit.runner.RunWith
+
+import static org.junit.Assert.*
+import org.junit.Test
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.xtext.resource.XtextResourceSet
+import org.eclipse.ocl.examples.pivot.OCL
+import org.eclipse.ocl.examples.pivot.model.OCLstdlib
+import org.eclipse.ocl.examples.pivot.delegate.OCLDelegateDomain
+import org.eclipse.ocl.examples.xtext.oclinecore.OCLinEcoreStandaloneSetup
+import org.eclipse.ocl.examples.xtext.oclstdlib.OCLstdlibStandaloneSetup
+import org.junit.BeforeClass
+import org.eclipse.xtext.junit4.InjectWith
+import org.junit.AfterClass
+import org.eclipse.papyrus.uml.alf.AlfInjectorProvider
+import org.eclipse.papyrus.uml.alf.impl.ModelNamespaceImpl
+import org.eclipse.papyrus.uml.alf.tests.utils.ContextModelArea
+
+@InjectWith(AlfInjectorProvider)
+@RunWith(XtextRunner)
+// @FixMethodOrder(MethodSorters.NAME_ASCENDING)
+class SemanticTest extends ParserTest {
+
+ static final public String TEST_DIRECTORY = "./tests"
+
+ static protected ResourceSet resourceSet
+ static protected String testDirectory;
+
+ @BeforeClass
+ static def void setUp() {
+ resourceSet = new XtextResourceSet()
+
+ OCL.initialize(resourceSet);
+ //UML2Pivot.initialize(resourceSet)
+ OCLstdlib.install();
+ OCLDelegateDomain.initialize(resourceSet)
+ OCLinEcoreStandaloneSetup.doSetup()
+ OCLstdlibStandaloneSetup.doSetup()
+
+ var modelArea = new ContextModelArea("Model")
+ ModelNamespaceImpl.setContext(modelArea.getModel);
+
+ testDirectory = System.getProperty("test.directory", TEST_DIRECTORY)
+ }
+
+ @Test
+ def void testStaticSemantics() {
+ System.out.print("[SemanticTest] ")
+ val failures = parseDirectory(resourceSet, testDirectory, true);
+ assertEquals(0, failures)
+ }
+
+ @AfterClass
+ static def void cleanUp() {
+ resourceSet = null;
+ }
+
+}
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SingleTest.xtend b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SingleTest.xtend
new file mode 100644
index 00000000000..9374aa64f21
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SingleTest.xtend
@@ -0,0 +1,77 @@
+/*****************************************************************************
+ * Copyright (c) 2013, 2014 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IJI - Initial implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.alf.tests
+
+import java.io.File
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.eclipse.ocl.examples.pivot.OCL
+import org.eclipse.ocl.examples.pivot.delegate.OCLDelegateDomain
+import org.eclipse.ocl.examples.pivot.model.OCLstdlib
+import org.eclipse.ocl.examples.xtext.oclstdlib.OCLstdlibStandaloneSetup
+import org.eclipse.papyrus.uml.alf.AlfInjectorProvider
+import org.eclipse.xtext.junit4.InjectWith
+import org.eclipse.xtext.junit4.XtextRunner
+import org.eclipse.xtext.resource.XtextResourceSet
+import org.junit.AfterClass
+import org.junit.BeforeClass
+import org.junit.Test
+import org.junit.runner.RunWith
+
+import static org.junit.Assert.*
+import org.eclipse.papyrus.uml.alf.impl.ModelNamespaceImpl
+import org.eclipse.papyrus.uml.alf.tests.utils.ContextModelArea
+
+@InjectWith(AlfInjectorProvider)
+@RunWith(XtextRunner)
+// @FixMethodOrder(MethodSorters.NAME_ASCENDING)
+class SingleTest extends ParserTest {
+
+ static String testDirectory = "tests"
+ static String testFile = "TestClass.alf"
+
+ static protected ResourceSet resourceSet
+
+ @BeforeClass
+ static def void setUp() {
+ resourceSet = new XtextResourceSet()
+
+ OCL.initialize(resourceSet);
+ //UML2Pivot.initialize(resourceSet)
+ OCLstdlib.install();
+ OCLDelegateDomain.initialize(resourceSet)
+ OCLstdlibStandaloneSetup.doSetup()
+
+ var modelArea = new ContextModelArea("Model")
+ ModelNamespaceImpl.setContext(modelArea.getModel);
+
+ testDirectory = System.getProperty("test.directory", testDirectory)
+ testFile = System.getProperty("test.file", testFile)
+ }
+
+ // @Ignore
+ @Test
+ def void testOneFile() {
+ System.out.print("[SingleTest] ");
+ val failures = parseFile(resourceSet, new File(testDirectory + "/" + testFile), true);
+ System.out.println()
+ assertEquals(0, failures)
+ }
+
+ @AfterClass
+ static def void cleanUp() {
+ resourceSet = null;
+ }
+
+}
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SyntacticTest.xtend b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SyntacticTest.xtend
new file mode 100644
index 00000000000..41e588122c4
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/SyntacticTest.xtend
@@ -0,0 +1,70 @@
+/*****************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IJI - Initial implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.alf.tests
+
+import org.eclipse.xtext.junit4.XtextRunner
+import org.junit.runner.RunWith
+
+import static org.junit.Assert.*
+import org.junit.Test
+import org.eclipse.emf.ecore.resource.ResourceSet
+import org.junit.BeforeClass
+import org.eclipse.xtext.resource.XtextResourceSet
+import org.eclipse.ocl.examples.pivot.OCL
+import org.eclipse.ocl.examples.pivot.model.OCLstdlib
+import org.eclipse.ocl.examples.pivot.delegate.OCLDelegateDomain
+import org.eclipse.ocl.examples.xtext.oclinecore.OCLinEcoreStandaloneSetup
+import org.eclipse.ocl.examples.xtext.oclstdlib.OCLstdlibStandaloneSetup
+import org.eclipse.xtext.junit4.InjectWith
+import org.eclipse.papyrus.uml.alf.AlfInjectorProvider
+import org.junit.AfterClass
+
+@InjectWith(AlfInjectorProvider)
+@RunWith(XtextRunner)
+// @FixMethodOrder(MethodSorters.NAME_ASCENDING)
+class SyntacticTest extends ParserTest {
+
+ static final public String TEST_DIRECTORY = "./tests"
+
+ static protected ResourceSet resourceSet
+ static protected String testDirectory;
+
+ @BeforeClass
+ static def void setUp() {
+ resourceSet = new XtextResourceSet()
+
+ OCL.initialize(resourceSet);
+ // UML2Pivot.initialize(resourceSet)
+ OCLstdlib.install();
+ OCLDelegateDomain.initialize(null)
+ OCLinEcoreStandaloneSetup.doSetup()
+ OCLstdlibStandaloneSetup.doSetup()
+
+ testDirectory = System.getProperty("test.directory", TEST_DIRECTORY)
+ }
+
+ @Test
+ def void testSyntax() {
+ System.out.print("[SyntacticTest] ")
+ val failures = parseDirectory(resourceSet, testDirectory, false);
+ assertEquals(0, failures)
+ }
+
+ @AfterClass
+ static def void cleanUp() {
+ resourceSet = null;
+ }
+
+}
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/generator/AlfGenerator.java b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/generator/AlfGenerator.java
new file mode 100644
index 00000000000..cbd771ff650
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/generator/AlfGenerator.java
@@ -0,0 +1,166 @@
+/*****************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ed Seidewitz (MDS) - Initial implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.alf.tests.generator;
+
+import java.io.FileWriter;
+import java.io.PrintWriter;
+import java.util.List;
+
+import org.eclipse.emf.common.CommonPlugin;
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.URIConverter;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.m2m.qvt.oml.BasicModelExtent;
+import org.eclipse.m2m.qvt.oml.ExecutionContextImpl;
+import org.eclipse.m2m.qvt.oml.ExecutionDiagnostic;
+import org.eclipse.m2m.qvt.oml.ModelExtent;
+import org.eclipse.m2m.qvt.oml.TransformationExecutor;
+import org.eclipse.papyrus.uml.alf.AlfStandaloneSetup;
+import org.eclipse.papyrus.uml.alf.MappingError;
+import org.eclipse.papyrus.uml.alf.tests.generator.AlfGenerator;
+import org.eclipse.uml2.uml.resources.util.UMLResourcesUtil;
+import org.eclipse.xtext.resource.SaveOptions;
+import org.eclipse.xtext.serializer.ISerializer;
+
+import com.google.inject.Injector;
+
+public class AlfGenerator {
+
+ static final public String QVT_PATH =
+ "org.eclipse.papyrus.uml.alf.to.fuml/transformation/UML2Alf.qvto";
+ static final private SaveOptions options =
+ SaveOptions.newBuilder().format().noValidation().getOptions();
+
+
+ protected TransformationExecutor executor;
+ protected ExecutionContextImpl context;
+ protected ISerializer serializer;
+
+ protected ResourceSet resourceSet;
+
+ public AlfGenerator() {
+ String base = CommonPlugin.getPlugin() == null ?
+ System.getProperty("qvt.base") + "/" : "platform:/plugin/";
+ this.executor = new TransformationExecutor(
+ URIConverter.INSTANCE.normalize(URI.createURI(base + QVT_PATH)));
+
+ this.context = new ExecutionContextImpl();
+ this.context.setConfigProperty("keepModeling", true);
+
+ Injector injector = new AlfStandaloneSetup().createInjectorAndDoEMFRegistration();
+ this.serializer = injector.getInstance(ISerializer.class);
+
+ this.resourceSet = new ResourceSetImpl();
+ UMLResourcesUtil.init(this.resourceSet);
+ }
+
+ public List<EObject> transform(List<? extends EObject> uml) throws MappingError {
+ ModelExtent input = new BasicModelExtent(uml);
+ ModelExtent output = new BasicModelExtent();
+
+ ExecutionDiagnostic diagnostic =
+ this.executor.execute(this.context, input, output);
+
+ if (diagnostic.getSeverity() == Diagnostic.OK) {
+ return output.getContents();
+ } else {
+ throw new MappingError(diagnostic);
+ }
+ }
+
+ public String generate(List<? extends EObject> uml) throws MappingError {
+ List<EObject> alf = this.transform(uml);
+ if (alf.isEmpty()) {
+ return "";
+ } else {
+ try {
+ return serializer.serialize(alf.get(0), options);
+ } catch (RuntimeException e) {
+ throw new MappingError(e);
+ }
+ }
+ }
+
+ public Resource getResource(String path) {
+ return this.resourceSet.getResource(URI.createFileURI(path), true);
+ }
+
+ public static String addSlash(String directory) {
+ if (directory.charAt(directory.length() - 1) != '/') {
+ return directory + "/";
+ } else {
+ return directory;
+ }
+ }
+
+ public static String removeExtension(String fileName) {
+ final int l = fileName.length();
+ if (l > 4 && fileName.substring(l - 4, l).equals(".uml")) {
+ return fileName.substring(0, l - 4);
+ } else {
+ return fileName;
+ }
+ }
+
+ public static void main(String[] args) {
+ if (args.length >= 3) {
+ final String inputDirectory = addSlash(args[0]);
+ final String outputDirectory = addSlash(args[1]);
+ final String fileName = removeExtension(args[2]);
+
+ Resource inputResource = null;
+ PrintWriter output = null;
+
+ try {
+ AlfGenerator generator = new AlfGenerator();
+
+ String path = inputDirectory + fileName + ".uml";
+ System.out.println("Reading from " + path + "...");
+ inputResource = generator.getResource(path);
+
+ path = outputDirectory + fileName + ".alf";
+ String text = generator.generate(inputResource.getContents());
+
+ System.out.println("Writing to " + path + "...");
+ output = new PrintWriter(new FileWriter(path));
+ output.print(text);
+
+ } catch (MappingError e) {
+ ExecutionDiagnostic diagnostic = e.getDiagnostic();
+ if (diagnostic != null) {
+ System.out.println(BasicDiagnostic.toIStatus(diagnostic));
+ diagnostic.printStackTrace(new PrintWriter(System.out));
+ } else {
+ e.getCause().printStackTrace();
+ ;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ if (inputResource != null) {
+ inputResource.unload();
+ }
+ if (output != null) {
+ output.close();
+ }
+ }
+ }
+ }
+
+}
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/generator/GenerationTest.xtend b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/generator/GenerationTest.xtend
new file mode 100644
index 00000000000..88bd31e5594
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/generator/GenerationTest.xtend
@@ -0,0 +1,89 @@
+/*****************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ed Seidewitz (MDS) - Initial implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.alf.tests.generator
+
+import org.eclipse.xtext.junit4.XtextRunner
+import org.junit.runner.RunWith
+
+import static org.junit.Assert.*
+
+import org.junit.Test
+import org.junit.BeforeClass
+import java.io.IOException
+import org.eclipse.emf.common.util.BasicDiagnostic
+import java.io.File
+import org.eclipse.papyrus.uml.alf.MappingError
+import org.eclipse.papyrus.uml.alf.tests.ParserTest
+import org.eclipse.papyrus.uml.alf.tests.generator.AlfGenerator
+import java.io.PrintWriter
+import java.io.FileWriter
+
+@RunWith(XtextRunner)
+class GenerationTest extends ParserTest {
+
+ static final public String ALF_DIRECTORY = System.getProperty("user.dir") + "/Alf"
+ static final public String UML_DIRECTORY = System.getProperty("user.dir") + "/UML"
+
+ static protected AlfGenerator generator;
+ static protected String umlDirectory;
+
+ @BeforeClass
+ static def void setUp() {
+ generator = new AlfGenerator()
+ umlDirectory = System.getProperty("uml.directory", UML_DIRECTORY)
+ }
+
+ @Test
+ def void testGeneration() {
+ var failures = 0;
+ System.out.println("[GenerationTest] Directory " + umlDirectory + ":")
+ val directory = new File(umlDirectory)
+ for (file : directory.listFiles()) {
+ val name = file.name;
+ val l = name.length
+ if (name.substring(l - 4, l).equals(".uml")) {
+ System.out.println(name)
+ val resource = generator.getResource(file.path)
+ try {
+ val text = generator.generate(resource.getContents())
+ val output = new PrintWriter(new FileWriter(
+ ALF_DIRECTORY + "/" + name.substring(0, l - 4) + ".alf"
+ ));
+ output.print(text);
+ output.close
+ } catch (MappingError e) {
+ val diagnostic = e.diagnostic
+ if (diagnostic != null) {
+ val status = BasicDiagnostic.toIStatus(diagnostic)
+ System.out.println(" " + status)
+ } else {
+ System.out.println(e.getMessage());
+ }
+ failures = failures + 1
+ } catch (IOException e) {
+ e.printStackTrace()
+ }
+ catch (Exception e) {
+ e.printStackTrace()
+ failures = failures + 1
+ }
+ resource.unload()
+ }
+ }
+ System.out.println()
+ assertEquals(0, failures)
+ }
+
+}
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/AlfCompiler.java b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/AlfCompiler.java
new file mode 100644
index 00000000000..1cea8635fc5
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/AlfCompiler.java
@@ -0,0 +1,103 @@
+/*****************************************************************************
+ * Copyright (c) 2013, 2014 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IJI - Initial implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.alf.tests.mapper;
+
+import java.io.StringReader;
+import java.util.List;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.uml.alf.MappingError;
+import org.eclipse.papyrus.uml.alf.ParsingError;
+import org.eclipse.papyrus.uml.alf.tests.mapper.AlfMapper;
+import org.eclipse.uml2.uml.Comment;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Profile;
+import org.eclipse.uml2.uml.Stereotype;
+import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.xtext.parser.IParseResult;
+import org.eclipse.xtext.parser.IParser;
+
+public class AlfCompiler extends AlfMapper {
+
+ protected Profile actionLanguageProfile = null;
+ protected Stereotype textualRepresentationStereotype = null;
+
+ protected IParser parser = null;
+
+ public AlfCompiler() throws Exception {
+ super();
+
+ this.parser = this.getInjector().getInstance(IParser.class);
+
+ this.actionLanguageProfile = this.getActionLanguageProfile();
+ for (Stereotype stereotype : this.actionLanguageProfile.getOwnedStereotypes()) {
+ if ("TextualRepresentation".equals(stereotype.getName())) {
+ this.textualRepresentationStereotype = stereotype;
+ break;
+ }
+ }
+ }
+
+ public EObject parse(String textualRepresentation) throws ParsingError {
+ IParseResult result = parser.parse(new StringReader(textualRepresentation));
+ if (result.hasSyntaxErrors()) {
+ throw new ParsingError(result.getSyntaxErrors());
+ } else {
+ return result.getRootASTElement();
+ }
+ }
+
+ public String getTextualRepresentation(Element element) {
+ for (Comment comment : element.getOwnedComments()) {
+ if (comment.isStereotypeApplied(this.textualRepresentationStereotype) &&
+ "Alf".equals(comment.getValue(this.textualRepresentationStereotype, "language"))) {
+ return comment.getBody();
+ }
+ }
+ return null;
+ }
+
+ public void addTextualRepresentation(Element element, String textualRepresentation) {
+ Comment comment = UMLFactory.eINSTANCE.createComment();
+ comment.setBody(textualRepresentation);
+ comment.getAnnotatedElements().add(element);
+ element.getOwnedComments().add(comment);
+ if (!comment.isStereotypeApplicable(this.textualRepresentationStereotype)) {
+ element.getModel().applyProfile(this.actionLanguageProfile);
+ }
+ comment.applyStereotype(this.textualRepresentationStereotype);
+ comment.setValue(this.textualRepresentationStereotype, "language", "Alf");
+ }
+
+ public void compile(NamedElement contextElement) throws ParsingError, MappingError {
+ String textualRepresentation = this.getTextualRepresentation(contextElement);
+ if (textualRepresentation != null) {
+ this.compile(contextElement, textualRepresentation);
+ }
+ }
+
+ public void compile(NamedElement contextElement, String textualRepresentation)
+ throws ParsingError, MappingError {
+
+ List<EObject> alf = new BasicEList<EObject>();
+ alf.add(this.parse(textualRepresentation));
+ this.map(contextElement, alf);
+
+ this.addTextualRepresentation(contextElement, textualRepresentation);
+ }
+
+}
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/AlfMapper.java b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/AlfMapper.java
new file mode 100644
index 00000000000..1b0dc4da181
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/AlfMapper.java
@@ -0,0 +1,168 @@
+/*****************************************************************************
+ * Copyright (c) 2013, 2015 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ed Seidewitz
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.alf.tests.mapper;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.CommonPlugin;
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.URIConverter;
+import org.eclipse.m2m.qvt.oml.ExecutionContextImpl;
+import org.eclipse.m2m.qvt.oml.ExecutionDiagnostic;
+import org.eclipse.m2m.qvt.oml.TransformationExecutor;
+import org.eclipse.ocl.examples.pivot.OCL;
+import org.eclipse.ocl.examples.pivot.delegate.OCLDelegateDomain;
+import org.eclipse.ocl.examples.pivot.model.OCLstdlib;
+import org.eclipse.ocl.examples.xtext.oclstdlib.OCLstdlibStandaloneSetup;
+import org.eclipse.papyrus.uml.alf.AlfStandaloneSetup;
+import org.eclipse.papyrus.uml.alf.MappingError;
+import org.eclipse.papyrus.uml.alf.tests.mapper.AlfMapper;
+import org.eclipse.papyrus.uml.alf.tests.utils.RegisteredItemLoader;
+import org.eclipse.papyrus.uml.alf.tests.utils.ContextModelArea.RequiredElementsNames;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.resources.util.UMLResourcesUtil;
+import org.eclipse.xtext.resource.XtextResourceSet;
+
+public class AlfMapper extends org.eclipse.papyrus.uml.alf.AlfMapper {
+
+ public AlfMapper() throws Exception {
+ String base = CommonPlugin.getPlugin() == null ?
+ System.getProperty("qvt.base") + "/" : "platform:/plugin/";
+ this.executor = new TransformationExecutor(
+ URIConverter.INSTANCE.normalize(URI.createURI(base + QVT_PATH)));
+
+ this.context = new ExecutionContextImpl();
+ this.context.setConfigProperty("keepModeling", true);
+
+ this.injector = new AlfStandaloneSetup().createInjectorAndDoEMFRegistration();
+ this.setResourceSet(new XtextResourceSet());
+
+ UMLResourcesUtil.init(this.resourceSet);
+ OCL.initialize(this.resourceSet);
+ OCLstdlib.install();
+ OCLDelegateDomain.initialize(this.resourceSet);
+ OCLstdlibStandaloneSetup.doSetup();
+
+ this.setStandardProfile(
+ RegisteredItemLoader.getInstance().loadProfile(this.resourceSet, RequiredElementsNames.STANDARD_PROFILE));
+ this.setActionLanguageProfile(
+ RegisteredItemLoader.getInstance().loadProfile(this.resourceSet, RequiredElementsNames.ACTION_LANGUAGE_PROFILE));
+ }
+
+ public Resource createResource(String path) {
+ return this.resourceSet.createResource(URI.createFileURI(path));
+ }
+
+ public Resource getResource(String path) {
+ return this.resourceSet.getResource(URI.createFileURI(path), true);
+ }
+
+ public List<EObject> map(String path) throws MappingError {
+ Resource resource = this.getResource(path);
+ List<EObject> result = this.map(resource.getContents());
+ resource.unload();
+ return result;
+ }
+
+ public void save(String path, List<EObject> uml) throws IOException {
+ Resource resource = this.resourceSet.createResource(
+ URI.createFileURI(path));
+ resource.getContents().addAll(uml);
+ resource.save(Collections.emptyMap());
+ resource.unload();
+ }
+
+ public static String addSlash(String directory) {
+ if (directory.charAt(directory.length() - 1) != '/') {
+ return directory + "/";
+ } else {
+ return directory;
+ }
+ }
+
+ public static String removeExtension(String fileName) {
+ final int l = fileName.length();
+ if (l > 4 && fileName.substring(l - 4, l).equals(".alf")) {
+ return fileName.substring(0, l - 4);
+ } else {
+ return fileName;
+ }
+ }
+
+ public static void main(String args[]) {
+ if (args.length >= 4) {
+ final String inputDirectory = addSlash(args[0]);
+ final String outputDirectory = addSlash(args[1]);
+ final String fileName = removeExtension(args[3]);
+
+ Resource inputResource = null;
+ Resource outputResource = null;
+
+ try {
+ AlfMapper mapper = new AlfMapper();
+
+ String path = inputDirectory + fileName + ".alf";
+ System.out.println("Reading from " + path + "...");
+ inputResource = mapper.getResource(path);
+
+ path = outputDirectory + fileName + ".uml";
+ if (args.length > 4 && args[4].equals("-merge")) {
+ System.out.println("Reading from " + path + "...");
+ outputResource = mapper.getResource(path);
+
+ Package model = (Package) outputResource.getContents().get(0);
+ for (PackageableElement member : model.getPackagedElements()) {
+ String name = member.getName();
+ if (name.length() < 3 || !name.substring(0, 2).equals("$$")) {
+ mapper.map(member, inputResource.getContents());
+ break;
+ }
+ }
+ } else {
+ List<EObject> uml = mapper.map(inputResource.getContents());
+
+ outputResource = mapper.createResource(path);
+ outputResource.getContents().addAll(uml);
+ }
+
+ System.out.println("Writing to " + path + "...");
+ outputResource.save(null);
+
+
+ } catch (MappingError e) {
+ ExecutionDiagnostic diagnostic = e.getDiagnostic();
+ System.out.println(BasicDiagnostic.toIStatus(diagnostic));
+ diagnostic.printStackTrace(new PrintWriter(System.out));
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ if (inputResource != null) {
+ inputResource.unload();
+ }
+ if (outputResource != null) {
+ outputResource.unload();
+ }
+ }
+ }
+ }
+
+}
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/CompilerTests.java b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/CompilerTests.java
new file mode 100644
index 00000000000..54620470a04
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/CompilerTests.java
@@ -0,0 +1,456 @@
+/*****************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ed Seidewitz (IJI) - Initial implementation
+ * Ed Seidewitz (MDS) - Additional tests
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.alf.tests.mapper;
+
+import static org.junit.Assert.*;
+
+import java.util.List;
+
+import org.eclipse.papyrus.uml.alf.MappingError;
+import org.eclipse.papyrus.uml.alf.ParsingError;
+import org.eclipse.papyrus.uml.alf.impl.ModelNamespaceImpl;
+import org.eclipse.papyrus.uml.alf.tests.mapper.AlfCompiler;
+import org.eclipse.papyrus.uml.alf.tests.utils.ContextModelArea;
+import org.eclipse.uml2.uml.Activity;
+import org.eclipse.uml2.uml.Association;
+import org.eclipse.uml2.uml.CallOperationAction;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.DataType;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Enumeration;
+import org.eclipse.uml2.uml.EnumerationLiteral;
+import org.eclipse.uml2.uml.MultiplicityElement;
+import org.eclipse.uml2.uml.OpaqueExpression;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.Parameter;
+import org.eclipse.uml2.uml.ParameterDirectionKind;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.ReadStructuralFeatureAction;
+import org.eclipse.uml2.uml.Reception;
+import org.eclipse.uml2.uml.Signal;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.TypedElement;
+import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.ValueSpecification;
+import org.eclipse.uml2.uml.VisibilityKind;
+import org.eclipse.xtext.junit4.XtextRunner;
+import org.junit.After;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(XtextRunner.class)
+public class CompilerTests {
+
+ public static final String PLUGIN_DIRECTORY = "platform:/plugin/org.eclipse.papyrus.uml.alf.tests";
+
+ private static AlfCompiler compiler = null;
+
+ @BeforeClass
+ public static void setup() throws Exception {
+ compiler = new AlfCompiler();
+ ContextModelArea modelArea = new ContextModelArea("Model");
+ ModelNamespaceImpl.setContext(modelArea.getModel());
+ }
+
+ @After
+ public void clean() {
+ ((Package) ModelNamespaceImpl.getContext()).getPackagedElements().clear();
+ }
+
+ public static void assertTextualRepresentation(
+ Element contextElement, String textualRepresentation) {
+ assertEquals(textualRepresentation,
+ compiler.getTextualRepresentation(contextElement));
+ }
+
+ public static void assertMultiplicityElement(MultiplicityElement element,
+ int lower, int upper, boolean isOrdered, boolean isUnique) {
+ assertEquals(lower, element.getLower());
+ assertEquals(upper, element.getUpper());
+ assertEquals(isOrdered, element.isOrdered());
+ assertEquals(isUnique, element.isUnique());
+ }
+
+ public static void assertTypedElement(TypedElement element, String typeName) {
+ Type type = element.getType();
+ if (type == null) {
+ assertNull(typeName);
+ } else {
+ assertEquals(typeName, element.getType().getName());
+ }
+ }
+
+ public static void assertProperty(Property property,
+ VisibilityKind visibility,
+ String name, int lower, int upper, boolean isOrdered, boolean isUnique,
+ String type) {
+ assertEquals(visibility, property.getVisibility());
+ assertEquals(name, property.getName());
+ assertTypedElement(property, type);
+ assertMultiplicityElement(property, lower, upper, isOrdered, isUnique);
+ }
+
+ public static void assertParameter(Parameter parameter,
+ String name, ParameterDirectionKind direction,
+ int lower, int upper, boolean isOrdered, boolean isUnique,
+ String type) {
+ assertEquals(name, parameter.getName());
+ assertEquals(direction, parameter.getDirection());
+ assertTypedElement(parameter, type);
+ assertMultiplicityElement(parameter, lower, upper, isOrdered, isUnique);
+ }
+
+ public static void assertOperation(Operation operation,
+ VisibilityKind visibility,
+ String name, int lower, int upper, boolean isOrdered, boolean isUnique,
+ String type) {
+ assertEquals(visibility, operation.getVisibility());
+ assertEquals(name, operation.getName());
+ assertParameter(operation.getReturnResult(), null,
+ ParameterDirectionKind.RETURN_LITERAL,
+ lower, upper, isOrdered, isUnique, type);
+ }
+
+ public static <T extends PackageableElement> T setupContextElement(
+ T element, String name)
+ throws ParsingError, MappingError {
+ ((Package) ModelNamespaceImpl.getContext()).getPackagedElements().add(element);
+ // compiler.addTextualRepresentation(element, textualRepresentation);
+ // compiler.compile(element, textualRepresentation);
+ return element;
+ }
+
+ public static <T extends PackageableElement> T compile(
+ T element, String textualRepresentation)
+ throws ParsingError, MappingError {
+ T contextElement = setupContextElement(element, textualRepresentation);
+ compiler.compile(contextElement, textualRepresentation);
+ return contextElement;
+ }
+
+ public static Class compileClass(String textualRepresentation)
+ throws ParsingError, MappingError {
+ return compile(UMLFactory.eINSTANCE.createClass(), textualRepresentation);
+ }
+
+ public static String TEST_CLASS_TEXT = "class Test { p : Integer; public q() : Boolean { } }";
+
+ public static Class compileTestClass() throws ParsingError, MappingError {
+ return compileClass(TEST_CLASS_TEXT);
+ }
+
+ @Test
+ public void testNewClass() throws ParsingError, MappingError {
+ Class testClass = compileTestClass();
+
+ assertTextualRepresentation(testClass, TEST_CLASS_TEXT);
+ assertEquals("Test", testClass.getName());
+ assertProperty(testClass.getAttributes().get(0),
+ VisibilityKind.PACKAGE_LITERAL, "p", 1, 1, false, true, "Integer");
+ assertOperation(testClass.getOwnedOperations().get(0),
+ VisibilityKind.PUBLIC_LITERAL, "q", 1, 1, false, true, "Boolean");
+ }
+
+ public static String ATTRIBUTE_UPDATE_TEXT = "class Test { private p : Boolean[*] ordered nonunique; public q() : Boolean { } }";
+
+ @Test
+ public void testAttributeMerging() throws ParsingError, MappingError {
+ Class testClass = compileTestClass();
+
+ Property attribute = testClass.getAttribute("p", null);
+ ReadStructuralFeatureAction action = UMLFactory.eINSTANCE.createReadStructuralFeatureAction();
+ action.setStructuralFeature(attribute);
+ Activity activity = UMLFactory.eINSTANCE.createActivity();
+ activity.getNodes().add(action);
+ testClass.getNestedClassifiers().add(activity);
+
+ compiler.compile(testClass, ATTRIBUTE_UPDATE_TEXT);
+
+ assertTextualRepresentation(testClass, ATTRIBUTE_UPDATE_TEXT);
+ assertProperty(attribute,
+ VisibilityKind.PRIVATE_LITERAL, "p", 0, -1, true, false, "Boolean");
+ assertOperation(testClass.getOwnedOperations().get(0),
+ VisibilityKind.PUBLIC_LITERAL, "q", 1, 1, false, true, "Boolean");
+ assertEquals(attribute, action.getStructuralFeature());
+ }
+
+ public static String OPERATION_UPDATE_TEXT =
+ "class UpdatedTest { p : Integer; private q(in a : Integer) : Integer[*] nonunique ordered { return a; } }";
+ public static String Q_METHOD_TEXT =
+ "activity 'q$method$1'(in a: Integer): Integer[0..*] sequence {\n\treturn a;\n}";
+
+ @Test
+ public void testOperationMerging() throws ParsingError, MappingError {
+ Class testClass = compileTestClass();
+
+ Operation operation = testClass.getOwnedOperation("q", null, null);
+ CallOperationAction action = UMLFactory.eINSTANCE.createCallOperationAction();
+ action.setOperation(operation);
+ Activity activity = UMLFactory.eINSTANCE.createActivity();
+ activity.getNodes().add(action);
+ testClass.getNestedClassifiers().add(activity);
+
+ compiler.compile(testClass, OPERATION_UPDATE_TEXT);
+
+ assertTextualRepresentation(testClass, OPERATION_UPDATE_TEXT);
+ assertEquals("UpdatedTest", testClass.getName());
+ assertProperty(testClass.getAttributes().get(0),
+ VisibilityKind.PACKAGE_LITERAL, "p", 1, 1, false, true, "Integer");
+ assertOperation(operation,
+ VisibilityKind.PRIVATE_LITERAL, "q", 0, -1, true, false, "Integer");
+ assertParameter(operation.getOwnedParameters().get(1),
+ "a", ParameterDirectionKind.IN_LITERAL, 1, 1, false, true, "Integer");
+ assertEquals(operation, action.getOperation());
+ assertTextualRepresentation(testClass.getOwnedBehavior("q$method$1"), Q_METHOD_TEXT);
+ }
+
+ public static String SELF_REFERENCE_TEXT = "class Test { self : Test; }";
+
+ @Test
+ public void testReferenceUpdate() throws ParsingError, MappingError {
+ Class testClass = compileTestClass();
+
+ compiler.compile(testClass, SELF_REFERENCE_TEXT);
+
+ assertTextualRepresentation(testClass, SELF_REFERENCE_TEXT);
+ assertEquals(testClass, testClass.getAttribute("self", null).getType());
+ }
+
+ @Test
+ public void testFeatureRemoval() throws ParsingError, MappingError {
+ Class testClass = compileTestClass();
+
+ compiler.compile(testClass, SELF_REFERENCE_TEXT);
+
+ assertNotNull(testClass.getAttribute("self", testClass));
+ assertNull(testClass.getAttribute("p", null));
+ assertNull(testClass.getOperation("q", null, null));
+ }
+
+ public static final String PROPERTY_INITIALIZER_TEXT = "class Test { p : Integer = 1; }";
+ public static final String DEFAULT_VALUE_ACTIVITY_TEXT = "activity 'p$defaultValue$1'(): Integer {\n\treturn 1;\n}";
+
+ @Test
+ public void testPropertyInitializer() throws ParsingError, MappingError {
+ Class testClass = compileClass(PROPERTY_INITIALIZER_TEXT);
+
+ assertNotNull(testClass.getAttribute("p", null));
+
+ ValueSpecification defaultValue = testClass.getAttribute("p", null).getDefaultValue();
+
+ assertTrue(defaultValue instanceof OpaqueExpression);
+ assertTextualRepresentation(((OpaqueExpression) defaultValue).getBehavior(), DEFAULT_VALUE_ACTIVITY_TEXT);
+ }
+
+ @Test
+ public void testPropertyInitializerUpdate() throws ParsingError, MappingError {
+ Class testClass = compileTestClass();
+
+ compiler.compile(testClass, PROPERTY_INITIALIZER_TEXT);
+
+ assertNotNull(testClass.getAttribute("p", null));
+
+ ValueSpecification defaultValue = testClass.getAttribute("p", null).getDefaultValue();
+
+ assertTrue(defaultValue instanceof OpaqueExpression);
+ assertTextualRepresentation(((OpaqueExpression) defaultValue).getBehavior(), DEFAULT_VALUE_ACTIVITY_TEXT);
+ }
+
+ public static Package compilePackage(String textualRepresentation)
+ throws ParsingError, MappingError {
+ return compile(UMLFactory.eINSTANCE.createPackage(), textualRepresentation);
+ }
+
+ public static String TEST_PACKAGE_TEXT = "package TestPackage { " +
+ "public " + TEST_CLASS_TEXT + " }";
+
+ public static Package compileTestPackage() throws ParsingError, MappingError {
+ return compilePackage(TEST_PACKAGE_TEXT);
+ }
+
+ @Test
+ public void testNewPackage() throws ParsingError, MappingError {
+ Package testPackage = compileTestPackage();
+
+ assertTextualRepresentation(testPackage, TEST_PACKAGE_TEXT);
+ assertEquals("TestPackage", testPackage.getName());
+
+ Class testClass = (Class) testPackage.getPackagedElement("Test");
+ assertEquals(VisibilityKind.PUBLIC_LITERAL, testClass.getVisibility());
+ assertProperty(testClass.getAttributes().get(0),
+ VisibilityKind.PACKAGE_LITERAL, "p", 1, 1, false, true, "Integer");
+ assertOperation(testClass.getOwnedOperations().get(0),
+ VisibilityKind.PUBLIC_LITERAL, "q", 1, 1, false, true, "Boolean");
+ }
+
+ public static String PACKAGE_UPDATE_TEXT = "package TestPackage { " +
+ "private " + ATTRIBUTE_UPDATE_TEXT +
+ " public class TestRef { public ref : Test; } }";
+
+ @Test
+ public void testPackageMerging() throws ParsingError, MappingError {
+ Package testPackage = compileTestPackage();
+
+ Class testClass = (Class) testPackage.getPackagedElement("Test");
+ Property attribute = testClass.getAttribute("p", null);
+
+ compiler.compile(testPackage, PACKAGE_UPDATE_TEXT);
+
+ assertTextualRepresentation(testPackage, PACKAGE_UPDATE_TEXT);
+ assertEquals(VisibilityKind.PRIVATE_LITERAL, testClass.getVisibility());
+ assertProperty(attribute,
+ VisibilityKind.PRIVATE_LITERAL, "p", 0, -1, true, false, "Boolean");
+ assertOperation(testClass.getOwnedOperations().get(0),
+ VisibilityKind.PUBLIC_LITERAL, "q", 1, 1, false, true, "Boolean");
+
+ Class testRefClass = (Class) testPackage.getPackagedElement("TestRef");
+ assertEquals(VisibilityKind.PUBLIC_LITERAL, testRefClass.getVisibility());
+
+ Property refAttribute = testRefClass.getOwnedAttributes().get(0);
+ assertProperty(refAttribute,
+ VisibilityKind.PUBLIC_LITERAL, "ref", 1, 1, false, true, "Test");
+ assertEquals(testClass, refAttribute.getType());
+ }
+
+ public static DataType compileDataType(String textualRepresentation)
+ throws ParsingError, MappingError {
+ return compile(UMLFactory.eINSTANCE.createDataType(), textualRepresentation);
+ }
+
+ public static String TEST_DATATYPE_TEXT = "datatype Test { public p : Integer; }";
+
+ public static DataType compileTestDataType() throws ParsingError, MappingError {
+ return compileDataType(TEST_DATATYPE_TEXT);
+ }
+
+ @Test
+ public void testNewDataType() throws ParsingError, MappingError {
+ DataType testDataType = compileTestDataType();
+
+ assertTextualRepresentation(testDataType, TEST_DATATYPE_TEXT);
+ assertEquals("Test", testDataType.getName());
+ assertProperty(testDataType.getAttributes().get(0),
+ VisibilityKind.PUBLIC_LITERAL, "p", 1, 1, false, true, "Integer");
+ }
+
+ public static Signal compileSignal(String textualRepresentation)
+ throws ParsingError, MappingError {
+ return compile(UMLFactory.eINSTANCE.createSignal(), textualRepresentation);
+ }
+
+ public static String TEST_SIGNAL_TEXT = "signal Test { public p : Integer; }";
+
+ public static Signal compileTestSignal() throws ParsingError, MappingError {
+ return compileSignal(TEST_SIGNAL_TEXT);
+ }
+
+ @Test
+ public void testNewSignal() throws ParsingError, MappingError {
+ Signal testSignal = compileTestSignal();
+
+ assertTextualRepresentation(testSignal, TEST_SIGNAL_TEXT);
+ assertEquals("Test", testSignal.getName());
+ assertProperty(testSignal.getAttributes().get(0),
+ VisibilityKind.PUBLIC_LITERAL, "p", 1, 1, false, true, "Integer");
+ }
+
+ public static Association compileAssociation(String textualRepresentation)
+ throws ParsingError, MappingError {
+ return compile(UMLFactory.eINSTANCE.createAssociation(), textualRepresentation);
+ }
+
+ public static String TEST_ASSOCIATION_TEXT = "assoc Test { public x : Integer; public y : Integer[*]; }";
+
+ public static Association compileTestAssociation() throws ParsingError, MappingError {
+ return compileAssociation(TEST_ASSOCIATION_TEXT);
+ }
+
+ @Test
+ public void testNewAssociation() throws ParsingError, MappingError {
+ Association testAssociation = compileTestAssociation();
+
+ assertTextualRepresentation(testAssociation, TEST_ASSOCIATION_TEXT);
+ assertEquals("Test", testAssociation.getName());
+ assertProperty(testAssociation.getOwnedEnds().get(0),
+ VisibilityKind.PUBLIC_LITERAL, "x", 1, 1, false, true, "Integer");
+ assertProperty(testAssociation.getOwnedEnds().get(1),
+ VisibilityKind.PUBLIC_LITERAL, "y", 0, -1, false, true, "Integer");
+ }
+
+ public static Enumeration compileEnumeration(String textualRepresentation)
+ throws ParsingError, MappingError {
+ return compile(UMLFactory.eINSTANCE.createEnumeration(), textualRepresentation);
+ }
+
+ public static String TEST_ENUMERATION_TEXT = "enum Test { A, B, C }";
+
+ public static Enumeration compileTestEnumeration() throws ParsingError, MappingError {
+ return compileEnumeration(TEST_ENUMERATION_TEXT);
+ }
+
+ @Test
+ public void testNewEnumeration() throws ParsingError, MappingError {
+ Enumeration testEnumeration = compileTestEnumeration();
+
+ assertTextualRepresentation(testEnumeration, TEST_ENUMERATION_TEXT);
+ assertEquals("Test", testEnumeration.getName());
+ List<EnumerationLiteral> literals = testEnumeration.getOwnedLiterals();
+ assertEquals("A", literals.get(0).getName());
+ assertEquals("B", literals.get(1).getName());
+ assertEquals("C", literals.get(2).getName());
+ }
+
+ public static String TEST_RECEPTION_TEXT = "abstract active class Test { public signal S { } public receive S; }";
+
+ public static Class compileTestReception() throws ParsingError, MappingError {
+ return compileClass(TEST_RECEPTION_TEXT);
+ }
+
+ @Test
+ public void testNewReception() throws ParsingError, MappingError {
+ Class testClass = compileTestReception();
+
+ assertTextualRepresentation(testClass, TEST_RECEPTION_TEXT);
+ Signal signal = (Signal) testClass.getNestedClassifiers().get(0);
+ assertEquals("S", signal.getName());
+
+ Reception reception = testClass.getOwnedReceptions().get(0);
+ assertEquals("S", reception.getName());
+ assertEquals(VisibilityKind.PUBLIC_LITERAL, reception.getVisibility());
+ assertEquals(signal, reception.getSignal());
+ }
+
+ public static String RECEPTION_UPDATE_TEXT = "abstract active class Test { public signal S { public a : Integer; } private receive S; }";
+
+ @Test
+ public void testReceptionUpdate() throws ParsingError, MappingError {
+ Class testClass = compileTestReception();
+ Signal signal = (Signal) testClass.getNestedClassifier("S");
+ Reception reception = testClass.getOwnedReception("S", null, null);
+
+ compiler.compile(testClass, RECEPTION_UPDATE_TEXT);
+
+ assertEquals("S", reception.getName());
+ assertEquals(VisibilityKind.PRIVATE_LITERAL, reception.getVisibility());
+ assertEquals(signal, reception.getSignal());
+ assertProperty(signal.getOwnedAttributes().get(0),
+ VisibilityKind.PUBLIC_LITERAL, "a", 1, 1, false, true, "Integer");
+ }
+
+}
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/MappingTest.xtend b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/MappingTest.xtend
new file mode 100644
index 00000000000..6b7e0792b8c
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/MappingTest.xtend
@@ -0,0 +1,98 @@
+/*****************************************************************************
+ * Copyright (c) 2013, 2014 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IJI - Initial implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.alf.tests.mapper
+
+import org.eclipse.xtext.junit4.XtextRunner
+import org.junit.runner.RunWith
+
+import static org.junit.Assert.*
+
+import org.junit.Test
+import org.junit.BeforeClass
+import java.io.IOException
+import org.eclipse.emf.common.util.BasicDiagnostic
+import java.io.File
+import org.eclipse.papyrus.uml.alf.tests.mapper.AlfMapper
+import org.eclipse.papyrus.uml.alf.MappingError
+import org.eclipse.papyrus.uml.alf.tests.ParserTest
+import org.eclipse.papyrus.uml.alf.impl.ModelNamespaceImpl
+import org.eclipse.papyrus.uml.alf.tests.utils.ContextModelArea
+
+@RunWith(XtextRunner)
+class MappingTest extends ParserTest {
+
+ static final public String TEST_DIRECTORY = "./tests"
+ static final public String UML_DIRECTORY = System.getProperty("user.dir") + "/UML"
+
+ static protected AlfMapper mapper;
+ static protected String testDirectory;
+ static protected String testFile;
+
+ @BeforeClass
+ static def void setUp() {
+ mapper = new AlfMapper()
+ testDirectory = System.getProperty("test.directory", TEST_DIRECTORY)
+ testFile = System.getProperty("test.file");
+ var modelArea = new ContextModelArea("Model");
+ ModelNamespaceImpl.setContext(modelArea.getModel);
+ }
+
+ @Test
+ def void testMapping() {
+ var failures = 0
+ var File[] files
+ if (testFile == null) {
+ System.out.println("[MappingTest] Directory " + testDirectory + ":")
+ files = new File(testDirectory).listFiles()
+ } else {
+ System.out.println("[MappingTest] File " + testDirectory + "/" + testFile + ":")
+ files = #{new File(testDirectory + "/" + testFile)}
+ }
+ for (file : files) {
+ val name = file.name;
+ val l = name.length
+ if (name.substring(l - 4, l).equals(".alf")) {
+ System.out.print(name + ": ")
+ val resource = mapper.getResource(file.path)
+ val parseFailures = parseResource(resource, false)
+ if (parseFailures > 0) {
+ failures = failures + parseFailures
+ } else {
+ try {
+ val uml = mapper.map(resource.getContents())
+ mapper.save(UML_DIRECTORY + "/" + name.substring(0, l - 4) + ".uml", uml)
+
+ } catch (MappingError e) {
+ val status = BasicDiagnostic.toIStatus(e.diagnostic)
+ System.out.println(" " + status)
+ failures = failures + 1
+
+ } catch (IOException e) {
+ e.printStackTrace()
+ }
+
+ catch (Exception e) {
+ e.printStackTrace()
+ failures = failures + 1
+ }
+ }
+ resource.unload()
+ }
+ }
+ System.out.println()
+ assertEquals(0, failures)
+ }
+
+}
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/MergeTest.xtend b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/MergeTest.xtend
new file mode 100644
index 00000000000..49f942a05b3
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/mapper/MergeTest.xtend
@@ -0,0 +1,136 @@
+/*****************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IJI - Initial implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.alf.tests.mapper
+
+import org.eclipse.xtext.junit4.XtextRunner
+import org.junit.runner.RunWith
+
+import static org.junit.Assert.*
+
+import org.junit.Test
+import org.junit.BeforeClass
+import java.io.IOException
+import java.io.File
+import org.eclipse.emf.common.util.BasicDiagnostic
+import org.eclipse.papyrus.uml.alf.tests.mapper.AlfMapper
+import org.eclipse.papyrus.uml.alf.MappingError
+import org.eclipse.papyrus.uml.alf.tests.ParserTest
+import org.eclipse.papyrus.uml.alf.PackageDefinition
+import org.eclipse.papyrus.uml.alf.ClassDefinition
+import org.eclipse.papyrus.uml.alf.ActiveClassDefinition
+import org.eclipse.papyrus.uml.alf.DataTypeDefinition
+import org.eclipse.papyrus.uml.alf.EnumerationDefinition
+import org.eclipse.papyrus.uml.alf.AssociationDefinition
+import org.eclipse.papyrus.uml.alf.SignalDefinition
+import org.eclipse.papyrus.uml.alf.ActivityDefinition
+import org.eclipse.papyrus.uml.alf.UnitDefinition
+import org.eclipse.papyrus.uml.alf.impl.ModelNamespaceImpl
+import org.eclipse.uml2.uml.PackageableElement
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.UMLFactory
+import java.io.FileOutputStream
+import org.eclipse.papyrus.uml.alf.tests.utils.ContextModelArea
+
+@RunWith(XtextRunner)
+class MergeTest extends ParserTest {
+
+ static final public String TEST_DIRECTORY = "./tests"
+ static final public String UML_DIRECTORY = System.getProperty("user.dir") + "/UML"
+
+ static protected AlfMapper mapper;
+ static protected String testDirectory;
+
+ @BeforeClass
+ static def void setUp() {
+ mapper = new AlfMapper()
+ testDirectory = System.getProperty("test.directory", TEST_DIRECTORY)
+ var modelArea = new ContextModelArea("Model");
+ ModelNamespaceImpl.setContext(modelArea.getModel);
+ }
+
+ @Test
+ def void testMerging() {
+ val contextNamespace = ModelNamespaceImpl.getContext() as Package
+ val contextResource = contextNamespace.eResource;
+ var failures = 0;
+ System.out.println("[MergeTest] Directory " + testDirectory + ":")
+ val directory = new File(testDirectory)
+ for (file : directory.listFiles()) {
+ val name = file.name;
+ val l = name.length
+ if (name.substring(l - 4, l).equals(".alf")) {
+ System.out.print(name + ": ")
+ val resource = mapper.getResource(file.path)
+ val parseFailures = parseResource(resource, false)
+ if (parseFailures > 0) {
+ failures = failures + parseFailures
+ } else {
+ try {
+ val contents = resource.getContents();
+ val unit = contents.get(0) as UnitDefinition;
+ val contextElement = this.mapContext(unit);
+ contextElement.name = unit.definition.actualName();
+ contextNamespace.packagedElements.clear();
+ contextNamespace.packagedElements.add(contextElement);
+
+ mapper.map(contextElement, contents)
+
+ contextResource.save(
+ new FileOutputStream(UML_DIRECTORY + "/" + name.substring(0, l - 4) + ".uml"),
+ null
+ );
+
+ contextResource.contents.clear();
+ contextResource.contents.add(contextNamespace);
+
+ } catch (MappingError e) {
+ val status = BasicDiagnostic.toIStatus(e.diagnostic)
+ System.out.println(" " + status)
+ failures = failures + 1
+
+ } catch (IOException e) {
+ e.printStackTrace()
+ }
+ }
+ resource.unload()
+ }
+ }
+ System.out.println()
+ assertEquals(0, failures)
+ }
+
+ def PackageableElement mapContext(UnitDefinition unit) {
+ val definition = unit.definition
+ if (definition instanceof PackageDefinition) {
+ return UMLFactory.eINSTANCE.createPackage()
+ } else if (definition instanceof ClassDefinition ||
+ definition instanceof ActiveClassDefinition) {
+ return UMLFactory.eINSTANCE.createClass()
+ } else if (definition instanceof DataTypeDefinition) {
+ return UMLFactory.eINSTANCE.createDataType()
+ } else if (definition instanceof EnumerationDefinition) {
+ return UMLFactory.eINSTANCE.createEnumeration()
+ } else if (definition instanceof AssociationDefinition) {
+ return UMLFactory.eINSTANCE.createAssociation()
+ } else if (definition instanceof SignalDefinition) {
+ return UMLFactory.eINSTANCE.createSignal()
+ } else if (definition instanceof ActivityDefinition) {
+ return UMLFactory.eINSTANCE.createActivity()
+ } else {
+ return null
+ }
+ }
+
+}
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/utils/ContextModelArea.java b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/utils/ContextModelArea.java
new file mode 100644
index 00000000000..0b71d84d3ac
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/utils/ContextModelArea.java
@@ -0,0 +1,134 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Jeremie Tatibouet
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.alf.tests.utils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.uml2.uml.ElementImport;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.Profile;
+import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.VisibilityKind;
+
+/**
+ * This class initializes a UML model by applying required profiles and importing required libraries.
+ * The model managed by the class can be retrieved by external entities in order to be modified
+ */
+public class ContextModelArea {
+
+ /**
+ * The resource set in which the different resources (the model, the libraries and the profiles)
+ * will be loaded.
+ */
+ private ResourceSet area;
+
+ /**
+ * The model for applying profiles and importing registered libraries
+ */
+ private Model model;
+
+
+ /**
+ * Constructor
+ */
+ public ContextModelArea(String modelName) {
+ this.model = UMLFactory.eINSTANCE.createModel();
+ this.model.setName(modelName);
+ this.area = new ResourceSetImpl();
+ this.addModelInresource();
+ this.loadRequiredResources();
+ }
+
+ /**
+ * Place the model in a resource of the resourceSet
+ */
+ private void addModelInresource() {
+ Resource resource = this.area.createResource(URI.createURI("Model"), "UML");
+ if (resource != null) {
+ resource.getContents().add(this.model);
+ }
+ }
+
+ /**
+ * Load elements that makes the model ready to be used
+ */
+ protected void loadRequiredResources() {
+ this.applyRequiredProfiles();
+ this.importRequiredLibraries();
+ }
+
+ /**
+ * Apply the standard profile and the action language profile
+ */
+ private void applyRequiredProfiles() {
+ /* 1 Load and apply standard profile */
+ Profile standardProfile = RegisteredItemLoader.getInstance().
+ getProfile(RequiredElementsNames.STANDARD_PROFILE);
+ if (standardProfile != null) {
+ this.model.applyProfile(standardProfile);
+ }
+ /* 2. Load and apply action language profile */
+ Profile actionLanguageProfile = RegisteredItemLoader.getInstance().
+ getProfile(RequiredElementsNames.ACTION_LANGUAGE_PROFILE);
+ if (actionLanguageProfile != null) {
+ this.model.applyProfile(actionLanguageProfile);
+ }
+ }
+
+ /**
+ * Import ALF library and UML primitive types in the model
+ */
+ private void importRequiredLibraries() {
+ List<PackageableElement> libraries = new ArrayList<PackageableElement>();
+ PackageableElement alfLibrary = RegisteredItemLoader.getInstance().
+ loadLibrary(this.area, RequiredElementsNames.ALF_LIBRARY);
+ if (alfLibrary != null) {
+ libraries.add(alfLibrary);
+ }
+ PackageableElement umlPrimitiveTypes = RegisteredItemLoader.getInstance().
+ loadLibrary(this.area, RequiredElementsNames.UML_PRIMITIVE_TYPES);
+ if (umlPrimitiveTypes != null) {
+ libraries.add(umlPrimitiveTypes);
+ }
+ for (PackageableElement library : libraries) {
+ ElementImport elementImport = UMLFactory.eINSTANCE.createElementImport();
+ elementImport.setImportedElement(library);
+ elementImport.setVisibility(VisibilityKind.PUBLIC_LITERAL);
+ this.model.getElementImports().add(elementImport);
+ }
+ }
+
+ /**
+ * Returns the model managed by this area
+ */
+ public Model getModel() {
+ return this.model;
+ }
+
+ public class RequiredElementsNames {
+ /* Profiles */
+ public final static String STANDARD_PROFILE = "Standard";
+ public final static String ACTION_LANGUAGE_PROFILE = "ActionLanguage";
+ /* Libraries */
+ public final static String ALF_LIBRARY = "Alf Library";
+ public final static String UML_PRIMITIVE_TYPES = "UMLPrimitiveTypes";
+ }
+}
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/utils/RegisteredItemLoader.java b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/utils/RegisteredItemLoader.java
new file mode 100644
index 00000000000..e909923dd32
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/src/org/eclipse/papyrus/uml/alf/tests/utils/RegisteredItemLoader.java
@@ -0,0 +1,209 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Jeremie Tatibouet
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.alf.tests.utils;
+
+import java.util.Iterator;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.papyrus.uml.extensionpoints.library.IRegisteredLibrary;
+import org.eclipse.papyrus.uml.extensionpoints.library.RegisteredLibrary;
+import org.eclipse.papyrus.uml.extensionpoints.profile.IRegisteredProfile;
+import org.eclipse.papyrus.uml.extensionpoints.profile.RegisteredProfile;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.Profile;
+
+/**
+ * Helper providing methods to load registered Papyrus libraries and profiles.
+ * These artifact can loaded in specific resource sets or in the one managed by this
+ * class.
+ */
+public class RegisteredItemLoader {
+
+ private static RegisteredItemLoader instance;
+
+ private ResourceSet registeredItemResourceSet;
+
+ private RegisteredItemLoader() {
+ this.registeredItemResourceSet = new ResourceSetImpl();
+ }
+
+ public static RegisteredItemLoader getInstance() {
+ if (instance == null) {
+ instance = new RegisteredItemLoader();
+ }
+ return instance;
+ }
+
+ /**
+ * Load a library in the resourceSet managed by this class
+ *
+ * @param name
+ * - the searched library
+ * @return library - a reference to the loaded library
+ */
+ public PackageableElement getLibrary(final String name) {
+ PackageableElement library = null;
+ URI libraryURI = this.getRegisteredLibraryURI(name);
+ if (libraryURI != null) {
+ Resource resource = null;
+ Iterator<Resource> resourceIterator = this.registeredItemResourceSet.getResources().iterator();
+ while (resource == null && resourceIterator.hasNext()) {
+ Resource current = resourceIterator.next();
+ if (current.getURI().equals(libraryURI)) {
+ resource = current;
+ }
+ }
+ if (resource == null) {
+ library = this.loadLibrary(this.registeredItemResourceSet, name);
+ } else {
+ EObject target = resource.getContents().get(0);
+ if (target instanceof PackageableElement) {
+ library = (PackageableElement) target;
+ }
+ }
+ }
+ return library;
+ }
+
+ /**
+ * Load a profile in the resourceSet managed by this class
+ *
+ * @param name
+ * - the searched profile
+ * @return profile - a reference to the loaded profile
+ */
+ public Profile getProfile(final String name) {
+ Profile profile = null;
+ URI profileURI = this.getRegisteredProfileURI(name);
+ if (profileURI != null) {
+ Resource resource = null;
+ Iterator<Resource> resourceIterator = this.registeredItemResourceSet.getResources().iterator();
+ while (resource == null && resourceIterator.hasNext()) {
+ Resource current = resourceIterator.next();
+ if (current.getURI().equals(profileURI)) {
+ resource = current;
+ }
+ }
+ if (resource == null) {
+ profile = this.loadProfile(this.registeredItemResourceSet, name);
+ } else {
+ EObject target = resource.getContents().get(0);
+ if (target instanceof Profile) {
+ profile = (Profile) target;
+ }
+ }
+ }
+ return profile;
+ }
+
+ /**
+ * Return the URI corresponding to the searched library
+ *
+ * @param name
+ * - the name of the searched library
+ * @return libraryURI - the URI corresponding to the library
+ */
+ private URI getRegisteredLibraryURI(final String name) {
+ URI libraryURI = null;
+ Iterator<IRegisteredLibrary> librariesIterator = RegisteredLibrary.getRegisteredLibraries().iterator();
+ while (libraryURI == null && librariesIterator.hasNext()) {
+ IRegisteredLibrary registeredLibrary = librariesIterator.next();
+ if (registeredLibrary.getName().equals(name)) {
+ libraryURI = registeredLibrary.getUri();
+ }
+ }
+ return libraryURI;
+ }
+
+ /**
+ * Return the URI corresponding to the searched profile
+ *
+ * @param name
+ * - the name of the profile
+ * @return profileURI - the URI corresponding to the profile
+ */
+ private URI getRegisteredProfileURI(final String name) {
+ URI profileURI = null;
+ IRegisteredProfile registeredProfile = RegisteredProfile.getRegisteredProfile(name);
+ if (registeredProfile != null) {
+ profileURI = registeredProfile.getUri();
+ }
+ return profileURI;
+ }
+
+ /**
+ * Load the library in the context of the given resourceSet
+ *
+ * @param context
+ * - the resource set
+ * @param name
+ * - the name of the library to load
+ * @return library - a reference to the loaded library (null if not loaded)
+ */
+ public PackageableElement loadLibrary(ResourceSet context, final String name) {
+ PackageableElement library = null;
+ URI libraryURI = this.getRegisteredLibraryURI(name);
+ if (libraryURI != null) {
+ Resource resource = context.getResource(libraryURI, true);
+ if (resource != null) {
+ EObject target = resource.getContents().get(0);
+ if (target instanceof PackageableElement) {
+ library = (PackageableElement) target;
+ }
+ }
+ }
+ return library;
+ }
+
+ /**
+ * Load the profile in the context of the given resourceSet
+ *
+ * @param context
+ * - the resourceSet
+ * @param name
+ * - the name of the profile to load
+ * @return profile - a reference to the loaded profile (null if not loaded)
+ */
+ public Profile loadProfile(ResourceSet context, final String name) {
+ Profile profile = null;
+ URI profileURI = this.getRegisteredProfileURI(name);
+ if (profileURI != null) {
+ Resource resource = context.getResource(profileURI, true);
+ if (resource != null) {
+ EObject target = resource.getContents().get(0);
+ if (target instanceof Profile) {
+ profile = (Profile) target;
+ }
+ }
+ }
+ return profile;
+ }
+
+ /**
+ * Unload the resources managed by the class
+ */
+ public void clean() {
+ for (Resource r : this.registeredItemResourceSet.getResources()) {
+ if (r.isLoaded()) {
+ r.unload();
+ }
+ }
+ this.registeredItemResourceSet.getResources().clear();
+ this.registeredItemResourceSet = null;
+ }
+}
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/AcceptStatementTest.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/AcceptStatementTest.alf
new file mode 100644
index 00000000000..699d3312e50
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/AcceptStatementTest.alf
@@ -0,0 +1,9 @@
+active class AcceptStatementTest {
+ public receive signal S1 { }
+ public receive signal S2 { }
+} do {
+ accept(S1, S2);
+
+ // accept(S1, S1); // Violates acceptStatementSignals constraint!
+ // accept(blah); // Violates acceptBlockSignalNames constraint!
+}
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/AssertEqual.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/AssertEqual.alf
new file mode 100644
index 00000000000..73f8d9b59e7
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/AssertEqual.alf
@@ -0,0 +1,9 @@
+activity AssertEqual(in label: String, in value1: any[0..1], in value2: any[0..1]) {
+ if (value1 != value2) {
+ WriteLine("FAILED: " + label + "==");
+ StandardOutputChannel.allInstances()[1].write(value2 == null? "null":
+ value2 instanceof String? "\"" + (String)value2 + "\"": value2);
+ WriteLine("");
+ }
+}
+ \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/AssertList.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/AssertList.alf
new file mode 100644
index 00000000000..5a67aef9cff
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/AssertList.alf
@@ -0,0 +1,9 @@
+package AssertList {
+ public activity AssertEqual(in label: String, in value1: any, in value2: any);
+ public activity AssertList(in label: String, in list: any[*] sequence, in expected: any[*] sequence) {
+ AssertEqual(label + "->size()", list->size(), expected->size());
+ for (i in 1..IntegerFunctions::Min(list->size(),expected->size())) {
+ AssertEqual(label + "[" + IntegerFunctions::ToString(i) + "]", list[i], expected[i]);
+ }
+ }
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Class_Redefinitions.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Class_Redefinitions.alf
new file mode 100644
index 00000000000..42237805dc6
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Class_Redefinitions.alf
@@ -0,0 +1,19 @@
+package Redefinitions {
+
+ public abstract class A {
+ abstract p(in x: Integer);
+ abstract q(in y: Boolean);
+ }
+
+ public abstract class B {
+ abstract p(in x: Integer);
+ }
+
+ public class Redefinitions specializes A, B {
+ p(in x: Integer) redefines A::p { }
+ renamed1(in x: Integer) redefines A::p, B::p { }
+ //renamed2(in x: Integer) redefines A::p { }
+ q(in y: Boolean) { }
+ }
+
+}
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/ConstructorDestructorTest.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/ConstructorDestructorTest.alf
new file mode 100644
index 00000000000..273f4b948ba
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/ConstructorDestructorTest.alf
@@ -0,0 +1,8 @@
+class ConstructorDestructorTest {
+ @Create public ConstructorDestructorTest(in n : Integer) { }
+ @Create public create() {
+// x = 1;
+ this(0);
+ }
+ @Destroy public destroy() { }
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/DisambiguationTest.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/DisambiguationTest.alf
new file mode 100644
index 00000000000..901447a4d32
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/DisambiguationTest.alf
@@ -0,0 +1,11 @@
+active class DisambiguationTest {
+
+ class Customer {
+ public name: String;
+ }
+
+ customer : Customer;
+
+} do {
+ customer.name;
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/DistinguishabilityTest.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/DistinguishabilityTest.alf
new file mode 100644
index 00000000000..22aa409424f
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/DistinguishabilityTest.alf
@@ -0,0 +1,6 @@
+class DistinguishibilityTest {
+ @Create public create(in x: Integer) {
+ }
+ @Create public create(in x: String) {
+ }
+}
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/ElementImportResolutionTest.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/ElementImportResolutionTest.alf
new file mode 100644
index 00000000000..3388f5a0192
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/ElementImportResolutionTest.alf
@@ -0,0 +1,6 @@
+private import Alf::Library::PrimitiveTypes::Integer;
+private import Alf::Library::PrimitiveTypes::'Boolean';
+private import Alf::'Library'::PrimitiveTypes::String;
+class ElementImportResolution {
+
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Assignment.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Assignment.alf
new file mode 100644
index 00000000000..872d20d274e
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Assignment.alf
@@ -0,0 +1,53 @@
+/**
+ * Test non-indexed assignment expressions.
+ **/
+active class Expressions_Assignment {
+
+ public test(out i: Integer, out f: Boolean, out h: BitString, out filename: String, out a: Integer) {
+
+ i = 1;
+ i += 4;
+ i += 1;
+ i -= 1;
+ i *= 1;
+ i %= 6;
+ i /= 1;
+
+ f = true;
+ f &= true;
+ f |= true;
+ f ^= true;
+ h = (BitString)0;
+ h = 0xab; // Bit string conversion
+ h &= 0xff;
+ h |= 1;
+ h ^= 1;
+ h <<= 1;
+ h >>= 1;
+ h >>>= 1;
+
+ filename = "xyz";
+ filename += ".doc";
+
+ a = 1;
+ a += 1;
+ test::a = 1;
+ test::a += i;
+ test.a = 1;
+ test.a += 1;
+
+ }
+
+ public activity AssertEqual(in label : String, in value1 : any, in value2 : any) {}
+ public activity AssertFalse(in label : String, in value : Boolean) {}
+} do {
+ this.test(i,f,h,filename,a);
+
+ AssertEqual("i", i, 5);
+ AssertFalse("f", f);
+ AssertEqual("h", h, 0x55);
+ AssertEqual("filename", filename, "xyz.doc");
+ AssertEqual("a", a, 2);
+
+ WriteLine("Done");
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Assignment_Feature.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Assignment_Feature.alf
new file mode 100644
index 00000000000..f3ba0b77b50
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Assignment_Feature.alf
@@ -0,0 +1,79 @@
+/**
+ * Test non-indexed feature assignment expressions
+ **/
+active class Expressions_Assignment_Feature {
+
+ private x: Integer;
+ private y: Integer[] sequence;
+
+ private class C {
+ public x: Integer;
+ public y: Integer[] sequence;
+ }
+
+ private datatype D {
+ public x: Integer;
+ public y: Integer[] sequence;
+ }
+
+ private assoc A {
+ public c: C;
+ public n: Integer;
+ }
+
+ private assoc B {
+ public d: D;
+ public m: Integer;
+ }
+
+ public test(out c: C, out d: D, out n: Integer, out m: Integer,
+ out self: Expressions_Assignment_Feature) {
+ c = new C();
+ c.x = 2;
+ c.y = 1;
+ c.y = null;
+ c.y = Integer[]{1,2};
+
+ c.n = 3;
+ n = A::n(c);
+
+ d = new D(0, null);
+ d.x = 2;
+ d.y = 1;
+ d.y = null;
+ d.y = Integer[]{1,2};
+
+ d.m = 3;
+ m = B::m(d);
+
+ this.x = 2;
+ this.y = 1;
+ this.y = null;
+ this.y = Integer[]{1,2};
+ self = this;
+
+ }
+} do {
+ /*
+ this.test(c,d,n,m,self);
+
+ AssertEqual("c.x", c.x, 2);
+ AssertEqual("c.y[1]", c.y[1], 1);
+ AssertEqual("c.y[2]", c.y[2], 2);
+ AssertEqual("c.n", c.n, 3);
+ AssertEqual("n", n, 3);
+
+ AssertEqual("d.x", d.x, 2);
+ AssertEqual("d.y[1]", d.y[1], 1);
+ AssertEqual("d.y[2]", d.y[2], 2);
+ AssertEqual("d.m", d.m, 3);
+ AssertEqual("m", m, 3);
+
+ AssertEqual("self.x", self.x, 2);
+ AssertEqual("self.y[1]", self.y[1], 1);
+ AssertEqual("self.y[2]", self.y[2], 2);
+
+ WriteLine("Done");
+*/
+}
+ \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Association.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Association.alf
new file mode 100644
index 00000000000..dff803d5e63
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Association.alf
@@ -0,0 +1,151 @@
+/**
+ * Test association-related expressions.
+ **/
+active class Expressions_Association {
+
+ // Supporting declarations *************************************************
+
+ class Person {
+ public name: String = "Jack";
+ @Create public Person(in name: String[0..1]) {
+// if (name != null) {
+// this.name = name;
+// }
+ }
+ }
+ class House {
+ public id: Integer;
+ @Create public House(in id: Integer) {
+// this.id = id;
+ }
+ }
+ class Player specializes Person {
+ @Create public Player(in name: String[0..1]) {
+// super(name);
+ }
+ }
+ class Team {
+ public name: String;
+ @Create public Team(in name: String) {
+// this.name = name;
+ }
+ }
+ class Season {
+ public year: Integer;
+ @Create public Season(in year: Integer) {
+// this.year = year;
+ }
+ }
+
+ assoc Owns {
+ owner: Person;
+ house: House;
+ }
+
+ assoc Owns1 {
+ owner1: Person;
+ house1: House[*] ordered;
+ }
+
+ assoc Roster {
+ player: Player[*];
+ team: Team;
+ season: Season[*];
+ }
+
+ //**************************************************************************
+
+ test(
+ out owner: Person, out house: House,
+ out house_a: House, out house_b: House[0..1],
+ out owner1_a: Person, out house1_a: House[*],
+ out owner1_b: Person, out house1_b: House[*], out house1_c: House[*],
+ out players1_a: Player[*], out players2_a: Player[*],
+ out players1_b: Player[*], out players2_b: Player[*]
+ )
+ {
+
+ jack = new Person();
+ oldHouse = new House(1);
+ newHouse = new House(2);
+
+ Owns.createLink(jack, oldHouse);
+ Owns.createLink(owner=>jack, house=>oldHouse);
+
+ house = jack.house;
+ owner = Owns::owner(oldHouse);
+
+ Owns.createLink(oldHouse.owner, newHouse);
+ Owns.createLink(Owns.owner(oldHouse), newHouse);
+
+ house_a = jack.house;
+
+ Owns.destroyLink(owner=>jack, house=>newHouse);
+
+ house_b = jack.house;
+
+ Owns1.createLink(owner1=>jack, house1[1]=>oldHouse);
+ Owns1.createLink(owner1=>jack, house1[2]=>newHouse);
+ Owns1.createLink(owner1=>jack, house1[1]=>newHouse);
+
+ house1_a = jack.house1;
+ owner1_a = Owns1::owner1(newHouse);
+
+ Owns1.createLink(owner1=>new Person("Jane"), house1[1]=>newHouse);
+
+ house1_b = jack.house1;
+ owner1_b = Owns1::owner1(newHouse);
+
+ Owns1.createLink(owner1=>jack, house1[2]=>new House(3));
+
+ house1_c = jack.house1;
+
+ Owns.clearAssoc(jack);
+
+ p1 = new Player("Fred");
+ p2 = new Player("Marvin");
+ t1 = new Team("A");
+ t2 = new Team("B");
+ y = new Season(2011);
+
+ Roster.createLink(p1, t1, y);
+ Roster.createLink(p2, t1, y);
+
+ players1_a = Roster.player(t1, y);
+ players2_a = Roster.player(t2, y);
+
+ Roster.createLink(p1, t2, y);
+
+ players1_b = Roster.player(t1, y);
+ players2_b = Roster.player(t2, y);
+
+ }
+
+} do {
+ this.test(owner, house, house_a, house_b,
+ owner1_a, house1_a, owner1_b, house1_b, house1_c,
+ players1_a, players2_a, players1_b, players2_b);
+/*
+ AssertEqual("owner.name", owner.name, "Jack");
+ AssertEqual("house.id", house.id, 1);
+ AssertEqual("house_a.id", house_a.id, 2);
+ AssertTrue("house_b->isEmpty()", house_b->isEmpty());
+ AssertEqual("owner1_a.name", owner1_a.name, "Jack");
+ AssertEqual("house1_a->size()", house1_a->size(), 2);
+ AssertEqual("house1_a[1].id", house1_a[1].id, 2);
+ AssertEqual("house1_a[2].id", house1_a[2].id, 1);
+ AssertEqual("owner1_b.name", owner1_b.name, "Jane");
+ AssertEqual("house1_b->size()", house1_b->size(), 1);
+ AssertEqual("house1_b[1].id", house1_b[1].id, 1);
+ AssertEqual("house1_c->size()", house1_c->size(), 2);
+ AssertEqual("house1_c[1].id", house1_c[1].id, 1);
+ AssertEqual("house1_c[2].id", house1_c[2].id, 3);
+
+ AssertList("players1_a.name", players1_a.name, String[]{"Fred","Marvin"});
+ AssertTrue("players2_a->isEmpty()", players2_a->isEmpty());
+ AssertList("players1_b.name", players1_b.name, "Marvin");
+ AssertList("players2_b.name", players2_b.name, "Fred");
+
+ WriteLine("Done");
+ */
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Constructor_Destructor.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Constructor_Destructor.alf
new file mode 100644
index 00000000000..738861c1d58
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Constructor_Destructor.alf
@@ -0,0 +1,108 @@
+/**
+ * Test constructor and destructor expressions.
+ **/
+active class Expressions_Constructor_Destructor {
+
+ // Supporting declarations *************************************************
+
+ class Initialization {
+ public a: Integer = this.b -> size();
+ public b: Integer = 1;
+ }
+ class Initialization2 specializes Initialization {
+ public c: Integer = this.a + 2;
+ }
+ class Monitor {
+ @Destroy public destroy(in recoveryLog: Log) {
+ recoveryLog.logged = true;
+ }
+ }
+ class Log {
+ public name: String = "Default";
+ public logged: Boolean = false;
+ }
+ class Employee {
+ public id: Integer;
+ public name: String;
+ public transferred: Boolean = false;
+ public relocated: Boolean = false;
+
+ @Create public Employee(in id: Integer, in name: String) {
+ this.id = id;
+ this.name = name;
+ }
+ @Create public transferred(in employeeInfo: Employee) {
+ this(employeeInfo.id, employeeInfo.name);
+ this.transferred = true;
+ }
+ @Create public relocated(in employeeInfo: Employee) {
+ this.transferred(employeeInfo);
+ this.relocated = true;
+ }
+ }
+
+ datatype D0 {
+ public y: Integer[] sequence;
+ }
+
+ datatype D specializes D0 {
+ public x: String;
+ }
+
+ //**************************************************************************
+
+ test(
+ out employee1: Employee, out employee2: Employee, out employee3: Employee,
+ out init: Initialization,
+ out log: Log, out monitor1: Monitor, out monitor2: Monitor,
+ out d: D) {
+
+ i = 100;
+ name = "Fred";
+
+ employee1 = new Employee(i, name);
+ employee2 = new Employee::transferred(employee1);
+ employee3 = new Employee::relocated(employee2);
+ init = new Initialization2();
+ log = new Log();
+ monitor1 = new Monitor();
+
+ init.destroy();
+
+ (monitor2 = new Monitor()).destroy(log);
+
+ d = new D("test", Integer[]{1,2});
+ d = new D(x => "text");
+ d = new D('y' => Integer[]{1,2}, 'x' => "Test");
+ }
+
+} do {
+ this.test(employee1, employee2, employee3, init, log, monitor1, monitor2, d);
+
+// AssertEqual("employee1.id", employee1.id, 100);
+// AssertEqual("employee1.name", employee1.name, "Fred");
+// AssertFalse("employee1.transferred", employee1.transferred);
+// AssertFalse("employee1.relocated", employee1.relocated);
+//
+// AssertEqual("employee2.id", employee2.id, 100);
+// AssertEqual("employee2.name", employee2.name, "Fred");
+// AssertTrue("employee2.transferred", employee2.transferred);
+// AssertFalse("employee2.relocated", employee2.relocated);
+//
+// AssertEqual("employee3.id", employee3.id, 100);
+// AssertEqual("employee3.name", employee3.name, "Fred");
+// AssertTrue("employee3.transferred", employee3.transferred);
+// AssertTrue("employee3.relocated", employee3.relocated);
+//
+// AssertFalse("init instanceof Initialization", init instanceof Initialization);
+//
+// AssertTrue("monitor1 instanceof Monitor", monitor1 instanceof Monitor);
+// AssertFalse("monitor2 instanceof Monitor", monitor2 instanceof Monitor);
+// AssertEqual("log.name", log.name, "Default");
+// AssertTrue("log.logged", log.logged);
+//
+// AssertEqual("d.x", d.x, "test");
+// AssertList("d.y", d.y, Integer[]{1,2});
+
+ WriteLine("Done");
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Invocation.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Invocation.alf
new file mode 100644
index 00000000000..6182e60418d
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Invocation.alf
@@ -0,0 +1,97 @@
+private import Alf::Library::PrimitiveBehaviors::IntegerFunctions::ToString;
+/**
+ * Test behavior, operation and super invocation expressions.
+ **/
+active class Expressions_Invocation {
+
+ // Supporting declarations *************************************************
+
+ activity A(in x: Integer, in y: Boolean[0..1]): Integer {
+ return x;
+ }
+ activity ComputeInterest(in amount: Integer): Integer { return amount; }
+ activity B(out s: String) { s = "Hello"; }
+ activity C(in b: BitString, out c: Integer) { c = 5; }
+
+ class Super {
+ public value: Integer = 0;
+ public name: String = "";
+
+ public run() { }
+ public initialize(in value: Integer) { this.value = value; }
+ public setName(in name: String) { this.name = name; }
+ }
+
+ class Super1 specializes Super {
+ public 'do'(in i: Integer) {
+ super.run();
+ super.initialize(i);
+ super.Super::setName("Fred");
+ }
+ }
+
+ //**************************************************************************
+
+ test(
+ out c: Integer, out b: BitString,
+ inout status1: String, out status2: String, out statuses: String[*],
+ out i: Integer, out j: Integer, out k: Integer, out l: Integer, out m: Integer,
+ out n: Integer, out n1: Integer,
+ out obj: Super1, out list: Super[*] sequence, out ns: Integer) {
+
+// ComputeInterest("a"); // Type error!
+
+ c = +0;
+ b = (BitString)c;
+ C(b, c);
+ C(c, b); // Bit string conversion
+
+ B(status1);
+ B(status2);
+ B(statuses);
+ B(s); // Define local name "s" as an output argument.
+
+ i = A(1, true);
+ j = A(x=>2, y=>true);
+ k = A(y=>true, x=>3);
+ l = A(x=>4);
+ m = A(5, null);
+
+ n1 = ComputeInterest(n = 3);
+ (obj = new Super1()).'do'(n);
+ new Super();
+
+ list = (Super)null;
+ list = including(list, obj);
+ ns = size(Super.allInstances());
+ }
+} do {
+ status1 = "Blah";
+ this.test(c, b, status1, status2, statuses, i, j, k, l, m, n, n1, obj, list, ns);
+
+// AssertEqual("b", b, 5);
+// AssertEqual("c", c, 5);
+//
+// AssertEqual("status1", status1, "Hello");
+// AssertEqual("status2", status2, "Hello");
+// AssertList("statuses", statuses, "Hello");
+//
+// AssertEqual("i", i, 1);
+// AssertEqual("j", j, 2);
+// AssertEqual("k", k, 3);
+// AssertEqual("l", l, 4);
+// AssertEqual("m", m, 5);
+//
+// AssertEqual("n", n, 3);
+// AssertEqual("n1", n1, 3);
+//
+// AssertEqual("obj.value", obj.value, 3);
+// AssertEqual("obj.name", obj.name, "Fred");
+//
+// AssertEqual("list->size()", list->size(), 1);
+// AssertTrue("list[1]==obj", list[1]==obj);
+//
+// AssertEqual("ns", ns, 2);
+
+ WriteLine("Done");
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Invocation_Reception.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Invocation_Reception.alf
new file mode 100644
index 00000000000..b08f419739e
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Invocation_Reception.alf
@@ -0,0 +1,84 @@
+/**
+ * Test reception invocation expressions.
+ */
+active class Expressions_Invocation_Reception {
+
+ public active class Receiver {
+
+ public a: Integer = 0;
+ public x: Integer[*] sequence;
+ public y: Integer[*] sequence;
+
+ public tester: TestRunner;
+
+ @Create
+ public Receiver(in tester: TestRunner) {
+ this.tester = tester;
+ }
+
+ public receive signal A {
+ }
+
+ public receive signal B {
+ x: Integer;
+ }
+
+ public receive signal C {
+ x: Integer [0..1];
+ y: Integer [0..1];
+ }
+
+ } do {
+
+ do {
+ accept (A) {
+ this.a++;
+ } or accept (b: B) {
+ this.x->add(b.x);
+ } or accept (c: C) {
+ this.x->add(c.x);
+ this.y->add(c.y);
+ }
+ this.tester.SignalLoop();
+ } while (true);
+
+ }
+
+ public active class TestRunner {
+
+ public receive signal Start { }
+ public receive signal SignalLoop { }
+
+ public test(out receiver: Receiver, out n: Integer) {
+
+ receiver = new Receiver(this);
+
+ receiver.A();
+ receiver.B(1);
+ receiver.C(2,3);
+ receiver.C(x => 3);
+ receiver.C(y => 4);
+ n = 5;
+ }
+
+ } do {
+ accept (Start);
+
+ this.test(receiver, n);
+
+ for (i in 1..n) {
+ accept (SignalLoop);
+ }
+
+ /*
+ AssertEqual("receiver.a", receiver.a, 1);
+ AssertList("receiver.x", receiver.x, Integer[]{1,2,3});
+ AssertList("receiver.y", receiver.y, Integer[]{3,4});
+ */
+
+ WriteLine("Done");
+ }
+
+} do {
+ new TestRunner().Start();
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Literal_Name.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Literal_Name.alf
new file mode 100644
index 00000000000..9365657ff38
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Literal_Name.alf
@@ -0,0 +1,46 @@
+/**
+ * Test literal and name expressions.
+ **/
+active class Expressions_Literal_Name {
+ enum Empty { }
+
+ enum E {A, B, C, D}
+
+ test(in a: Integer,
+ out i: any, out j: any, out k: any, out l: any, out m: any, out n: any, out x: any, out y: any,
+ out b: Integer, out c: Integer, out d: Integer, out e: E) {
+
+ i = 1234;
+ j = 0;
+ k = 0b1010111000010000;
+ l = 0B0100_1010_0101_1011;
+ m = 0xAE10;
+ n = 0X4a_5b;
+ x = 057410;
+ y = 0_045_133;
+
+ b = a;
+ c = Expressions_Literal_Name::test::a;
+ d = Expressions_Literal_Name.test.a;
+
+ e = E::A;
+
+ }
+} do {
+ this.test(1,i,j,k,l,m,n,x,y,b,c,d);
+
+// AssertEqual("i", i, 1234);
+// AssertEqual("j", j, 0);
+// AssertEqual("k", k, 44_560);
+// AssertEqual("l", l, 19_035);
+// AssertEqual("m", m, 44_560);
+// AssertEqual("n", n, 19_035);
+// AssertEqual("x", x, 24_328);
+// AssertEqual("y", y, 19_035);
+//
+// AssertEqual("b", b, 1);
+// AssertEqual("c", c, 1);
+// AssertEqual("d", d, 1);
+
+ WriteLine("Done");
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Operator.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Operator.alf
new file mode 100644
index 00000000000..ead735a225f
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Operator.alf
@@ -0,0 +1,134 @@
+/**
+ * Test various operator expressions.
+ **/
+active class Expressions_Operator {
+
+ // Supporting declarations *************************************************
+
+ class Monitor {
+ public getActiveSensor(): Sensor { return new Sensor(); }
+ }
+ class Sensor {
+ public getReading(): Integer { return 2; }
+ }
+ class Person { }
+ class Employee specializes Person {
+ public id: Integer;
+ public name: String;
+ }
+
+ //**************************************************************************
+
+ test(
+ out i: Integer, out j: Integer,
+ out bs: BitString, out h: Integer,
+ out a: Boolean, out b: Boolean, out c: Boolean, out d: Boolean, out e: Boolean,
+ out e1: Boolean, out e2: Boolean, out e3: Boolean, out e4: Boolean, out e5: Boolean,
+ out e6: Boolean, out e7: Boolean, out e8: Boolean, out e9: Boolean,
+ out f: Boolean, out f1: Boolean, out f2: Boolean,
+ out x: any, out y: any[*] sequence, out z: Integer[], out r: Integer) {
+
+ employee = new Employee();
+ monitor = new Monitor();
+
+ i = 1;
+ j = 2;
+
+ i = +i; // 1
+ i = -i; // -1
+ i = i * j; // -2
+ i = i / j; // -1
+ i = i % j; // -1
+ i = i + j; // 1
+ i = i - j; // -1
+
+ bs = (BitString)0xAB; // 0b10101011
+ bs = ~bs; // 0b11111111111111111111111101010100
+ bs = bs & 0xF0; // 0b01010000
+ bs = bs | 0360; // 0b11110000
+ bs = bs << 2; // 0b1111000000
+ bs = bs >> 2; // 0b11110000
+ bs = bs >>> 2; // 0b00111100
+ bs = bs ^ 4; // 0b00111000
+
+ h = 0xAB;
+ h = (Integer)~h;
+ h = (Integer)(h & 0xF0);
+ h = (Integer)(h | 0360);
+ h = (Integer)(h << 2);
+ h = (Integer)(h >> 2);
+ h = (Integer)(h >>> 2);
+ h = (Integer)(h ^ 4); // 0x38
+
+ a = i > j;
+ b = i < j;
+ c = i >= j;
+ d = i <= j;
+
+ f = true;
+ g = false;
+
+ e = f | g;
+ e = e & f;
+ e = !e;
+
+ e1 = 3 < *;
+ e2 = (UnlimitedNatural)(+3) < *;
+
+ e3 = employee instanceof Person;
+ e4 = i hastype Employee;
+
+ e5 = i==0;
+ e6 = monitor!=monitor;
+ e7 = employee.name==null;
+ e8 = null!=employee.name;
+ e9 = null==null;
+
+ f = i < j & (i > j | f);
+
+ f1 = i > 0 && 2 < j;
+ f2 = i == 0 || 2 >= j;
+
+ x = !f? 1: +2;
+ y = f? Integer[]{1,2}: 0;
+ z = (Integer)any[]{1,"banana",2};
+
+ //r = $monitor.getActiveSensor().getReading();
+ }
+} do {
+ this.test(i, j, bs, h, a, b, c, d, e, e1, e2, e3, e4, e5, e6, e7, e8, e9,
+ f, f1, f2, x, y, z, r);
+ /*
+ AssertEqual("i", i, -1);
+ AssertEqual("j", j, 2);
+ AssertEqual("bs", bs, (BitString)0b00111000);
+ AssertEqual("h", h, 0x38);
+
+ AssertFalse("a", a);
+ AssertTrue("b", b);
+ AssertFalse("c", c);
+ AssertTrue("d", d);
+ AssertFalse("e", e);
+
+ AssertTrue("e1", e1);
+ AssertTrue("e2", e2);
+ AssertTrue("e3", e3);
+ AssertFalse("e4", e4);
+ AssertFalse("e5", e5);
+ AssertFalse("e6", e6);
+ AssertTrue("e7", e7);
+ AssertFalse("e8", e8);
+ AssertTrue("e9", e9);
+
+ AssertTrue("f", f);
+ AssertFalse("f1", f1);
+ AssertTrue("f2", f2);
+
+ AssertEqual("x", x, +2);
+ AssertList("y", y, Integer[]{1,2});
+ AssertList("z", z, Integer[]{1,2});
+
+ AssertEqual("r", r, 2);
+ */
+ WriteLine("Done");
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Sequence_Construction.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Sequence_Construction.alf
new file mode 100644
index 00000000000..f41cdb4f7b2
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Sequence_Construction.alf
@@ -0,0 +1,80 @@
+/**
+ * Test sequence construction expressions.
+ **/
+active class Expressions_Sequence_Construction {
+
+ // Supporting declarations *************************************************
+
+ class Customer {
+ public name: String;
+ @Create Customer(in name: String) { this.name = name; }
+ }
+ getList(): Integer[1..*] { return Integer[]{4,5,6}; }
+
+ //**************************************************************************
+
+ test(
+ out seq1: String[] sequence,
+ out seq2: String[] sequence,
+ out seq3: any[] sequence,
+ out seq4: Integer[] sequence,
+ out seq5: Integer[] sequence,
+ out seq6: Integer[] sequence,
+ out seq7: Integer[] sequence,
+ out x: Integer,
+ out customers: Customer[] sequence,
+ out set1: Set<Integer>,
+ out set2: Set<Integer>,
+ out list: List< List<String> >
+ ) {
+
+ seq1 = String[]{"apple","orange","strawberry"};
+ seq2 = new String[]{"apple","orange","strawberry",};
+ seq3 = any[]{1, true, "blah"};
+ seq4 = Integer[]{1, 2, 3,};
+ seq5 = Integer[]{1, 2, 3};
+ seq6 = Integer[]{1..3};
+ seq7 = null;
+
+ x = this.getList()[2];
+
+ i = 2;
+ customers = Customer[]{ new Customer("A"), new Customer("B") };
+ customers[i] = new Customer("C");
+
+ set1 = new Set<Integer>(Integer[]{1,3,45});
+ set2 = Set<Integer>{1, 3, 45};
+ new Bag<String>{"Test"};
+ list = new List< List<String> >{{"apple","orange"},{"strawberry","raspberry"}};
+ }
+} do {
+ /*
+ this.test(seq1,seq2,seq3,seq4,seq5,seq6,seq7,x,customers,set1,set2,list);
+
+ AssertList("seq1", seq1, any[]{"apple","orange","strawberry"});
+ AssertList("seq2", seq2, any[]{"apple","orange","strawberry"});
+ AssertList("seq3", seq3, any[]{1, true, "blah"});
+ AssertList("seq4", seq4, any[]{1,2,3});
+ AssertList("seq5", seq5, any[]{1,2,3});
+ AssertList("seq6", seq6, any[]{1,2,3});
+ AssertTrue("seq7->isEmpty()", seq7->isEmpty());
+
+ AssertEqual("x5", x, 5);
+
+ AssertList("customers.name", customers.name, String[]{"A", "C"});
+
+ AssertTrue("set1.includes(1)", set1.includes(1));
+ AssertTrue("set1.includes(3)", set1.includes(3));
+ AssertTrue("set1.includes(45)", set1.includes(45));
+
+ AssertTrue("set2.includes(1)", set2.includes(1));
+ AssertTrue("set2.includes(3)", set2.includes(3));
+ AssertTrue("set2.includes(45)", set2.includes(45));
+
+ AssertEqual("list.size()", list.size(), 2);
+ AssertList("list.at(1)", list.at(1).toSequence(), any[]{"apple","orange"});
+ AssertList("list.at(2)", list.at(2).toSequence(), any[]{"strawberry","raspberry"});
+
+ WriteLine("Done");
+ */
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Sequence_Expansion_Reduction.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Sequence_Expansion_Reduction.alf
new file mode 100644
index 00000000000..77e0ae5cb3f
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Sequence_Expansion_Reduction.alf
@@ -0,0 +1,120 @@
+private import Alf::Library::PrimitiveBehaviors::IntegerFunctions::*;
+/**
+ * Test sequence expansion and reduction expressions.
+ **/
+active class Expressions_Sequence_Expansion_Reduction {
+
+ // Supporting declarations *************************************************
+
+ public class Employee {
+ public age: Integer = 51;
+ public isMarried: Boolean = true;
+ public name: String = "Joan";
+ public title: String = "President";
+ public id: Integer = 1;
+ }
+
+ public class Attribute {
+
+ public type: Integer = 0;
+
+ }
+
+ public class Something {
+
+ public attribute: Attribute [*] = new Attribute();
+
+ }
+
+ public class Object {
+
+ public attr: Attribute;
+
+ public init (in attr: Attribute) {
+ this.attr = attr;
+ }
+
+ }
+
+ activity Bad(in x: Integer, in y: Integer): Integer { return x/y; }
+
+ //**************************************************************************
+
+ public activity test(
+ out sum: Integer,
+ out remainder: Integer,
+ out bad: Integer,
+ out select: Employee[*] sequence,
+ out reject: Employee[*] sequence,
+ out collect: String[*] sequence,
+ out iterate: String[*] sequence,
+ out forAll: Boolean,
+ out exists: Boolean,
+ out one: Boolean,
+ out unique: Boolean,
+ out jack: Employee,
+ out joan: Employee,
+ out something: Something,
+ out obj: Object) {
+
+ subtotals = Integer[]{1,2,3};
+ sum = subtotals->reduce '+';
+ remainder = subtotals->reduce ordered '%';
+ bad = Integer[]{1,0,4,2}->reduce Bad;
+
+ e1 = new Employee();
+ e2 = new Employee();
+ e2.name = "Jack";
+ e2.age = 30;
+ e2.isMarried = false;
+ e2.title = "Director";
+ e2.id = 1;
+
+ employees = Employee[]{e1, e2};
+
+ select = employees->select e (e.age>50);
+ reject = employees->reject e (e.isMarried);
+ collect = employees->collect a (a.name);
+ iterate = employees->iterate e (e.name);
+ forAll = employees->forAll e (e.age<=65);
+ exists = employees->exists e (e.name=="Joan");
+ one = employees->one e (e.title=="President");
+ unique = employees->isUnique e (e.id);
+
+ jack = Employee->select e (e.name=="Jack")[1];
+ joan = Employee.allInstances()->select e (e.name=="Joan")[1];
+
+ myType = +1;
+ something = new Something();
+ something.attribute->iterate attr (attr.type = myType);
+
+ obj = new Object();
+ something.attribute->iterate attr (obj.init(attr));
+
+ }
+} do {
+ test(sum, remainder, bad,
+ select, reject, collect, iterate, forAll, exists, one, unique,
+ jack, joan, something, obj);
+
+// AssertEqual("sum",sum, 6);
+// AssertEqual("remainder", remainder, 1);
+// AssertEqual("bad", bad, 2);
+//
+// AssertList("select.name", select.name, String[]{"Joan"});
+// AssertList("reject.name", reject.name, String[]{"Jack"});
+// AssertList("collect.name", collect, String[]{"Joan","Jack"});
+// AssertList("iterate.name", iterate, String[]{"Joan","Jack"});
+// AssertTrue("forAll", forAll);
+// AssertTrue("exists", exists);
+// AssertTrue("one", one);
+// AssertFalse("unique", unique);
+//
+// AssertEqual("jack.name", jack.name, "Jack");
+// AssertEqual("joan.name", joan.name, "Joan");
+//
+// AssertList("something.attribute.type", something.attribute.type, 1);
+// AssertEqual("obj.attr.type", obj.attr.type, 1);
+
+ WriteLine("Done");
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Sequence_Operation.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Sequence_Operation.alf
new file mode 100644
index 00000000000..03627ae4b3f
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Sequence_Operation.alf
@@ -0,0 +1,55 @@
+/**
+ * Test sequence operation expressions.
+ **/
+active class Expressions_Sequence_Operation {
+
+ // Supporting declarations *************************************************
+
+ class Customer {
+ public name: String;
+ @Create Customer(in name: String) { this.name = name; }
+ }
+
+ //**************************************************************************
+
+ test(
+ out notEmpty: Boolean, out includes: Boolean, out m: Integer, out n: Integer,
+ out customers: Customer[*], out list: any[*]) {
+
+ customer = new Customer("A");
+ customers = Customer[]{};
+
+ notEmpty = customers->notEmpty();
+ customers->notEmpty(); // Check that notEmpty is still resolvable as a behavior.
+ includes = customers->includes(customer);
+ customers = customers->including(customer);
+ customers->add(new Customer("B"));
+ customers->add(new Customer("C"));
+ customers->add(customer);
+ customers->removeAt(2);
+ customers->remove(customer);
+
+ m = Customer->size();
+ n = Customer.allInstances()->size();
+
+ list = null; // Type is "any".
+ list = list->including(customer);
+ list->add(customer);
+ list->add("Blah");
+ list->add(1);
+ list->removeAll(customer);
+ }
+
+} do {
+ this.test(notEmpty, includes, n, m, customers, list);
+
+// AssertFalse("notEmpty", notEmpty);
+// AssertFalse("includes", includes);
+// AssertEqual("n", n, 3);
+// AssertEqual("m", m, 3);
+//
+// AssertList("customers.name", customers.name, "C");
+// AssertList("list", list, any[]{"Blah", 1});
+
+ WriteLine("Done");
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_SuperConstructors.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_SuperConstructors.alf
new file mode 100644
index 00000000000..5eabf6814d9
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_SuperConstructors.alf
@@ -0,0 +1,115 @@
+/**
+ * Test super constructor invocation expressions.
+ **/
+active class Expressions_SuperConstructors {
+
+ // Supporting declarations *************************************************
+ class Super1 {
+
+ public x: Integer = 0;
+
+ @Create public Super1() { }
+ @Create public create(in x: Integer) {
+ this.x = x;
+ }
+ }
+
+ class Sub1 specializes Super1 {
+
+ public z1: Integer = this.x + 1;
+
+ @Create public Sub1() {
+ super();
+ }
+ @Create public a() {
+ this.b(1);
+ }
+ @Create public b(in x: Integer) {
+ super.create(x);
+ }
+ }
+
+ class Super2 {
+
+ public y: Integer = 0;
+
+ @Create public Super2() { }
+ @Create public create(in y: Integer) {
+ this.y = y;
+ }
+ }
+
+ class Sub2 specializes Super1, Super2 {
+
+ public z2: Integer = this.x + this.y;
+
+ @Create public Sub2() { }
+ @Create public create1(in x: Integer) {
+ super.Super1::create(x);
+ }
+ @Create public create2(in x: Integer, in y: Integer) {
+ super.Super1::create(x);
+ super.Super2::create(y);
+ }
+ }
+
+ class Sub3 specializes Sub1, Sub2 {
+ @Create public Sub3() {
+ super.Sub1::b(3);
+ super.Sub2::create2(1,2);
+ }
+ }
+
+ //**************************************************************************
+
+ test(
+ out super0: Super1, out super1: Super1,
+ out s0: Sub1, out s1: Sub1, out s2: Sub1,
+ out s00: Sub2, out s10: Sub2, out s11: Sub2,
+ out s3: Sub3) {
+
+ super0 = new Super1();
+ super1 = new Super1::create(1);
+
+ s0 = new Sub1();
+ s1 = new Sub1::a();
+ s2 = new Sub1::b(2);
+
+ s00 = new Sub2();
+ s10 = new Sub2::create1(1);
+ s11 = new Sub2::create2(1,1);
+
+ s3 = new Sub3();
+ }
+
+} do {
+ this.test(super0, super1, s0, s1, s2, s00, s10, s11, s3);
+ /*
+ AssertEqual("super0.x", super0.x, 0);
+ AssertEqual("super1.x", super1.x, 1);
+
+ AssertEqual("s0.x", s0.x, 0);
+ AssertEqual("s0.z1", s0.z1, 1);
+ AssertEqual("s1.x", s1.x, 1);
+ AssertEqual("s1.z1", s1.z1, 2);
+ AssertEqual("s2.x", s2.x, 2);
+ AssertEqual("s2.z1", s2.z1, 3);
+
+ AssertEqual("s00.x", s00.x, 0);
+ AssertEqual("s00.y", s00.y, 0);
+ AssertEqual("s00.z2", s00.z2, 0);
+ AssertEqual("s10.x", s10.x, 1);
+ AssertEqual("s10.y", s10.y, 0);
+ AssertEqual("s10.z2", s10.z2, 1);
+ AssertEqual("s11.x", s11.x, 1);
+ AssertEqual("s11.y", s11.y, 1);
+ AssertEqual("s11.z2", s11.z2, 2);
+
+ AssertEqual("s3.x", s3.x, 3);
+ AssertEqual("s3.y", s3.y, 2);
+ AssertEqual("s3.z1", s3.z1, 4);
+ AssertEqual("s3.z2", s3.z2, 5);
+ */
+ WriteLine("Done");
+}
+ \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Template.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Template.alf
new file mode 100644
index 00000000000..475bf7cac0a
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Expressions_Template.alf
@@ -0,0 +1,79 @@
+/**
+ * Test expressions involving templates.
+ **/
+active class Expressions_Template {
+
+ public receive signal Continue { }
+
+ public activity A<T specializes B>(in x: T): Integer {
+ return x.i;
+ }
+
+ public class B {
+ public i: Integer;
+ @Create public B(in i: Integer) { this.i = i; }
+ }
+
+ public class C<T> {
+ p: T;
+
+ @Create public C(in p: T) { this.p = p; }
+ r(): T { return this.p; }
+
+ activity E(in x: T): T { return x; }
+ }
+
+ public active class H<T> {
+ public a: T;
+ public b: T;
+ public t: TestRunner;
+ @Create public H(in a: T, in t: TestRunner) {
+ this.a = a;
+ this.t = t;
+ }
+ } do {
+ $(this.b = new C<T>(this.a).r());
+ this.t.Continue();
+ }
+
+ public active class TestRunner {
+ public receive signal Start { }
+ public receive signal Continue { }
+
+ public test(
+ out i: Integer, out j: Integer, out h: H<B>,
+ out s: Set<Integer>, out list: List<Integer>
+ ) {
+
+ b = new B(1);
+
+ i = A<B>(b);
+ j = C<B>.E(b).i;
+ h = new H<B>(b, this);
+
+ s = new Set<Integer>(null);
+ s.add(1);
+
+ list = List<Integer>{1, 2, 3};
+ }
+
+ } do {
+ /*
+ accept (Start);
+ this.test(i, j, h, s, list);
+ accept (Continue);
+
+ AssertEqual("i", i, 1);
+ AssertEqual("j", j, 1);
+ AssertEqual("h.b.i", h.b.i, 1);
+
+ AssertList("s", s.toSequence(), 1);
+ AssertList("list", list.toSequence(), Integer[]{1,2,3});
+
+ WriteLine("Done");
+ */
+ }
+
+} do {
+ new TestRunner().Start();
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/ModelLibraryTest.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/ModelLibraryTest.alf
new file mode 100644
index 00000000000..f8de5dbb1c7
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/ModelLibraryTest.alf
@@ -0,0 +1,6 @@
+@ModelLibrary
+package ModelLibraryTest {
+ public class C {
+ @Create public C() {}
+ }
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/ReferentTest.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/ReferentTest.alf
new file mode 100644
index 00000000000..4bbe4c24bfe
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/ReferentTest.alf
@@ -0,0 +1,10 @@
+class ReferentTest {
+
+ public active class Test {
+ private test(out test: Test) {
+ }
+
+ } do {
+ this.test();
+ }
+}
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/SelfReferenceTest.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/SelfReferenceTest.alf
new file mode 100644
index 00000000000..9c9bb1f2fb3
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/SelfReferenceTest.alf
@@ -0,0 +1,3 @@
+class SelfReferenceTest {
+ public self: SelfReferenceTest;
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Statements_Accept.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Statements_Accept.alf
new file mode 100644
index 00000000000..c5dda80f0d8
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Statements_Accept.alf
@@ -0,0 +1,124 @@
+/**
+ * Test accept statements.
+ **/
+active class Statements_Accept {
+
+ private abstract active class Super {
+ public signal SignalNewArrival { public name: String; }
+ public receive signal SignalTermination { }
+ }
+
+ private active class Test specializes Super {
+
+ public sig: any;
+ public sig1: any;
+ public name: String;
+ public terminate: Boolean;
+ public arrival: SignalNewArrival;
+
+ public count: Integer = 0;
+ public signals: any[*] sequence;
+
+ public flag: Boolean;
+
+ public receive SignalNewArrival;
+
+ public tester: TestRunner;
+
+ @Create
+ public Test(in tester: TestRunner) {
+ this.tester = tester;
+ }
+
+ } do {
+
+ accept (sig: SignalNewArrival, SignalTermination);
+ this.sig = sig;
+
+ terminate = false;
+ accept (arrival1: SignalNewArrival) {
+ this.name = arrival1.name;
+ } or accept (SignalTermination) {
+ terminate = true;
+ }
+ this.terminate = terminate;
+
+ accept (SignalNewArrival);
+
+ accept (arrival3: SignalNewArrival);
+ this.arrival = arrival3;
+
+ for (i in 1..2) {
+ accept (s1: SignalNewArrival, SignalTermination);
+ this.signals[i] = s1;
+ }
+
+ do {
+ accept (s: SignalNewArrival, SignalTermination);
+ this.count++;
+ } while (s hastype SignalNewArrival);
+
+ if (true) {
+ accept (SignalNewArrival);
+ this.flag = true;
+ } else {
+ accept (SignalTermination);
+ this.flag = false;
+ }
+
+ accept (sig1: SignalTermination);
+ this.sig1 = sig1;
+
+ this.tester.Continue();
+
+ }
+
+ public active class TestRunner {
+ public receive signal Start { }
+ public receive signal Continue { }
+
+ private run(out test: Test) {
+ test = new Test(this);
+
+ test.SignalTermination();
+ test.SignalNewArrival("Arrival1");
+ test.SignalNewArrival("Arrival2");
+ test.SignalNewArrival("Arrival3");
+
+ test.SignalNewArrival("Arrival4");
+ test.SignalTermination();
+
+ test.SignalNewArrival("Arrival5");
+ test.SignalNewArrival("Arrival6");
+ test.SignalTermination();
+
+ test.SignalNewArrival("Arrival7");
+ test.SignalNewArrival("Arrival8");
+ test.SignalTermination();
+ }
+
+ } do {
+ /*
+ accept(Start);
+ this.run(test);
+ accept (Continue);
+
+ AssertTrue("test.sig instanceof SignalTermination", test.sig instanceof Test::SignalTermination);
+ AssertEqual("test.name", test.name, "Arrival1");
+ AssertFalse("test.terminate", test.terminate);
+ AssertEqual("test.arrival.name", test.arrival.name, "Arrival3");
+
+ AssertTrue("test.signals[1] hastype SignalArrival", test.signals[1] hastype Test::SignalNewArrival);
+ AssertTrue("test.signals[2] hastype SignalTermination", test.signals[2] hastype Test::SignalTermination);
+
+ AssertEqual("test.count", test.count, 3);
+ AssertTrue("test.flag", test.flag);
+ AssertTrue("test.sig1 instanceof SignalTermination", test.sig1 instanceof Test::SignalTermination);
+
+ WriteLine("Done");
+ */
+ }
+
+} do {
+ new TestRunner().Start();
+}
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Statements_Classify.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Statements_Classify.alf
new file mode 100644
index 00000000000..eeae3bb030b
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Statements_Classify.alf
@@ -0,0 +1,79 @@
+/**
+ * Test classify statements.
+ **/
+active class Statements_Classify {
+
+ // Supporting declarations *************************************************
+
+ class Monitor { }
+ class InActiveMonitor specializes Monitor { }
+ active class ActiveMonitor specializes Monitor {
+ public n: Integer = 0;
+ } do {
+ this.n = 1;
+ TestRunner.allInstances().Continue();
+ }
+
+ class Employee { }
+ class Administrator specializes Employee { }
+ class Staff specializes Employee { }
+ class PartTime specializes Employee { }
+ class Issue { }
+ class Pending specializes Issue { }
+ class InProcess specializes Issue { }
+ class Overdue specializes Issue { }
+ class Resolved specializes Issue { }
+
+ //**************************************************************************
+
+ active class TestRunner {
+ public receive signal Start { }
+ public receive signal Continue { }
+
+ public test(out employee: Employee, out monitor: Monitor, out issue: Issue) {
+
+ // Setup
+ employee = new Staff();
+ monitor = new InActiveMonitor();
+ issue = new Pending();
+ // ***
+
+ classify employee from * to Administrator;
+ classify employee to PartTime;
+ classify employee from Administrator;
+ classify monitor from InActiveMonitor to ActiveMonitor;
+ classify issue
+ from Pending, Overdue
+ to Resolved, InProcess;
+
+ }
+
+ } do {
+ /*
+ accept (Start);
+ this.test(employee, monitor, issue);
+ accept (Continue);
+
+ AssertTrue("employee instanceof Employee", employee instanceof Employee);
+ AssertFalse("employee hastype Staff", employee hastype Staff);
+ AssertFalse("employee hastype Administrator", employee hastype Administrator);
+ AssertTrue("employee hastype PartTime", employee hastype PartTime);
+
+ AssertTrue("monitor instanceof Monitor", monitor instanceof Monitor);
+ AssertFalse("monitor hastype InActiveMonitor", monitor hastype InActiveMonitor);
+ AssertTrue("monitor hastype ActiveMonitor", monitor hastype ActiveMonitor);
+ AssertEqual("monitor.n", ((ActiveMonitor)monitor).n, 1);
+
+ AssertTrue("issue instanceof Issue", issue instanceof Issue);
+ AssertFalse("issue hastype Pending", issue hastype Pending);
+ AssertFalse("issue hastype Overdue", issue hastype Overdue);
+ AssertTrue("issue hastype Resolved", issue hastype Resolved);
+ AssertTrue("issue hastype InProcess", issue hastype InProcess);
+
+ WriteLine("Done");
+ */
+ }
+
+} do {
+ new TestRunner().Start();
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Statements_Conditional.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Statements_Conditional.alf
new file mode 100644
index 00000000000..70ead178705
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Statements_Conditional.alf
@@ -0,0 +1,102 @@
+/**
+ * Test if and switch statements.
+ **/
+active class Statements_Conditional {
+
+ // Supporting declarations *************************************************
+
+ class Monitor {
+ public raiseAlarm(in sensorId: Integer) { }
+ public cleanUp() { }
+ }
+ enum Condition { normal, alert, critical, error }
+
+ //**************************************************************************
+
+ test(out condition1: Condition, out condition2: Condition, out condition3: Condition,
+ out year: Integer, out month: Integer, out numDays: Integer ) {
+
+ // Setup
+ reading = 150;
+ threshold = 10;
+ safeLimit = 100;
+ criticalLimit = 200;
+ errorLimit = 1000;
+ sensorId = 1;
+ monitor = new Monitor();
+ year = 2012;
+ // *****
+
+ if (reading > threshold) {
+ monitor.raiseAlarm(sensorId);
+ }
+
+ //@determinate @assured
+ if (reading <= safeLimit) {
+ condition1 = Condition::normal; }
+ or if (reading > safeLimit && reading <= criticalLimit) {
+ condition1 = Condition::alert; }
+ or if (reading > criticalLimit) {
+ condition1 = Condition::critical; }
+
+ reading = 500;
+
+ if (reading <= safeLimit) {
+ condition2 = Condition::normal;
+ }
+ else if (reading <= criticalLimit) {
+ condition2 = Condition::alert;
+ }
+ else {
+ condition2 = Condition::critical;
+ }
+
+ if (reading <= safeLimit) {
+ condition3 = Condition::normal; }
+ else if (reading > safeLimit && reading <= criticalLimit) {
+ condition3 = Condition::alert; }
+ or if (reading > criticalLimit && reading < errorLimit) {
+ condition3 = Condition::critical; }
+ else {
+ condition3 = Condition::error; }
+
+ switch (year) {
+ case 2012:
+ month = 2;
+ default:
+ month = 3;
+ }
+
+ switch (month) {
+ case 1: case 3: case 5: case 7: case 8: case 10: case 12:
+ numDays = 31;
+ case 4: case 6: case 9: case 11:
+ numDays = 30;
+ case 2:
+ if ( ((year % 4 == 0) && !(year % 100 == 0))
+ || (year % 400 == 0) ) {
+ numDays = 29;
+ }
+ else {
+ numDays = 28;
+ }
+ default:
+ WriteLine("Invalid month.");
+ numDays = 0;
+ }
+
+ }
+} do {
+ /*
+ this.test(condition1, condition2, condition3, year, month, numDays);
+
+ AssertEqual("condition1", condition1, Condition::alert);
+ AssertEqual("condition2", condition2, Condition::critical);
+ AssertEqual("condition3", condition3, Condition::critical);
+ AssertEqual("year", year, 2012);
+ AssertEqual("month", month, 2);
+ AssertEqual("numDays", numDays, 29);
+
+ WriteLine("Done");
+ */
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Statements_For_Looping.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Statements_For_Looping.alf
new file mode 100644
index 00000000000..5fcea607e65
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/Statements_For_Looping.alf
@@ -0,0 +1,93 @@
+/**
+ * Test for statements.
+ **/
+active class Statements_For_Looping {
+
+ // Supporting declarations *************************************************
+
+ private class Sensor {
+ private reading: Integer[0..1];
+ @Create public Sensor(in reading: Integer[0..1]) {
+ this.reading = reading;
+ }
+ public getNextReading(): Integer[0..1] { return this.reading; }
+ }
+ private class ActivityEdgeInstance {
+ public token: Integer;
+ public sendOffer(in token: Integer) {
+ this.token = token;
+ }
+ }
+
+ private activity processRecord(in index: Integer) { }
+
+ //**************************************************************************
+
+ public test(
+ out readings: Integer[*], out sum1: Integer,
+ out outgoingEdges: ActivityEdgeInstance[*],
+ out SnEven: Integer[*], out SnOdd: Integer[*]) {
+
+ // Setup
+ noiseLimit = 0;
+ sensors = Sensor[]{new Sensor(1), new Sensor(2), new Sensor(null), new Sensor(3)};
+ reading = +0;
+ readings = null;
+ recordCount = 10;
+ let sum: Integer = 0; // Make sure assigned values work right for local declaration statements.
+ outgoingEdges = ActivityEdgeInstance[]{new ActivityEdgeInstance(), new ActivityEdgeInstance()};
+ tokens = Integer[]{1, 2, 3};
+ SLower = Integer[]{4, 5, 6};
+ SUpper = Integer[]{1, 2, 3};
+ SnEven = null;
+ SnOdd = null;
+ V = Integer[]{10, 20, 30};
+ // *****
+
+ for (s in sensors) {
+ reading = s.getNextReading();
+ if (reading->isEmpty()) {
+ break;
+ }
+ if (reading > noiseLimit) {
+ readings->add(reading);
+ }
+ }
+
+ for (j in 1..recordCount) {
+ sum = sum + j;
+ }
+ sum1 = sum;
+
+ for (ActivityEdgeInstance outgoingEdge: outgoingEdges, Integer token: tokens) {
+ outgoingEdge.sendOffer(token);
+ }
+
+ //@parallel
+ for (outgoingEdge in outgoingEdges, token in tokens) {
+ outgoingEdge.sendOffer(outgoingEdge.token + token);
+ }
+
+ //@parallel(SnEven,SnOdd)
+ for (lower in SLower, upper in SUpper, root in V) {
+ //@parallel
+ {
+ add(SnEven, lower+upper);
+ SnOdd->add((lower-upper)*root);
+ }
+ }
+
+ }
+} do {
+ /*
+ this.test(readings, sum, outgoingEdges, SnEven, SnOdd);
+
+ AssertList("readings", readings, Integer[]{1,2});
+ AssertEqual("sum", sum, 55);
+ AssertList("outgoingEdges.token", outgoingEdges.token, Integer[]{2,4});
+ AssertList("SnEven", SnEven, Integer[]{5,7,9});
+ AssertList("SnOdd", SnOdd, Integer[]{30,60,90});
+
+ WriteLine("Done");
+ */
+}
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/TemplateActivityTest.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/TemplateActivityTest.alf
new file mode 100644
index 00000000000..d24df10dcc7
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/TemplateActivityTest.alf
@@ -0,0 +1,3 @@
+activity A<T>(in x: T) {
+ return;
+}
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/TemplateBindingTest.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/TemplateBindingTest.alf
new file mode 100644
index 00000000000..86683aeb5f4
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/TemplateBindingTest.alf
@@ -0,0 +1,8 @@
+active class TemplateBindingTest {
+ class C<T> {
+ @Create public C(){}
+ }
+ public c : C<Integer>;
+} do {
+ this.c = new C<Integer>();
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/TestActivity.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/TestActivity.alf
new file mode 100644
index 00000000000..d51fad1e4f3
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/TestActivity.alf
@@ -0,0 +1,5 @@
+private import Alf::Library::BasicInputOutput::*;
+activity TestActivity() : Integer {
+ WriteLine("Hello Test!");
+}
+
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/TestClass.alf b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/TestClass.alf
new file mode 100644
index 00000000000..acd6b165b08
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/tests/TestClass.alf
@@ -0,0 +1,11 @@
+/** Comment */
+abstract class A {
+ /** Member Comment */
+ private x : Integer = 1;
+ private y : String;
+ private z : any[0..*];
+ /** Another comment */
+ activity R(in x: Integer);
+ public abstract p(in x : Integer, out y : Integer);
+ public q(in s : String[]) : Boolean { return s == ""; }
+} \ No newline at end of file
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/xtend-gen/org/eclipse/papyrus/uml/alf/tests/.gitignore b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/xtend-gen/org/eclipse/papyrus/uml/alf/tests/.gitignore
new file mode 100644
index 00000000000..fb0361dc50c
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/xtend-gen/org/eclipse/papyrus/uml/alf/tests/.gitignore
@@ -0,0 +1,5 @@
+/Parse.java
+/ParserTest.java
+/SemanticTest.java
+/SingleTest.java
+/SyntacticTest.java
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/xtend-gen/org/eclipse/papyrus/uml/alf/tests/generator/.gitignore b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/xtend-gen/org/eclipse/papyrus/uml/alf/tests/generator/.gitignore
new file mode 100644
index 00000000000..961fe04588f
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/xtend-gen/org/eclipse/papyrus/uml/alf/tests/generator/.gitignore
@@ -0,0 +1 @@
+/GenerationTest.java
diff --git a/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/xtend-gen/org/eclipse/papyrus/uml/alf/tests/mapper/.gitignore b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/xtend-gen/org/eclipse/papyrus/uml/alf/tests/mapper/.gitignore
new file mode 100644
index 00000000000..5513e6ec0fa
--- /dev/null
+++ b/tests/junit/plugins/uml/alf/org.eclipse.papyrus.uml.alf.tests/xtend-gen/org/eclipse/papyrus/uml/alf/tests/mapper/.gitignore
@@ -0,0 +1,2 @@
+/MappingTest.java
+/MergeTest.java

Back to the top