Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnsgar Radermacher2014-01-27 16:05:54 +0000
committerAnsgar Radermacher2014-01-27 16:24:31 +0000
commit1a775ea3b3d381899993a8a595df84431e680d45 (patch)
tree9be38111ab0e4504d3df23212ad22853b51bb56c /extraplugins/qompass-designer
parenta5a63943134a93d2674100e778e1703ec78b4c25 (diff)
downloadorg.eclipse.papyrus-1a775ea3b3d381899993a8a595df84431e680d45.tar.gz
org.eclipse.papyrus-1a775ea3b3d381899993a8a595df84431e680d45.tar.xz
org.eclipse.papyrus-1a775ea3b3d381899993a8a595df84431e680d45.zip
426715 - [QDesigner] bindings within containers should be configurable
Diffstat (limited to 'extraplugins/qompass-designer')
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/model/FCM.ecore22
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/model/FCM.genmodel5
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/model/FCM.profile.notation90
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/model/FCM.profile.uml28
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/BindTemplate.java82
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMFactory.java9
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMPackage.java99
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InterceptionKind.java34
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/BindTemplateImpl.java209
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMFactoryImpl.java11
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMPackageImpl.java44
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMAdapterFactory.java18
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMSwitch.java21
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/MapUtil.java49
15 files changed, 694 insertions, 34 deletions
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/.settings/org.eclipse.jdt.core.prefs b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..c537b63063c
--- /dev/null
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/.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.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/model/FCM.ecore b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/model/FCM.ecore
index c432bc318ce..06b85c1e346 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/model/FCM.ecore
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/model/FCM.ecore
@@ -179,6 +179,16 @@
lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Boolean"
changeable="false" volatile="true" transient="true" unsettable="true" derived="true"/>
</eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="InterceptionKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Condition whether an interceptor should be used within a container.&#xA;- &quot;Some&quot; = set of ports defined in interception rule&#xA;- &quot;AllOut/AllIn&quot; = ports with required/provided ports only&#xA;- &quot;Matching&quot; = kind of interceptor and component port need to match&#xA;"/>
+ </eAnnotations>
+ <eLiterals name="InterceptSome"/>
+ <eLiterals name="InterceptAll" value="1"/>
+ <eLiterals name="InterceptAllOut" value="2"/>
+ <eLiterals name="InterceptAllIn" value="3"/>
+ <eLiterals name="InterceptMatching" value="4"/>
+ </eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DeploymentPlan">
<eStructuralFeatures xsi:type="ecore:EReference" name="mainInstance" ordered="false"
unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//InstanceSpecification"/>
@@ -197,12 +207,6 @@
<eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
unique="false" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EEnum" name="InterceptionKind">
- <eLiterals name="InterceptSome"/>
- <eLiterals name="InterceptAll" value="1"/>
- <eLiterals name="InterceptAllOut" value="2"/>
- <eLiterals name="InterceptAllIn" value="3"/>
- </eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ImplementationProperties">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="sizeRAM" ordered="false"
unique="false" lowerBound="1" eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
@@ -292,4 +296,10 @@
<eStructuralFeatures xsi:type="ecore:EReference" name="connector" ordered="false"
lowerBound="1" eType="#//Connector"/>
</eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BindTemplate">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="actual" ordered="false"
+ upperBound="-1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Type"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
+ lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+ </eClassifiers>
</ecore:EPackage>
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/model/FCM.genmodel b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/model/FCM.genmodel
index 46a1cbba5ab..bb214f40dca 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/model/FCM.genmodel
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/model/FCM.genmodel
@@ -16,6 +16,7 @@
<genEnumLiterals ecoreEnumLiteral="FCM.ecore#//InterceptionKind/InterceptAll"/>
<genEnumLiterals ecoreEnumLiteral="FCM.ecore#//InterceptionKind/InterceptAllOut"/>
<genEnumLiterals ecoreEnumLiteral="FCM.ecore#//InterceptionKind/InterceptAllIn"/>
+ <genEnumLiterals ecoreEnumLiteral="FCM.ecore#//InterceptionKind/InterceptMatching"/>
</genEnums>
<genClasses ecoreClass="FCM.ecore#//Template">
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//Template/base_Element"/>
@@ -168,5 +169,9 @@
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//ConnectorConfiguration/base_Slot"/>
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//ConnectorConfiguration/connector"/>
</genClasses>
+ <genClasses ecoreClass="FCM.ecore#//BindTemplate">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//BindTemplate/actual"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//BindTemplate/base_Property"/>
+ </genClasses>
</genPackages>
</genmodel:GenModel>
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/model/FCM.profile.notation b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/model/FCM.profile.notation
index c95b92fa8b2..f00985ebf1c 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/model/FCM.profile.notation
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/model/FCM.profile.notation
@@ -567,6 +567,10 @@
<element xmi:type="uml:EnumerationLiteral" href="FCM.profile.uml#_w6U_wJDtEd-I9dVdNhZAGQ"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_w6qW8ZDtEd-I9dVdNhZAGQ"/>
</children>
+ <children xmi:type="notation:Shape" xmi:id="_VtVGQIInEeOCe7O91ElfCA" type="1037">
+ <element xmi:type="uml:EnumerationLiteral" href="FCM.profile.uml#_VtMjYIInEeOCe7O91ElfCA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VtVGQYInEeOCe7O91ElfCA"/>
+ </children>
<styles xmi:type="notation:SortingStyle" xmi:id="_GNzDx3iMEd-iNcV8QPhhiQ"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_GNzDyHiMEd-iNcV8QPhhiQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_GNzDyXiMEd-iNcV8QPhhiQ"/>
@@ -809,6 +813,11 @@
<element xmi:type="uml:Comment" href="FCM.profile.uml#_Wh6KkNTgEeKiLbHSN_MIRQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_WiBfUdTgEeKiLbHSN_MIRQ" x="441" y="126" width="270"/>
</children>
+ <children xmi:type="notation:Shape" xmi:id="_a995cIInEeOCe7O91ElfCA" type="1002">
+ <children xmi:type="notation:DecorationNode" xmi:id="_a9-ggIInEeOCe7O91ElfCA" type="3"/>
+ <element xmi:type="uml:Comment" href="FCM.profile.uml#_a96PEIInEeOCe7O91ElfCA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_a995cYInEeOCe7O91ElfCA" x="500" y="360" width="361" height="61"/>
+ </children>
<styles xmi:type="notation:DiagramStyle" xmi:id="_AypCoXiMEd-iNcV8QPhhiQ"/>
<element xmi:type="uml:Profile" href="FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
<edges xmi:type="notation:Connector" xmi:id="_b63wAHiTEd-iNcV8QPhhiQ" type="1013" source="_cwV04HiSEd-iNcV8QPhhiQ" target="_kTGUUHiVEd-owss_ACqnJA" lineColor="0">
@@ -843,6 +852,13 @@
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mFnJANTgEeKiLbHSN_MIRQ" id="(0.14814814814814814,0.4666666666666667)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mFnJAdTgEeKiLbHSN_MIRQ" id="(0.8010471204188482,0.3516483516483517)"/>
</edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KKdDgIIoEeOCe7O91ElfCA" type="1022" source="_a995cIInEeOCe7O91ElfCA" target="_GNycsHiMEd-iNcV8QPhhiQ">
+ <styles xmi:type="notation:FontStyle" xmi:id="_KKdDgYIoEeOCe7O91ElfCA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KKdDgoIoEeOCe7O91ElfCA" points="[-22, -3, 38, 0]$[-53, 2, 7, 5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KKk_UIIoEeOCe7O91ElfCA" id="(0.07308970099667775,0.40625)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KKk_UYIoEeOCe7O91ElfCA" id="(0.9570552147239264,0.7955801104972375)"/>
+ </edges>
</notation:Diagram>
<notation:Diagram xmi:id="_uxB-EIKhEd-aI_x8ivV7vQ" type="PapyrusUMLProfileDiagram" name="Libraries" measurementUnit="Pixel">
<children xmi:type="notation:Shape" xmi:id="_1gsUAIKhEd-aI_x8ivV7vQ" type="1031" fontName="Sans Serif" fontHeight="10" lineColor="0">
@@ -1916,6 +1932,9 @@
<children xmi:type="notation:DecorationNode" xmi:id="_3dfMUObEEd-oHsJhS1620Q" type="1034"/>
<children xmi:type="notation:BasicCompartment" xmi:id="_3dfMUebEEd-oHsJhS1620Q" type="1071">
<children xmi:type="notation:Shape" xmi:id="_ASHDsHI1EeOZxcUd14vDog" type="3002" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DQhgoISAEeO2oJGF2cvpFw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DQiHsISAEeO2oJGF2cvpFw" key="CustomAppearance_MaskValue" value="24"/>
+ </eAnnotations>
<element xmi:type="uml:Property" href="FCM.profile.uml#_AROS4HI1EeOZxcUd14vDog"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_ASHDsXI1EeOZxcUd14vDog"/>
</children>
@@ -1933,7 +1952,7 @@
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_4TtCsnI0EeOZxcUd14vDog"/>
</children>
<element xmi:type="uml:Stereotype" href="FCM.profile.uml#_BOnDoFLpEd6rYflXebIz1g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3dcwEebEEd-oHsJhS1620Q" x="72" y="58" width="253" height="109"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3dcwEebEEd-oHsJhS1620Q" x="240" y="160" width="181" height="61"/>
</children>
<children xmi:type="notation:Shape" xmi:id="_8I7AwHI0EeOZxcUd14vDog" type="1026" fontName="Sans Serif" lineColor="0">
<eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8I818HI0EeOZxcUd14vDog" source="ShadowFigure">
@@ -1963,7 +1982,7 @@
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_8JGm8nI0EeOZxcUd14vDog"/>
</children>
<element xmi:type="uml:Stereotype" href="FCM.profile.uml#_8IkbcHI0EeOZxcUd14vDog"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8I7AwXI0EeOZxcUd14vDog" x="441" y="144" width="136" height="73"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8I7AwXI0EeOZxcUd14vDog" x="464" y="160" width="136" height="61"/>
</children>
<children xmi:type="notation:Shape" xmi:id="_NdO50HI4EeOCrdvV8oxOKA" type="1031" fontName="Sans Serif" lineColor="0">
<eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NdPg4HI4EeOCrdvV8oxOKA" source="ShadowFigure">
@@ -1993,7 +2012,7 @@
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_NdlfInI4EeOCrdvV8oxOKA"/>
</children>
<element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NdPg53I4EeOCrdvV8oxOKA" x="441" y="54" width="136"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NdPg53I4EeOCrdvV8oxOKA" x="464" y="40" width="136"/>
</children>
<children xmi:type="notation:Shape" xmi:id="_MyjSYHJqEeOMF7YEvnQt5g" type="1002" fontName="Sans Serif" lineColor="0">
<eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Myj5cHJqEeOMF7YEvnQt5g" source="ShadowFigure">
@@ -2009,6 +2028,60 @@
<element xmi:type="uml:Comment" href="FCM.profile.uml#_MyfoAHJqEeOMF7YEvnQt5g"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_MyjSYXJqEeOMF7YEvnQt5g" x="621" y="126" width="208" height="82"/>
</children>
+ <children xmi:type="notation:Shape" xmi:id="_q5ihwIRKEeO2oJGF2cvpFw" type="1026">
+ <children xmi:type="notation:DecorationNode" xmi:id="_q5ihwoRKEeO2oJGF2cvpFw" type="1034"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_q5ihw4RKEeO2oJGF2cvpFw" type="1071">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q5jI1YRKEeO2oJGF2cvpFw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q5jI1oRKEeO2oJGF2cvpFw" key="showTitle" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_veWwwIRKEeO2oJGF2cvpFw" type="3002">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CPF40ISAEeO2oJGF2cvpFw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CPGf4ISAEeO2oJGF2cvpFw" key="CustomAppearance_MaskValue" value="24"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="FCM.profile.uml#_veM_wIRKEeO2oJGF2cvpFw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_veWwwYRKEeO2oJGF2cvpFw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_q5ihxIRKEeO2oJGF2cvpFw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_q5ihxYRKEeO2oJGF2cvpFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_q5ihxoRKEeO2oJGF2cvpFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q5ihx4RKEeO2oJGF2cvpFw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_q5jI0IRKEeO2oJGF2cvpFw" visible="false" type="1019">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q5k-AIRKEeO2oJGF2cvpFw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q5k-AYRKEeO2oJGF2cvpFw" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_q5jI0YRKEeO2oJGF2cvpFw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_q5jI0oRKEeO2oJGF2cvpFw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_q5jI04RKEeO2oJGF2cvpFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q5jI1IRKEeO2oJGF2cvpFw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_q5Z-4IRKEeO2oJGF2cvpFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q5ihwYRKEeO2oJGF2cvpFw" x="40" y="160" width="161" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_C-uzwISFEeOY0rziOe6V0Q" type="1031">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_C-wo8ISFEeOY0rziOe6V0Q" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C-wo8YSFEeOY0rziOe6V0Q" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C-wo8oSFEeOY0rziOe6V0Q" key="StereotypeList" value="StandardProfileL2::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C-wo84SFEeOY0rziOe6V0Q" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C-wo9ISFEeOY0rziOe6V0Q" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C-xQAISFEeOY0rziOe6V0Q" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_C-va0ISFEeOY0rziOe6V0Q" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_C-va0YSFEeOY0rziOe6V0Q" x="40" y="40" width="161"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9ic70ISFEeOY0rziOe6V0Q" type="1031">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_COVcIISGEeOY0rziOe6V0Q" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_COWDMISGEeOY0rziOe6V0Q" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_COWDMYSGEeOY0rziOe6V0Q" key="StereotypeList" value="StandardProfileL2::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_COWDMoSGEeOY0rziOe6V0Q" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_COWDM4SGEeOY0rziOe6V0Q" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_COWDNISGEeOY0rziOe6V0Q" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9ic70oSFEeOY0rziOe6V0Q" type="1084"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Element"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9ic70YSFEeOY0rziOe6V0Q" x="240" y="40" width="181"/>
+ </children>
<styles xmi:type="notation:DiagramStyle" xmi:id="_1hRXQebEEd-oHsJhS1620Q"/>
<element xmi:type="uml:Profile" href="FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
<edges xmi:type="notation:Connector" xmi:id="_SdsjAHI4EeOCrdvV8oxOKA" type="1013" source="_8I7AwHI0EeOZxcUd14vDog" target="_NdO50HI4EeOCrdvV8oxOKA" lineColor="0">
@@ -2024,6 +2097,17 @@
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OUm7AHJqEeOMF7YEvnQt5g" id="(0.7716535433070866,0.4146341463414634)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OUniEHJqEeOMF7YEvnQt5g" id="(0.16911764705882354,0.3561643835616438)"/>
</edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KK-_EISFEeOY0rziOe6V0Q" type="1013" source="_q5ihwIRKEeO2oJGF2cvpFw" target="_C-uzwISFEeOY0rziOe6V0Q">
+ <styles xmi:type="notation:FontStyle" xmi:id="_KK-_EYSFEeOY0rziOe6V0Q"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_KKt5UISFEeOY0rziOe6V0Q"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KK-_EoSFEeOY0rziOe6V0Q" points="[-2, -10, 1, 95]$[-2, -80, 1, 25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KLCpcISFEeOY0rziOe6V0Q" id="(0.515527950310559,0.16393442622950818)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9ik3oISFEeOY0rziOe6V0Q" type="1013" source="_3dcwEObEEd-oHsJhS1620Q" target="_9ic70ISFEeOY0rziOe6V0Q">
+ <styles xmi:type="notation:FontStyle" xmi:id="_9ik3oYSFEeOY0rziOe6V0Q"/>
+ <element xmi:type="uml:Extension" href="FCM.profile.uml#_hC4tkFLpEd6rYflXebIz1g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9ik3ooSFEeOY0rziOe6V0Q" points="[-53, -30, 277, 160]$[-330, -190, 0, 0]"/>
+ </edges>
</notation:Diagram>
<notation:Diagram xmi:id="_w-KvwMniEeCWXsgs0yuyKQ" type="PapyrusUMLProfileDiagram" name="Hardware" measurementUnit="Pixel">
<children xmi:type="notation:Shape" xmi:id="_x935QMniEeCWXsgs0yuyKQ" type="1026" fontName="Sans Serif" lineColor="0">
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/model/FCM.profile.uml b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/model/FCM.profile.uml
index 292df8596b2..7d907578a37 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/model/FCM.profile.uml
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/model/FCM.profile.uml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
- <uml:Profile xmi:id="_5mvT0MtjEd2H_o0jIC6qDQ" name="FCM" metaclassReference="_NYUA4MtkEd2H_o0jIC6qDQ _pb8DsMtkEd2H_o0jIC6qDQ _WPBJkMtpEd2H_o0jIC6qDQ _WSSgAMtpEd2H_o0jIC6qDQ _4Sf2AMtpEd2H_o0jIC6qDQ _IDbl4MtvEd2H_o0jIC6qDQ _ofc4YMuHEd2H_o0jIC6qDQ _asQCAC5SEd6q9cO948d5Fw _5OunYGV9Ed6b6erIXzmEEA _nKCJAGu2Ed647PfocwT3eg _wo2GgMewEd6zpahAtGCOkA _9HS28MnvEd6fKfvcq7rbxA _Y3dP0DdMEd-Qn7_dAqT11Q _Zc-ksJODEd-5qPBhYeIVtw _wTDjYKvTEd-i17GN-GaZ6g _kK724LTaEd-jOpA9YHRXqw _03w64NXnEd-CUqOXH3INsw _eAlkcCm_EeKgOdm6HirHfA">
+ <uml:Profile xmi:id="_5mvT0MtjEd2H_o0jIC6qDQ" name="FCM" metaclassReference="_NYUA4MtkEd2H_o0jIC6qDQ _pb8DsMtkEd2H_o0jIC6qDQ _WPBJkMtpEd2H_o0jIC6qDQ _WSSgAMtpEd2H_o0jIC6qDQ _4Sf2AMtpEd2H_o0jIC6qDQ _IDbl4MtvEd2H_o0jIC6qDQ _ofc4YMuHEd2H_o0jIC6qDQ _asQCAC5SEd6q9cO948d5Fw _5OunYGV9Ed6b6erIXzmEEA _nKCJAGu2Ed647PfocwT3eg _wo2GgMewEd6zpahAtGCOkA _9HS28MnvEd6fKfvcq7rbxA _Y3dP0DdMEd-Qn7_dAqT11Q _Zc-ksJODEd-5qPBhYeIVtw _wTDjYKvTEd-i17GN-GaZ6g _kK724LTaEd-jOpA9YHRXqw _03w64NXnEd-CUqOXH3INsw _eAlkcCm_EeKgOdm6HirHfA _4r98wIR_EeO2oJGF2cvpFw">
<ownedComment xmi:type="uml:Comment" xmi:id="_D0js0O69Ed2rSKyRUaSRjw">
<body>The associations between PortKind and Operation simply denote the fact that we want to target something that encapsulates the definition of interface mapping rules (i.e. the rules that determine the interfaces that are provided/required on a port &#xD;
of a particular PortKind). Further experiments are still needed to confirm that the Operation metaclass is the right metaclass to encapsulate this definition.</body>
@@ -64,6 +64,13 @@ For instance, we cound type a port with &quot;MyType&quot; and use an extended p
<ownedComment xmi:type="uml:Comment" xmi:id="_MyfoAHJqEeOMF7YEvnQt5g" annotatedElement="_8IkbcHI0EeOZxcUd14vDog">
<body>A binding helper is responsible for creating sub-elements. For instance, if the formal parameter of a template is an interface, it might be required to instantiate an operation for each operation of the interface.</body>
</ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_a96PEIInEeOCe7O91ElfCA" annotatedElement="_-ZqycAAhEd-0dMgailnZgA">
+ <body>Condition whether an interceptor should be used within a container.
+- &quot;Some&quot; = set of ports defined in interception rule
+- &quot;AllOut/AllIn&quot; = ports with required/provided ports only
+- &quot;Matching&quot; = kind of interceptor and component port need to match
+</body>
+ </ownedComment>
<elementImport xmi:type="uml:ElementImport" xmi:id="_NYUA4MtkEd2H_o0jIC6qDQ" alias="Package">
<importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
</elementImport>
@@ -118,6 +125,9 @@ For instance, we cound type a port with &quot;MyType&quot; and use an extended p
<elementImport xmi:type="uml:ElementImport" xmi:id="_eAlkcCm_EeKgOdm6HirHfA" alias="Feature">
<importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Feature"/>
</elementImport>
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_4r98wIR_EeO2oJGF2cvpFw" alias="Type">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Type"/>
+ </elementImport>
<packageImport xmi:type="uml:PackageImport" xmi:id="_5mvT0ctjEd2H_o0jIC6qDQ">
<importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
</packageImport>
@@ -300,7 +310,7 @@ For instance, we cound type a port with &quot;MyType&quot; and use an extended p
<packagedElement xmi:type="uml:Extension" xmi:id="_eamcsFLpEd6rYflXebIz1g" name="Extension_DeploymentPlan" memberEnd="_ecAK4FLpEd6rYflXebIz1g _ecD1QFLpEd6rYflXebIz1g">
<ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_ecAK4FLpEd6rYflXebIz1g" name="extension_DeploymentPlan" type="_5XyRUFLoEd6rYflXebIz1g" aggregation="composite" association="_eamcsFLpEd6rYflXebIz1g"/>
</packagedElement>
- <packagedElement xmi:type="uml:Extension" xmi:id="_hC4tkFLpEd6rYflXebIz1g" name="Extension_Operation" memberEnd="_hEf3IFLpEd6rYflXebIz1g _hEi6cFLpEd6rYflXebIz1g">
+ <packagedElement xmi:type="uml:Extension" xmi:id="_hC4tkFLpEd6rYflXebIz1g" name="E_Template_Element" memberEnd="_hEf3IFLpEd6rYflXebIz1g _hEi6cFLpEd6rYflXebIz1g">
<ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_hEf3IFLpEd6rYflXebIz1g" name="extension_Operation" type="_BOnDoFLpEd6rYflXebIz1g" aggregation="composite" association="_hC4tkFLpEd6rYflXebIz1g"/>
</packagedElement>
<packagedElement xmi:type="uml:Stereotype" xmi:id="_6B80EGV9Ed6b6erIXzmEEA" name="DerivedElement">
@@ -353,6 +363,7 @@ For instance, we cound type a port with &quot;MyType&quot; and use an extended p
<ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_ABWh8AAiEd-0dMgailnZgA" name="InterceptAll"/>
<ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_uah8gJDtEd-I9dVdNhZAGQ" name="InterceptAllOut"/>
<ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_w6U_wJDtEd-I9dVdNhZAGQ" name="InterceptAllIn"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_VtMjYIInEeOCe7O91ElfCA" name="InterceptMatching"/>
</packagedElement>
<packagedElement xmi:type="uml:Extension" xmi:id="_s6giAAAjEd-0dMgailnZgA" name="E_ContainerRule_Class0" memberEnd="_s9YP0AAjEd-0dMgailnZgA _s9dIUAAjEd-0dMgailnZgA">
<ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_s9YP0AAjEd-0dMgailnZgA" name="extension_ContainerRule" type="_5SI38AAhEd-0dMgailnZgA" aggregation="composite" association="_s6giAAAjEd-0dMgailnZgA"/>
@@ -709,6 +720,19 @@ For instance, we cound type a port with &quot;MyType&quot; and use an extended p
<packagedElement xmi:type="uml:Extension" xmi:id="_SdnDcHI4EeOCrdvV8oxOKA" name="E_BindingHelper_Class1" memberEnd="_SdnDcXI4EeOCrdvV8oxOKA _SdmcYHI4EeOCrdvV8oxOKA">
<ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_SdnDcXI4EeOCrdvV8oxOKA" name="extension_BindingHelper" type="_8IkbcHI0EeOZxcUd14vDog" aggregation="composite" association="_SdnDcHI4EeOCrdvV8oxOKA"/>
</packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_q5Z-4IRKEeO2oJGF2cvpFw" name="BindTemplate">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_veM_wIRKEeO2oJGF2cvpFw" name="actual">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Type"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HgMmEISAEeO2oJGF2cvpFw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HgMmEYSAEeO2oJGF2cvpFw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_KKRNYISFEeOY0rziOe6V0Q" name="base_Property" association="_KKt5UISFEeOY0rziOe6V0Q">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_KKt5UISFEeOY0rziOe6V0Q" name="E_BindTemplate_Property1" memberEnd="_KKt5UYSFEeOY0rziOe6V0Q _KKRNYISFEeOY0rziOe6V0Q">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_KKt5UYSFEeOY0rziOe6V0Q" name="extension_BindTemplate" type="_q5Z-4IRKEeO2oJGF2cvpFw" aggregation="composite" association="_KKt5UISFEeOY0rziOe6V0Q"/>
+ </packagedElement>
<profileApplication xmi:type="uml:ProfileApplication" xmi:id="_aTo0UC27Ed6q9cO948d5Fw">
<eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aa7vIC27Ed6q9cO948d5Fw" source="http://www.eclipse.org/uml2/2.0.0/UML">
<references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/BindTemplate.java b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/BindTemplate.java
new file mode 100644
index 00000000000..109f2f3bd5c
--- /dev/null
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/BindTemplate.java
@@ -0,0 +1,82 @@
+/**
+ * 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:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Bind Template</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.BindTemplate#getActual <em>Actual</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.BindTemplate#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getBindTemplate()
+ * @model
+ * @generated
+ */
+public interface BindTemplate extends EObject {
+ /**
+ * Returns the value of the '<em><b>Actual</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.uml2.uml.Type}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Actual</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Actual</em>' reference list.
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getBindTemplate_Actual()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<Type> getActual();
+
+ /**
+ * Returns the value of the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Property</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Property</em>' reference.
+ * @see #setBase_Property(Property)
+ * @see org.eclipse.papyrus.FCM.FCMPackage#getBindTemplate_Base_Property()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Property getBase_Property();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.FCM.BindTemplate#getBase_Property <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Property</em>' reference.
+ * @see #getBase_Property()
+ * @generated
+ */
+ void setBase_Property(Property value);
+
+} // BindTemplate
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMFactory.java b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMFactory.java
index 3b98a6743f8..906bc19d4ab 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMFactory.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMFactory.java
@@ -356,6 +356,15 @@ public interface FCMFactory extends EFactory {
ConnectorConfiguration createConnectorConfiguration();
/**
+ * Returns a new object of class '<em>Bind Template</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Bind Template</em>'.
+ * @generated
+ */
+ BindTemplate createBindTemplate();
+
+ /**
* Returns the package supported by this factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMPackage.java b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMPackage.java
index 5ae5e903c14..584c54b38a9 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMPackage.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/FCMPackage.java
@@ -1544,6 +1544,43 @@ public interface FCMPackage extends EPackage {
int CONNECTOR_CONFIGURATION_FEATURE_COUNT = 2;
/**
+ * The meta object id for the '{@link org.eclipse.papyrus.FCM.impl.BindTemplateImpl <em>Bind Template</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.BindTemplateImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getBindTemplate()
+ * @generated
+ */
+ int BIND_TEMPLATE = 37;
+
+ /**
+ * The feature id for the '<em><b>Actual</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BIND_TEMPLATE__ACTUAL = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Property</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BIND_TEMPLATE__BASE_PROPERTY = 1;
+
+ /**
+ * The number of structural features of the '<em>Bind Template</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BIND_TEMPLATE_FEATURE_COUNT = 2;
+
+ /**
* The meta object id for the '{@link org.eclipse.papyrus.FCM.ContainerRuleKind <em>Container Rule Kind</em>}' enum.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1551,7 +1588,7 @@ public interface FCMPackage extends EPackage {
* @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getContainerRuleKind()
* @generated
*/
- int CONTAINER_RULE_KIND = 37;
+ int CONTAINER_RULE_KIND = 38;
/**
* The meta object id for the '{@link org.eclipse.papyrus.FCM.InterceptionKind <em>Interception Kind</em>}' enum.
@@ -1561,7 +1598,7 @@ public interface FCMPackage extends EPackage {
* @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getInterceptionKind()
* @generated
*/
- int INTERCEPTION_KIND = 38;
+ int INTERCEPTION_KIND = 39;
/**
@@ -2793,6 +2830,38 @@ public interface FCMPackage extends EPackage {
EReference getConnectorConfiguration_Connector();
/**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.FCM.BindTemplate <em>Bind Template</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Bind Template</em>'.
+ * @see org.eclipse.papyrus.FCM.BindTemplate
+ * @generated
+ */
+ EClass getBindTemplate();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.FCM.BindTemplate#getActual <em>Actual</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Actual</em>'.
+ * @see org.eclipse.papyrus.FCM.BindTemplate#getActual()
+ * @see #getBindTemplate()
+ * @generated
+ */
+ EReference getBindTemplate_Actual();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.FCM.BindTemplate#getBase_Property <em>Base Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Property</em>'.
+ * @see org.eclipse.papyrus.FCM.BindTemplate#getBase_Property()
+ * @see #getBindTemplate()
+ * @generated
+ */
+ EReference getBindTemplate_Base_Property();
+
+ /**
* Returns the meta object for enum '{@link org.eclipse.papyrus.FCM.ContainerRuleKind <em>Container Rule Kind</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -3829,6 +3898,32 @@ public interface FCMPackage extends EPackage {
EReference CONNECTOR_CONFIGURATION__CONNECTOR = eINSTANCE.getConnectorConfiguration_Connector();
/**
+ * The meta object literal for the '{@link org.eclipse.papyrus.FCM.impl.BindTemplateImpl <em>Bind Template</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.FCM.impl.BindTemplateImpl
+ * @see org.eclipse.papyrus.FCM.impl.FCMPackageImpl#getBindTemplate()
+ * @generated
+ */
+ EClass BIND_TEMPLATE = eINSTANCE.getBindTemplate();
+
+ /**
+ * The meta object literal for the '<em><b>Actual</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference BIND_TEMPLATE__ACTUAL = eINSTANCE.getBindTemplate_Actual();
+
+ /**
+ * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference BIND_TEMPLATE__BASE_PROPERTY = eINSTANCE.getBindTemplate_Base_Property();
+
+ /**
* The meta object literal for the '{@link org.eclipse.papyrus.FCM.ContainerRuleKind <em>Container Rule Kind</em>}' enum.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InterceptionKind.java b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InterceptionKind.java
index 385fa5155c9..6141a02dde5 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InterceptionKind.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/InterceptionKind.java
@@ -23,6 +23,13 @@ import org.eclipse.emf.common.util.Enumerator;
* A representation of the literals of the enumeration '<em><b>Interception Kind</b></em>',
* and utility methods for working with them.
* <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * Condition whether an interceptor should be used within a container.
+ * - "Some" = set of ports defined in interception rule
+ * - "AllOut/AllIn" = ports with required/provided ports only
+ * - "Matching" = kind of interceptor and component port need to match
+ *
+ * <!-- end-model-doc -->
* @see org.eclipse.papyrus.FCM.FCMPackage#getInterceptionKind()
* @model
* @generated
@@ -66,7 +73,15 @@ public enum InterceptionKind implements Enumerator {
* @generated
* @ordered
*/
- INTERCEPT_ALL_IN(3, "InterceptAllIn", "InterceptAllIn"); //$NON-NLS-1$ //$NON-NLS-2$
+ INTERCEPT_ALL_IN(3, "InterceptAllIn", "InterceptAllIn"), /**
+ * The '<em><b>Intercept Matching</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INTERCEPT_MATCHING_VALUE
+ * @generated
+ * @ordered
+ */
+ INTERCEPT_MATCHING(4, "InterceptMatching", "InterceptMatching"); //$NON-NLS-1$ //$NON-NLS-2$
/**
* The '<em><b>Intercept Some</b></em>' literal value.
@@ -129,6 +144,21 @@ public enum InterceptionKind implements Enumerator {
public static final int INTERCEPT_ALL_IN_VALUE = 3;
/**
+ * The '<em><b>Intercept Matching</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Intercept Matching</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #INTERCEPT_MATCHING
+ * @model name="InterceptMatching"
+ * @generated
+ * @ordered
+ */
+ public static final int INTERCEPT_MATCHING_VALUE = 4;
+
+ /**
* An array of all the '<em><b>Interception Kind</b></em>' enumerators.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -140,6 +170,7 @@ public enum InterceptionKind implements Enumerator {
INTERCEPT_ALL,
INTERCEPT_ALL_OUT,
INTERCEPT_ALL_IN,
+ INTERCEPT_MATCHING,
};
/**
@@ -194,6 +225,7 @@ public enum InterceptionKind implements Enumerator {
case INTERCEPT_ALL_VALUE: return INTERCEPT_ALL;
case INTERCEPT_ALL_OUT_VALUE: return INTERCEPT_ALL_OUT;
case INTERCEPT_ALL_IN_VALUE: return INTERCEPT_ALL_IN;
+ case INTERCEPT_MATCHING_VALUE: return INTERCEPT_MATCHING;
}
return null;
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/BindTemplateImpl.java b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/BindTemplateImpl.java
new file mode 100644
index 00000000000..2cac8ddfa85
--- /dev/null
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/BindTemplateImpl.java
@@ -0,0 +1,209 @@
+/**
+ * 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:
+ * Ansgar Radermacher - Initial API and implementation
+ *
+ */
+package org.eclipse.papyrus.FCM.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.papyrus.FCM.BindTemplate;
+import org.eclipse.papyrus.FCM.FCMPackage;
+
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Bind Template</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.BindTemplateImpl#getActual <em>Actual</em>}</li>
+ * <li>{@link org.eclipse.papyrus.FCM.impl.BindTemplateImpl#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BindTemplateImpl extends EObjectImpl implements BindTemplate {
+ /**
+ * The cached value of the '{@link #getActual() <em>Actual</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActual()
+ * @generated
+ * @ordered
+ */
+ protected EList<Type> actual;
+
+ /**
+ * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Property()
+ * @generated
+ * @ordered
+ */
+ protected Property base_Property;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BindTemplateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return FCMPackage.Literals.BIND_TEMPLATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Type> getActual() {
+ if (actual == null) {
+ actual = new EObjectResolvingEList<Type>(Type.class, this, FCMPackage.BIND_TEMPLATE__ACTUAL);
+ }
+ return actual;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property getBase_Property() {
+ if (base_Property != null && base_Property.eIsProxy()) {
+ InternalEObject oldBase_Property = (InternalEObject)base_Property;
+ base_Property = (Property)eResolveProxy(oldBase_Property);
+ if (base_Property != oldBase_Property) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.BIND_TEMPLATE__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+ }
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetBase_Property() {
+ return base_Property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBase_Property(Property newBase_Property) {
+ Property oldBase_Property = base_Property;
+ base_Property = newBase_Property;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.BIND_TEMPLATE__BASE_PROPERTY, oldBase_Property, base_Property));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case FCMPackage.BIND_TEMPLATE__ACTUAL:
+ return getActual();
+ case FCMPackage.BIND_TEMPLATE__BASE_PROPERTY:
+ if (resolve) return getBase_Property();
+ return basicGetBase_Property();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case FCMPackage.BIND_TEMPLATE__ACTUAL:
+ getActual().clear();
+ getActual().addAll((Collection<? extends Type>)newValue);
+ return;
+ case FCMPackage.BIND_TEMPLATE__BASE_PROPERTY:
+ setBase_Property((Property)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case FCMPackage.BIND_TEMPLATE__ACTUAL:
+ getActual().clear();
+ return;
+ case FCMPackage.BIND_TEMPLATE__BASE_PROPERTY:
+ setBase_Property((Property)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case FCMPackage.BIND_TEMPLATE__ACTUAL:
+ return actual != null && !actual.isEmpty();
+ case FCMPackage.BIND_TEMPLATE__BASE_PROPERTY:
+ return base_Property != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //BindTemplateImpl
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMFactoryImpl.java b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMFactoryImpl.java
index 220b9d4ee85..bbdcdf7e970 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMFactoryImpl.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMFactoryImpl.java
@@ -103,6 +103,7 @@ public class FCMFactoryImpl extends EFactoryImpl implements FCMFactory {
case FCMPackage.AUTO_INDEX_PER_NODE: return createAutoIndexPerNode();
case FCMPackage.INIT_PRECEDENCE: return createInitPrecedence();
case FCMPackage.CONNECTOR_CONFIGURATION: return createConnectorConfiguration();
+ case FCMPackage.BIND_TEMPLATE: return createBindTemplate();
default:
throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
}
@@ -507,6 +508,16 @@ public class FCMFactoryImpl extends EFactoryImpl implements FCMFactory {
* <!-- end-user-doc -->
* @generated
*/
+ public BindTemplate createBindTemplate() {
+ BindTemplateImpl bindTemplate = new BindTemplateImpl();
+ return bindTemplate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public ContainerRuleKind createContainerRuleKindFromString(EDataType eDataType, String initialValue) {
ContainerRuleKind result = ContainerRuleKind.get(initialValue);
if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMPackageImpl.java b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMPackageImpl.java
index ef9f923f83f..def1b03628e 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMPackageImpl.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/impl/FCMPackageImpl.java
@@ -21,6 +21,7 @@ import org.eclipse.emf.ecore.impl.EPackageImpl;
import org.eclipse.papyrus.FCM.Assembly;
import org.eclipse.papyrus.FCM.AutoIndex;
import org.eclipse.papyrus.FCM.AutoIndexPerNode;
+import org.eclipse.papyrus.FCM.BindTemplate;
import org.eclipse.papyrus.FCM.BindingHelper;
import org.eclipse.papyrus.FCM.CodeGenOptions;
import org.eclipse.papyrus.FCM.CompImplTemplate;
@@ -333,6 +334,13 @@ public class FCMPackageImpl extends EPackageImpl implements FCMPackage {
* <!-- end-user-doc -->
* @generated
*/
+ private EClass bindTemplateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
private EEnum containerRuleKindEEnum = null;
/**
@@ -1446,6 +1454,33 @@ public class FCMPackageImpl extends EPackageImpl implements FCMPackage {
* <!-- end-user-doc -->
* @generated
*/
+ public EClass getBindTemplate() {
+ return bindTemplateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBindTemplate_Actual() {
+ return (EReference)bindTemplateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBindTemplate_Base_Property() {
+ return (EReference)bindTemplateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public EEnum getContainerRuleKind() {
return containerRuleKindEEnum;
}
@@ -1639,6 +1674,10 @@ public class FCMPackageImpl extends EPackageImpl implements FCMPackage {
createEReference(connectorConfigurationEClass, CONNECTOR_CONFIGURATION__BASE_SLOT);
createEReference(connectorConfigurationEClass, CONNECTOR_CONFIGURATION__CONNECTOR);
+ bindTemplateEClass = createEClass(BIND_TEMPLATE);
+ createEReference(bindTemplateEClass, BIND_TEMPLATE__ACTUAL);
+ createEReference(bindTemplateEClass, BIND_TEMPLATE__BASE_PROPERTY);
+
// Create enums
containerRuleKindEEnum = createEEnum(CONTAINER_RULE_KIND);
interceptionKindEEnum = createEEnum(INTERCEPTION_KIND);
@@ -1834,6 +1873,10 @@ public class FCMPackageImpl extends EPackageImpl implements FCMPackage {
initEReference(getConnectorConfiguration_Base_Slot(), theUMLPackage.getSlot(), null, "base_Slot", null, 1, 1, ConnectorConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
initEReference(getConnectorConfiguration_Connector(), this.getConnector(), null, "connector", null, 1, 1, ConnectorConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEClass(bindTemplateEClass, BindTemplate.class, "BindTemplate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getBindTemplate_Actual(), theUMLPackage.getType(), null, "actual", null, 0, -1, BindTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getBindTemplate_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, BindTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
// Initialize enums and add enum literals
initEEnum(containerRuleKindEEnum, ContainerRuleKind.class, "ContainerRuleKind"); //$NON-NLS-1$
addEEnumLiteral(containerRuleKindEEnum, ContainerRuleKind.COMPONENT_RULE);
@@ -1844,6 +1887,7 @@ public class FCMPackageImpl extends EPackageImpl implements FCMPackage {
addEEnumLiteral(interceptionKindEEnum, InterceptionKind.INTERCEPT_ALL);
addEEnumLiteral(interceptionKindEEnum, InterceptionKind.INTERCEPT_ALL_OUT);
addEEnumLiteral(interceptionKindEEnum, InterceptionKind.INTERCEPT_ALL_IN);
+ addEEnumLiteral(interceptionKindEEnum, InterceptionKind.INTERCEPT_MATCHING);
// Create resource
createResource(eNS_URI);
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMAdapterFactory.java b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMAdapterFactory.java
index eace199e321..2bb8687abff 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMAdapterFactory.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMAdapterFactory.java
@@ -226,6 +226,10 @@ public class FCMAdapterFactory extends AdapterFactoryImpl {
return createConnectorConfigurationAdapter();
}
@Override
+ public Adapter caseBindTemplate(BindTemplate object) {
+ return createBindTemplateAdapter();
+ }
+ @Override
public Adapter defaultCase(EObject object) {
return createEObjectAdapter();
}
@@ -764,6 +768,20 @@ public class FCMAdapterFactory extends AdapterFactoryImpl {
}
/**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.FCM.BindTemplate <em>Bind Template</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.FCM.BindTemplate
+ * @generated
+ */
+ public Adapter createBindTemplateAdapter() {
+ return null;
+ }
+
+ /**
* Creates a new adapter for the default case.
* <!-- begin-user-doc -->
* This default implementation returns null.
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMSwitch.java b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMSwitch.java
index 827d6ee5303..1bf8d84300b 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMSwitch.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/FCMSwitch.java
@@ -303,6 +303,12 @@ public class FCMSwitch<T> extends Switch<T> {
if (result == null) result = defaultCase(theEObject);
return result;
}
+ case FCMPackage.BIND_TEMPLATE: {
+ BindTemplate bindTemplate = (BindTemplate)theEObject;
+ T result = caseBindTemplate(bindTemplate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
default: return defaultCase(theEObject);
}
}
@@ -863,6 +869,21 @@ public class FCMSwitch<T> extends Switch<T> {
}
/**
+ * Returns the result of interpreting the object as an instance of '<em>Bind Template</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Bind Template</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBindTemplate(BindTemplate object) {
+ return null;
+ }
+
+ /**
* Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/MapUtil.java b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/MapUtil.java
index 0ee35052352..614b0aa3b70 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/MapUtil.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.fcm.profile/src/org/eclipse/papyrus/FCM/util/MapUtil.java
@@ -68,7 +68,7 @@ public class MapUtil
// Hack: assure that no new derived interface folder is created in "root" model
// that eC3M creates for deployment
if(element instanceof Package) {
- return (Package)element;
+ // return (Package)element;
}
}
element = owner;
@@ -295,28 +295,37 @@ public class MapUtil
// the port (which must be an FCM model, since the port carries the FCM stereotype)
Package baseModelOfPort = getTop(port.getBase_Port());
Package derivedInterfaces = getAndCreate(baseModelOfPort, "derivedInterfaces", createOnDemand); //$NON-NLS-1$
- if (derivedInterfaces == null) {
- return null;
- }
- Package owner = getAndCreate(derivedInterfaces, type.allNamespaces(), createOnDemand);
- Interface intf = null;
+ if (derivedInterfaces != null) {
+ Package owner = getAndCreate(derivedInterfaces, type.allNamespaces(), createOnDemand);
+ Interface intf = null;
- PackageableElement pe = owner.getPackagedElement(interfaceName);
- if(pe instanceof Interface) {
- // interface already exists
- return (Interface)pe;
- }
- else if(createOnDemand) {
- // System.out.println ("Derived port types: create new interface " + interfaceName + " in package " + owner.getQualifiedName ());
- intf = owner.createOwnedInterface(interfaceName);
+ PackageableElement pe = owner.getPackagedElement(interfaceName);
+ if(pe instanceof Interface) {
+ // interface already exists
+ return (Interface)pe;
+ }
+ else if(createOnDemand) {
+ // System.out.println ("Derived port types: create new interface " + interfaceName + " in package " + owner.getQualifiedName ());
+ intf = owner.createOwnedInterface(interfaceName);
- // System.out.println ("Derived port types: Apply derived stereotype annotation to interface: " + intf.getQualifiedName());
- DerivedElement de = applyDE(intf);
- if(de != null) {
- // de may be null, if FCM is not properly applied
- de.setSource(type);
+ // System.out.println ("Derived port types: Apply derived stereotype annotation to interface: " + intf.getQualifiedName());
+ DerivedElement de = applyDE(intf);
+ if(de != null) {
+ // de may be null, if FCM is not properly applied
+ de.setSource(type);
+ }
+ return intf;
+ }
+ }
+ // instead of returning null, return a dummy interface that indicates the user that an element needs updating.
+
+ PackageableElement portKinds = baseModelOfPort.getImportedMember("PortKinds"); //$NON-NLS-1$
+ if (portKinds instanceof Package) {
+ PackageableElement pe = ((Package) portKinds).getPackagedElement("Please update derived elements"); //$NON-NLS-1$
+ if(pe instanceof Interface) {
+ // dummy interface exists
+ return (Interface)pe;
}
- return intf;
}
return null;
}

Back to the top