Another test model
Change-Id: Ie9b3755cb7143eb6e5ac24f43a3e499b6f3b9361
Signed-off-by: Ernesto Posse <eposse@gmail.com>
diff --git a/models/tests/codepattern/structure/SymbolicReplication8/.project b/models/tests/codepattern/structure/SymbolicReplication8/.project
new file mode 100644
index 0000000..bf671a4
--- /dev/null
+++ b/models/tests/codepattern/structure/SymbolicReplication8/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>SymbolicReplication8</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ </buildSpec>
+ <natures>
+ </natures>
+</projectDescription>
diff --git a/models/tests/codepattern/structure/SymbolicReplication8/SymbolicReplication8.di b/models/tests/codepattern/structure/SymbolicReplication8/SymbolicReplication8.di
new file mode 100644
index 0000000..bf9abab
--- /dev/null
+++ b/models/tests/codepattern/structure/SymbolicReplication8/SymbolicReplication8.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/models/tests/codepattern/structure/SymbolicReplication8/SymbolicReplication8.notation b/models/tests/codepattern/structure/SymbolicReplication8/SymbolicReplication8.notation
new file mode 100644
index 0000000..23eecd7
--- /dev/null
+++ b/models/tests/codepattern/structure/SymbolicReplication8/SymbolicReplication8.notation
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:configuration="http://www.eclipse.org/papyrus/infra/viewpoints/configuration" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_IXuDQN6IEeaOPeOdlxy0RA" type="CompositeStructure" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_IYJhEN6IEeaOPeOdlxy0RA" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IYNygN6IEeaOPeOdlxy0RA" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IYNygd6IEeaOPeOdlxy0RA" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IYNygt6IEeaOPeOdlxy0RA" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IYOZkN6IEeaOPeOdlxy0RA" type="Class_StructureCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IYOZkd6IEeaOPeOdlxy0RA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IYOZkt6IEeaOPeOdlxy0RA"/>
+ </children>
+ <element xmi:type="uml:Class" href="SymbolicReplication8.uml#_ITUEYN6IEeaOPeOdlxy0RA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IYJhEd6IEeaOPeOdlxy0RA" x="40" y="40" width="500" height="250"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_IXuqUN6IEeaOPeOdlxy0RA" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_IXuqUd6IEeaOPeOdlxy0RA"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_IXuqUt6IEeaOPeOdlxy0RA">
+ <owner xmi:type="uml:Class" href="SymbolicReplication8.uml#_ITUEYN6IEeaOPeOdlxy0RA"/>
+ <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrusrt.umlrt.tooling.diagram.common/configuration/UMLRT.configuration#_Z79eQHcZEeSnWeKqQOfW2A"/>
+ </styles>
+ <element xmi:type="uml:Class" href="SymbolicReplication8.uml#_ITUEYN6IEeaOPeOdlxy0RA"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_4wOUgN6IEeaOPeOdlxy0RA" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_6M2qkN6IEeaOPeOdlxy0RA" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_6M68AN6IEeaOPeOdlxy0RA" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6M68Ad6IEeaOPeOdlxy0RA" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6M68At6IEeaOPeOdlxy0RA" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6M7jEN6IEeaOPeOdlxy0RA" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6M7jEd6IEeaOPeOdlxy0RA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6M7jEt6IEeaOPeOdlxy0RA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6M7jE96IEeaOPeOdlxy0RA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6M7jFN6IEeaOPeOdlxy0RA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6M7jFd6IEeaOPeOdlxy0RA" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6M7jFt6IEeaOPeOdlxy0RA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6M7jF96IEeaOPeOdlxy0RA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6M7jGN6IEeaOPeOdlxy0RA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6M7jGd6IEeaOPeOdlxy0RA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6M7jGt6IEeaOPeOdlxy0RA" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6M7jG96IEeaOPeOdlxy0RA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6M7jHN6IEeaOPeOdlxy0RA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6M7jHd6IEeaOPeOdlxy0RA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6M7jHt6IEeaOPeOdlxy0RA"/>
+ </children>
+ <element xmi:type="uml:Class" href="SymbolicReplication8.uml#_PW0jYN6IEeaOPeOdlxy0RA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6M2qkd6IEeaOPeOdlxy0RA" x="227" y="230"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CsBPQN6JEeaOPeOdlxy0RA" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CsDrgN6JEeaOPeOdlxy0RA" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CsDrgd6JEeaOPeOdlxy0RA" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CsDrgt6JEeaOPeOdlxy0RA" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CsDrg96JEeaOPeOdlxy0RA" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CsDrhN6JEeaOPeOdlxy0RA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CsDrhd6JEeaOPeOdlxy0RA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CsDrht6JEeaOPeOdlxy0RA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CsDrh96JEeaOPeOdlxy0RA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CsDriN6JEeaOPeOdlxy0RA" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CsDrid6JEeaOPeOdlxy0RA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CsDrit6JEeaOPeOdlxy0RA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CsDri96JEeaOPeOdlxy0RA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CsDrjN6JEeaOPeOdlxy0RA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CsDrjd6JEeaOPeOdlxy0RA" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CsDrjt6JEeaOPeOdlxy0RA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CsDrj96JEeaOPeOdlxy0RA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CsDrkN6JEeaOPeOdlxy0RA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CsDrkd6JEeaOPeOdlxy0RA"/>
+ </children>
+ <element xmi:type="uml:Class" href="platform:/resource/SymbolicReplication6/SymbolicReplication6.uml#_N_p6AN21EeaVi7aNjIFecA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CsBPQd6JEeaOPeOdlxy0RA" x="600" y="238"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_4wOUgd6IEeaOPeOdlxy0RA" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_4wOUgt6IEeaOPeOdlxy0RA"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_4wOUg96IEeaOPeOdlxy0RA">
+ <owner xmi:type="uml:Package" href="SymbolicReplication8.uml#_LCN6oN6IEeaOPeOdlxy0RA"/>
+ </styles>
+ <element xmi:type="uml:Package" href="SymbolicReplication8.uml#_LCN6oN6IEeaOPeOdlxy0RA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_E3clAN6JEeaOPeOdlxy0RA" type="Dependency_Edge" source="_6M2qkN6IEeaOPeOdlxy0RA" target="_CsBPQN6JEeaOPeOdlxy0RA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_E3dMEt6JEeaOPeOdlxy0RA" type="Dependency_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_E3dME96JEeaOPeOdlxy0RA" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_E3dMFN6JEeaOPeOdlxy0RA" type="Dependency_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_E3dMFd6JEeaOPeOdlxy0RA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_E3dMEN6JEeaOPeOdlxy0RA"/>
+ <element xmi:type="uml:Dependency" href="SymbolicReplication8.uml#_E3aIwN6JEeaOPeOdlxy0RA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_E3dMEd6JEeaOPeOdlxy0RA" points="[327, 263, -643984, -643984]$[600, 272, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_E4l0gN6JEeaOPeOdlxy0RA" id="(1.0,0.33)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_E4l0gd6JEeaOPeOdlxy0RA" id="(0.0,0.34)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/models/tests/codepattern/structure/SymbolicReplication8/SymbolicReplication8.uml b/models/tests/codepattern/structure/SymbolicReplication8/SymbolicReplication8.uml
new file mode 100644
index 0000000..f45a38c
--- /dev/null
+++ b/models/tests/codepattern/structure/SymbolicReplication8/SymbolicReplication8.uml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:UMLRealTime="http://www.eclipse.org/papyrus/umlrt" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <uml:Model xmi:id="_F9utEN6IEeaOPeOdlxy0RA" name="SymbolicReplication8">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HWRNUN6IEeaOPeOdlxy0RA" source="http://www.eclipse.org/papyrus-rt/language/1.0.0">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HWR0YN6IEeaOPeOdlxy0RA" key="language" value="umlrt-cpp"/>
+ </eAnnotations>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ITUEYN6IEeaOPeOdlxy0RA" name="Top" isActive="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_ct8VgN6IEeaOPeOdlxy0RA" name="protocol1" visibility="public" type="_dPJlIN6IEeaOPeOdlxy0RA" isOrdered="true" aggregation="composite" isBehavior="true" isService="true">
+ <lowerValue xmi:type="uml:OpaqueExpression" xmi:id="_eanSsN6IEeaOPeOdlxy0RA">
+ <language>C++</language>
+ <body>SymbolicReplication8::Package1::Package2::Class1::Class1::Attribute3</body>
+ </lowerValue>
+ <upperValue xmi:type="uml:OpaqueExpression" xmi:id="_ebCJcN6IEeaOPeOdlxy0RA">
+ <language>C++</language>
+ <body>SymbolicReplication8::Package1::Package2::Class1::Class1::Attribute3</body>
+ </upperValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_LCN6oN6IEeaOPeOdlxy0RA" name="Package1">
+ <packagedElement xmi:type="uml:Package" xmi:id="_NWlJ8N6IEeaOPeOdlxy0RA" name="Package2">
+ <packagedElement xmi:type="uml:Class" xmi:id="_PW0jYN6IEeaOPeOdlxy0RA" name="Class1">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_QJZP0N6IEeaOPeOdlxy0RA" name="Attribute1" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_zdw8YN6IEeaOPeOdlxy0RA">
+ <language>C++</language>
+ <body>SymbolicReplication6::Package1::Class1::Attribute1 * 2</body>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Q98SMN6IEeaOPeOdlxy0RA" name="Attribute2" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_jfSGcN6IEeaOPeOdlxy0RA">
+ <language>C++</language>
+ <body>Attribute1 -3</body>
+ </defaultValue>
+ </ownedAttribute>
+ <nestedClassifier xmi:type="uml:Class" xmi:id="_RqvGwN6IEeaOPeOdlxy0RA" name="Class1">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_SiJ28N6IEeaOPeOdlxy0RA" name="Attribute1" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_tiHdUN6IEeaOPeOdlxy0RA">
+ <language>C++</language>
+ <body>SymbolicReplication8::Package1::Package2::Class1::Attribute1 -4</body>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_TO_HwN6IEeaOPeOdlxy0RA" name="Attribute3" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <defaultValue xmi:type="uml:OpaqueExpression" xmi:id="_olRI0N6IEeaOPeOdlxy0RA">
+ <language>C++</language>
+ <body>Attribute1 * Attribute2</body>
+ </defaultValue>
+ </ownedAttribute>
+ </nestedClassifier>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_E3aIwN6JEeaOPeOdlxy0RA" client="_PW0jYN6IEeaOPeOdlxy0RA">
+ <supplier xmi:type="uml:Class" href="../SymbolicReplication6/SymbolicReplication6.uml#_N_p6AN21EeaVi7aNjIFecA"/>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_dPRg8N6IEeaOPeOdlxy0RA" name="Protocol1">
+ <packagedElement xmi:type="uml:Collaboration" xmi:id="_dPJlIN6IEeaOPeOdlxy0RA" name="Protocol1">
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_dPdHIN6IEeaOPeOdlxy0RA" client="_dPJlIN6IEeaOPeOdlxy0RA" supplier="_dPYOoN6IEeaOPeOdlxy0RA" contract="_dPYOoN6IEeaOPeOdlxy0RA"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_dPotUN6IEeaOPeOdlxy0RA" client="_dPJlIN6IEeaOPeOdlxy0RA" supplier="_dPlC8N6IEeaOPeOdlxy0RA" contract="_dPlC8N6IEeaOPeOdlxy0RA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_dPYOoN6IEeaOPeOdlxy0RA" name="Protocol1"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_dPe8UN6IEeaOPeOdlxy0RA" name="Protocol1~"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_dPjNwN6IEeaOPeOdlxy0RA" client="_dPJlIN6IEeaOPeOdlxy0RA" supplier="_dPe8UN6IEeaOPeOdlxy0RA"/>
+ <packagedElement xmi:type="uml:AnyReceiveEvent" xmi:id="_dPkb4N6IEeaOPeOdlxy0RA" name="*"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_dPlC8N6IEeaOPeOdlxy0RA" name="Protocol1IO"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_dPp7cN6IEeaOPeOdlxy0RA" client="_dPJlIN6IEeaOPeOdlxy0RA" supplier="_dPlC8N6IEeaOPeOdlxy0RA"/>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_F-W_MN6IEeaOPeOdlxy0RA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_F-ZbcN6IEeaOPeOdlxy0RA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_RT_PROFILE/uml-rt.profile.uml#_1h74oEeVEeO0lv5O1DTHOQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_HXzeYN6IEeaOPeOdlxy0RA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HXzeYd6IEeaOPeOdlxy0RA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt/cppproperties#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UMLRT_CPP/RTCppProperties.profile.uml#_vl5LALs8EeSTjNEQkASznQ"/>
+ </profileApplication>
+ </uml:Model>
+ <UMLRealTime:Capsule xmi:id="_IYT5IN6IEeaOPeOdlxy0RA" base_Class="_ITUEYN6IEeaOPeOdlxy0RA"/>
+ <UMLRealTime:RTPort xmi:id="_cvOH4N6IEeaOPeOdlxy0RA" isPublish="false" isWired="true" base_Port="_ct8VgN6IEeaOPeOdlxy0RA"/>
+ <UMLRealTime:ProtocolContainer xmi:id="_dPUkQN6IEeaOPeOdlxy0RA" base_Package="_dPRg8N6IEeaOPeOdlxy0RA"/>
+ <UMLRealTime:RTMessageSet xmi:id="_dPbR8N6IEeaOPeOdlxy0RA" base_Interface="_dPYOoN6IEeaOPeOdlxy0RA"/>
+ <UMLRealTime:RTMessageSet xmi:id="_dPh_oN6IEeaOPeOdlxy0RA" base_Interface="_dPe8UN6IEeaOPeOdlxy0RA" rtMsgKind="out"/>
+ <UMLRealTime:RTMessageSet xmi:id="_dPnfMN6IEeaOPeOdlxy0RA" base_Interface="_dPlC8N6IEeaOPeOdlxy0RA" rtMsgKind="inOut"/>
+ <UMLRealTime:Protocol xmi:id="_dPqigN6IEeaOPeOdlxy0RA" base_Collaboration="_dPJlIN6IEeaOPeOdlxy0RA"/>
+</xmi:XMI>
diff --git a/models/tests/codepattern/structure/SymbolicReplication8/expected_src/CMakeLists.txt b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/CMakeLists.txt
new file mode 100644
index 0000000..f233596
--- /dev/null
+++ b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated 2017-01-19 16:03:37
+
+cmake_minimum_required(VERSION 2.8.7)
+set(TARGET TopMain)
+project(${TARGET})
+
+# require location of supporting RTS
+if (NOT UMLRTS_ROOT)
+ if (DEFINED ENV{UMLRTS_ROOT})
+ set(UMLRTS_ROOT $ENV{UMLRTS_ROOT})
+ else ()
+ set(UMLRTS_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/umlrt.rts)
+ endif ()
+endif ()
+
+# setup primary envars - provides tooling config
+include(${UMLRTS_ROOT}/build/buildenv.cmake)
+
+# model sources
+set(SRCS TopMain.cc Protocol1.cc Top.cc TopControllers.cc Class1.cc Class1.cc )
+
+# specify target
+add_executable(${TARGET} ${SRCS})
+
+# setup lib dependency support after defining TARGET
+include(${UMLRTS_ROOT}/build/rtslib.cmake)
+
+# compiler parameters
+set_target_properties(${TARGET} PROPERTIES COMPILE_OPTIONS "${COPTS}")
+set_target_properties(${TARGET} PROPERTIES COMPILE_DEFINITIONS "${CDEFS}")
+include_directories(${INCS})
+
+# linker parameters
+set_target_properties(${TARGET} PROPERTIES CMAKE_EXE_LINKER_FLAGS "${LOPTS}")
+target_link_libraries(${TARGET} ${LIBS})
+
diff --git a/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Class1.cc b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Class1.cc
new file mode 100644
index 0000000..848b284
--- /dev/null
+++ b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Class1.cc
@@ -0,0 +1,47 @@
+
+#include "Class1.hh"
+
+#include "umlrtobjectclass.hh"
+#include "umlrtobjectclassgeneric.hh"
+#include <cstddef>
+
+const UMLRTObject_field Class1::fields[] =
+{
+ {
+ "Attribute1",
+ &UMLRTType_int,
+ offsetof( Class1, Attribute1 ),
+ 1,
+ 0
+ },
+ {
+ "Attribute2",
+ &UMLRTType_int,
+ offsetof( Class1, Attribute2 ),
+ 1,
+ 0
+ }
+};
+
+
+
+
+const UMLRTObject_class UMLRTType_Class1 =
+{
+ UMLRTObjectInitialize<Class1>,
+ UMLRTObjectCopy<Class1>,
+ UMLRTObject_decode,
+ UMLRTObject_encode,
+ UMLRTObjectDestroy<Class1>,
+ UMLRTObject_fprintf,
+ "Class1",
+ NULL,
+ {
+ sizeof( Class1 ),
+ 2,
+ Class1::fields
+ },
+ UMLRTOBJECTCLASS_DEFAULT_VERSION,
+ UMLRTOBJECTCLASS_DEFAULT_BACKWARDS
+};
+
diff --git a/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Class1.hh b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Class1.hh
new file mode 100644
index 0000000..c09cf24
--- /dev/null
+++ b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Class1.hh
@@ -0,0 +1,19 @@
+
+#ifndef CLASS1_HH
+#define CLASS1_HH
+
+#include "umlrtobjectclass.hh"
+
+#include "Class1.hh"
+
+class Class1
+{
+public:
+ int Attribute1;
+ int Attribute2;
+ static const UMLRTObject_field fields[];
+};
+extern const UMLRTObject_class UMLRTType_Class1;
+
+#endif
+
diff --git a/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Makefile b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Makefile
new file mode 100644
index 0000000..0bcbd22
--- /dev/null
+++ b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Makefile
@@ -0,0 +1,11 @@
+##################################################
+# Default makefile
+# Redirect make to target makefile
+##################################################
+
+all:
+ make -f MakefileTop.mk all
+clean:
+ make -f MakefileTop.mk clean
+.PHONY:
+ make -f MakefileTop.mk all clean
diff --git a/models/tests/codepattern/structure/SymbolicReplication8/expected_src/MakefileTop.mk b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/MakefileTop.mk
new file mode 100644
index 0000000..111c0af
--- /dev/null
+++ b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/MakefileTop.mk
@@ -0,0 +1,49 @@
+# set default value for TARGETOS if is it not defined
+ifeq ($(TARGETOS), )
+$(warning warning: TARGETOS not defined. Choosing linux)
+TARGETOS=linux
+endif
+
+# set default value for BUILDTOOLS if is it not defined
+ifeq ($(BUILDTOOLS), )
+$(warning warning: BUILDTOOLS not defined. Choosing x86-gcc-4.6.3)
+BUILDTOOLS=x86-gcc-4.6.3
+endif
+
+# Location of RTS root.
+UMLRTS_ROOT ?= ./umlrt.rts
+
+CONFIG=$(TARGETOS).$(BUILDTOOLS)
+
+# Destination directory for the RTS services library.
+LIBDEST=$(UMLRTS_ROOT)/lib/$(CONFIG)
+
+include $(UMLRTS_ROOT)/build/host/host.mk
+include $(UMLRTS_ROOT)/build/buildtools/$(BUILDTOOLS)/buildtools.mk
+
+LD_PATHS=$(LIBDEST)
+CC_INCLUDES+=$(UMLRTS_ROOT)/include
+
+CC_DEFINES:=$(foreach d, $(CC_DEFINES), $(CC_DEF)$d)
+CC_INCLUDES:=$(foreach i, $(CC_INCLUDES), $(CC_INC)$i)
+LD_LIBS:=$(foreach i, $(LD_LIBS), $(LD_LIB)$i)
+LD_PATHS:=$(foreach i, $(LD_PATHS), $(LD_LIBPATH)$i)
+
+SRCS = TopMain.cc Protocol1.cc Top.cc TopControllers.cc Class1.cc Class1.cc
+OBJS = $(subst $(CC_EXT),$(OBJ_EXT),$(SRCS))
+
+MAIN = TopMain$(EXE_EXT)
+
+all: $(MAIN)
+
+$(MAIN): $(OBJS) $(UMLRTS_ROOT)/lib/$(CONFIG)/$(LIB_PRFX)rts$(LIB_EXT)
+ $(LD) $(LD_FLAGS) $(OBJS) $(LD_PATHS) $(LD_LIBS) $(LD_OUT)$@
+
+%$(OBJ_EXT) : %$(CC_EXT)
+ $(CC) $< $(CC_FLAGS) $(CC_DEFINES) $(CC_INCLUDES) $(CC_OUT)$@
+
+clean :
+ @echo $(RM) main$(EXE_EXT) *$(OBJ_EXT) *$(DEP_EXT) $(DBG_FILES)
+ @$(RM) main$(EXE_EXT) *$(OBJ_EXT) *$(DEP_EXT) $(DBG_FILES)
+
+.PHONY: all clean
diff --git a/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Protocol1.cc b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Protocol1.cc
new file mode 100644
index 0000000..08595db
--- /dev/null
+++ b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Protocol1.cc
@@ -0,0 +1,16 @@
+
+#include "Protocol1.hh"
+
+struct UMLRTCommsPort;
+
+Protocol1::Base::Base( const UMLRTCommsPort * & srcPort )
+: UMLRTProtocol( srcPort )
+{
+}
+
+Protocol1::Conj::Conj( const UMLRTCommsPort * & srcPort )
+: UMLRTProtocol( srcPort )
+{
+}
+
+
diff --git a/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Protocol1.hh b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Protocol1.hh
new file mode 100644
index 0000000..f917c8f
--- /dev/null
+++ b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Protocol1.hh
@@ -0,0 +1,23 @@
+
+#ifndef PROTOCOL1_HH
+#define PROTOCOL1_HH
+
+#include "umlrtprotocol.hh"
+struct UMLRTCommsPort;
+
+namespace Protocol1
+{
+ class Base : public UMLRTProtocol
+ {
+ public:
+ Base( const UMLRTCommsPort * & srcPort );
+ };
+ class Conj : public UMLRTProtocol
+ {
+ public:
+ Conj( const UMLRTCommsPort * & srcPort );
+ };
+};
+
+#endif
+
diff --git a/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Top-connections.log b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Top-connections.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Top-connections.log
diff --git a/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Top.cc b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Top.cc
new file mode 100644
index 0000000..3708b3d
--- /dev/null
+++ b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Top.cc
@@ -0,0 +1,89 @@
+
+#include "Top.hh"
+
+#include <cstddef>
+#include "umlrtcapsuleclass.hh"
+#include "umlrtcommsportrole.hh"
+#include "umlrtframeservice.hh"
+#include "umlrtslot.hh"
+class UMLRTRtsInterface;
+struct UMLRTCommsPort;
+
+Capsule_Top::Capsule_Top( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat )
+: UMLRTCapsule( NULL, cd, st, border, internal, isStat )
+, protocol1( borderPorts[borderport_protocol1] )
+{
+}
+
+
+
+
+
+void Capsule_Top::bindPort( bool isBorder, int portId, int index )
+{
+ if( isBorder )
+ switch( portId )
+ {
+ case borderport_protocol1:
+ UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_protocol1, index, true );
+ break;
+ }
+}
+
+void Capsule_Top::unbindPort( bool isBorder, int portId, int index )
+{
+ if( isBorder )
+ switch( portId )
+ {
+ case borderport_protocol1:
+ UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_protocol1, index, false );
+ UMLRTFrameService::disconnectPort( borderPorts[borderport_protocol1], index );
+ break;
+ }
+}
+
+void Capsule_Top::initialize( const UMLRTMessage & msg )
+{
+}
+
+void Capsule_Top::inject( const UMLRTMessage & msg )
+{
+}
+
+
+static const UMLRTCommsPortRole portroles_border[] =
+{
+ {
+ Capsule_Top::port_protocol1,
+ "Protocol1",
+ "protocol1",
+ "",
+ 6,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true
+ }
+};
+
+static void instantiate_Top( const UMLRTRtsInterface * rts, UMLRTSlot * slot, const UMLRTCommsPort * * borderPorts )
+{
+ slot->capsule = new Capsule_Top( &Top, slot, borderPorts, NULL, false );
+}
+
+const UMLRTCapsuleClass Top =
+{
+ "Top",
+ NULL,
+ instantiate_Top,
+ 0,
+ NULL,
+ 1,
+ portroles_border,
+ 0,
+ NULL
+};
+
diff --git a/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Top.hh b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Top.hh
new file mode 100644
index 0000000..b55e84b
--- /dev/null
+++ b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/Top.hh
@@ -0,0 +1,38 @@
+
+#ifndef TOP_HH
+#define TOP_HH
+
+#include "Protocol1.hh"
+#include "umlrtcapsule.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtmessage.hh"
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+class Capsule_Top : public UMLRTCapsule
+{
+public:
+ Capsule_Top( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat );
+protected:
+ Protocol1::Base protocol1;
+public:
+ enum BorderPortId
+ {
+ borderport_protocol1
+ };
+ enum PartId
+ {
+ };
+ enum PortId
+ {
+ port_protocol1
+ };
+ virtual void bindPort( bool isBorder, int portId, int index );
+ virtual void unbindPort( bool isBorder, int portId, int index );
+ virtual void initialize( const UMLRTMessage & msg );
+ virtual void inject( const UMLRTMessage & msg );
+};
+extern const UMLRTCapsuleClass Top;
+
+#endif
+
diff --git a/models/tests/codepattern/structure/SymbolicReplication8/expected_src/TopControllers.cc b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/TopControllers.cc
new file mode 100644
index 0000000..4c7e957
--- /dev/null
+++ b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/TopControllers.cc
@@ -0,0 +1,96 @@
+
+#include "TopControllers.hh"
+
+#include "Top.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtcommsport.hh"
+#include "umlrtcommsportfarend.hh"
+#include "umlrtcontroller.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+
+
+static UMLRTController DefaultController_( "DefaultController" );
+
+UMLRTController * DefaultController = &DefaultController_;
+
+static UMLRTCommsPortFarEnd borderfarEndList_Top[] =
+{
+ {
+ 0,
+ NULL
+ },
+ {
+ 0,
+ NULL
+ },
+ {
+ 0,
+ NULL
+ },
+ {
+ 0,
+ NULL
+ },
+ {
+ 0,
+ NULL
+ },
+ {
+ 0,
+ NULL
+ }
+};
+
+UMLRTCommsPort borderports_Top[] =
+{
+ {
+ &Top,
+ Capsule_Top::borderport_protocol1,
+ &Top_slots[InstId_Top],
+ 6,
+ borderfarEndList_Top,
+ NULL,
+ NULL,
+ "",
+ true,
+ true,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true
+ }
+};
+
+static const UMLRTCommsPort * borderports_Top_ptrs[] =
+{
+ &borderports_Top[0]
+};
+
+static Capsule_Top top( &Top, &Top_slots[InstId_Top], borderports_Top_ptrs, NULL, true );
+
+UMLRTSlot Top_slots[] =
+{
+ {
+ "Top",
+ 0,
+ &Top,
+ NULL,
+ 0,
+ &top,
+ &DefaultController_,
+ 0,
+ NULL,
+ 1,
+ borderports_Top,
+ NULL,
+ true,
+ false
+ }
+};
+
diff --git a/models/tests/codepattern/structure/SymbolicReplication8/expected_src/TopControllers.hh b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/TopControllers.hh
new file mode 100644
index 0000000..0d5aac6
--- /dev/null
+++ b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/TopControllers.hh
@@ -0,0 +1,18 @@
+
+#ifndef TOPCONTROLLERS_HH
+#define TOPCONTROLLERS_HH
+
+class UMLRTController;
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+enum CapsuleInstanceId
+{
+ InstId_Top
+};
+extern UMLRTController * DefaultController;
+extern UMLRTCommsPort borderports_Top[];
+extern UMLRTSlot Top_slots[];
+
+#endif
+
diff --git a/models/tests/codepattern/structure/SymbolicReplication8/expected_src/TopMain.cc b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/TopMain.cc
new file mode 100644
index 0000000..bf88ec4
--- /dev/null
+++ b/models/tests/codepattern/structure/SymbolicReplication8/expected_src/TopMain.cc
@@ -0,0 +1,38 @@
+#include "umlrtmain.hh"
+
+#include "umlrtcontroller.hh"
+#include "TopControllers.hh"
+#include "umlrtcapsuletocontrollermap.hh"
+#include "umlrtmessagepool.hh"
+#include "umlrtsignalelementpool.hh"
+#include "umlrttimerpool.hh"
+#include "umlrtuserconfig.hh"
+#include <stdio.h>
+
+static UMLRTSignalElement signalElementBuffer[USER_CONFIG_SIGNAL_ELEMENT_POOL_SIZE];
+static UMLRTSignalElementPool signalElementPool( signalElementBuffer, USER_CONFIG_SIGNAL_ELEMENT_POOL_SIZE );
+
+static UMLRTMessage messageBuffer[USER_CONFIG_MESSAGE_POOL_SIZE];
+static UMLRTMessagePool messagePool( messageBuffer, USER_CONFIG_MESSAGE_POOL_SIZE );
+
+static UMLRTTimer timers[USER_CONFIG_TIMER_POOL_SIZE];
+static UMLRTTimerPool timerPool( timers, USER_CONFIG_TIMER_POOL_SIZE );
+
+int main( int argc, char * argv[] )
+{
+ UMLRTController::initializePools( &signalElementPool, &messagePool, &timerPool );
+ UMLRTMain::setArgs( argc, argv );
+ UMLRTCapsuleToControllerMap::setDefaultSlotList( Top_slots, 1 );
+
+ if( ! UMLRTMain::targetStartup() )
+ return EXIT_FAILURE;
+
+ DefaultController->spawn();
+
+ if( ! UMLRTMain::mainLoop() )
+ return UMLRTMain::targetShutdown( false );
+
+ DefaultController->join();
+
+ return UMLRTMain::targetShutdown( true );
+}