[Bug 495666] [Designer] It should be possible to specify which code generator should be used
- Remove ProgLanguage stereotype from FCM, since it is now handled by the common codegen stereotype
Change-Id: I3ed000a0a7756187258cf058b2ef5592f6583fd6
diff --git a/components/org.eclipse.papyrus.designer.components.fcm.profile/model/FCM.ecore b/components/org.eclipse.papyrus.designer.components.fcm.profile/model/FCM.ecore
index f915ea4..2653888 100644
--- a/components/org.eclipse.papyrus.designer.components.fcm.profile/model/FCM.ecore
+++ b/components/org.eclipse.papyrus.designer.components.fcm.profile/model/FCM.ecore
@@ -52,13 +52,6 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
         lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ProgLanguage">
-    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-      <details key="documentation" value="We assume that a model library defines a set of supported programming languages as well as a set of provided component to mappings. We do not use a fixed enumeration defined in the profile to assure extensibility"/>
-    </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
-        lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="CodeGenOptions">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="This information on a package tells the code generators which programming language and which component-to-OO mapping should be used"/>
@@ -67,8 +60,6 @@
         lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="compToOOmapping" ordered="false"
         lowerBound="1" eType="#//CompToOOmapping"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="progLanguage" ordered="false"
-        lowerBound="1" eType="#//ProgLanguage"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="InteractionComponent">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
diff --git a/components/org.eclipse.papyrus.designer.components.fcm.profile/model/FCM.genmodel b/components/org.eclipse.papyrus.designer.components.fcm.profile/model/FCM.genmodel
index ea8b66a..2b1f914 100644
--- a/components/org.eclipse.papyrus.designer.components.fcm.profile/model/FCM.genmodel
+++ b/components/org.eclipse.papyrus.designer.components.fcm.profile/model/FCM.genmodel
@@ -78,17 +78,11 @@
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//CompToOOmapping/base_Class"/>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="FCM.ecore#//ProgLanguage">
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//ProgLanguage/base_Class"/>
-    </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="FCM.ecore#//CodeGenOptions">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//CodeGenOptions/base_Package"/>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//CodeGenOptions/compToOOmapping"/>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference FCM.ecore#//CodeGenOptions/progLanguage"/>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="FCM.ecore#//InteractionComponent">
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute FCM.ecore#//InteractionComponent/forDistribution"/>
diff --git a/components/org.eclipse.papyrus.designer.components.fcm.profile/model/FCM.profile.notation b/components/org.eclipse.papyrus.designer.components.fcm.profile/model/FCM.profile.notation
index c7d9b81..32b7d79 100644
--- a/components/org.eclipse.papyrus.designer.components.fcm.profile/model/FCM.profile.notation
+++ b/components/org.eclipse.papyrus.designer.components.fcm.profile/model/FCM.profile.notation
@@ -1107,15 +1107,6 @@
           <element xmi:type="uml:Property" href="FCM.profile.uml#_fi6s8NRwEeKiLbHSN_MIRQ"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_fjQEIdRwEeKiLbHSN_MIRQ"/>
         </children>
-        <children xmi:type="notation:Shape" xmi:id="_oTdVgNRwEeKiLbHSN_MIRQ" type="Property_ClassAttributeLabel" fontName="Sans Serif" lineColor="0">
-          <styles xmi:type="notation:StringListValueStyle" xmi:id="_R7zP4KYjEeSti6341zpcDg" name="maskLabel">
-            <stringListValue>name</stringListValue>
-            <stringListValue>derived</stringListValue>
-            <stringListValue>type</stringListValue>
-          </styles>
-          <element xmi:type="uml:Property" href="FCM.profile.uml#_oTWn0NRwEeKiLbHSN_MIRQ"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_oTdVgdRwEeKiLbHSN_MIRQ"/>
-        </children>
         <styles xmi:type="notation:TitleStyle" xmi:id="_C-SO1tRwEeKiLbHSN_MIRQ"/>
         <styles xmi:type="notation:SortingStyle" xmi:id="_C-SO19RwEeKiLbHSN_MIRQ"/>
         <styles xmi:type="notation:FilteringStyle" xmi:id="_C-SO2NRwEeKiLbHSN_MIRQ"/>
@@ -1162,7 +1153,7 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4NlzonI0EeOZxcUd14vDog"/>
       </children>
       <element xmi:type="uml:Stereotype" href="FCM.profile.uml#_HjF2wNRwEeKiLbHSN_MIRQ"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HjQO0dRwEeKiLbHSN_MIRQ" x="580" y="120" width="141" height="73"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HjQO0dRwEeKiLbHSN_MIRQ" x="440" y="120" width="281" height="73"/>
     </children>
     <children xmi:type="notation:Shape" xmi:id="_QdTYsNRwEeKiLbHSN_MIRQ" type="Class_MetaclassShape" fontName="Sans Serif" lineColor="0">
       <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QdT_wNRwEeKiLbHSN_MIRQ" source="ShadowFigure">
@@ -1192,36 +1183,6 @@
       <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QdT_x9RwEeKiLbHSN_MIRQ" x="440" y="40" width="281"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="__QZyYNRwEeKiLbHSN_MIRQ" type="Stereotype_Shape" fontName="Sans Serif" lineColor="0">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__QaZcNRwEeKiLbHSN_MIRQ" source="ShadowFigure">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__QaZcdRwEeKiLbHSN_MIRQ" key="ShadowFigure_Value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__QaZctRwEeKiLbHSN_MIRQ" source="displayNameLabelIcon">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__QaZc9RwEeKiLbHSN_MIRQ" key="displayNameLabelIcon_value" value="false"/>
-      </eAnnotations>
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__QaZdNRwEeKiLbHSN_MIRQ" source="QualifiedName">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__QaZddRwEeKiLbHSN_MIRQ" key="QualifiedNameDepth" value="1000"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="__QaZdtRwEeKiLbHSN_MIRQ" type="Stereotype_NameLabel"/>
-      <children xmi:type="notation:BasicCompartment" xmi:id="__QaZd9RwEeKiLbHSN_MIRQ" type="Stereotype_AttributeCompartment">
-        <styles xmi:type="notation:TitleStyle" xmi:id="__QaZeNRwEeKiLbHSN_MIRQ"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="__QaZedRwEeKiLbHSN_MIRQ"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="__QaZetRwEeKiLbHSN_MIRQ"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="__QaZe9RwEeKiLbHSN_MIRQ"/>
-      </children>
-      <children xmi:type="notation:BasicCompartment" xmi:id="__QaZfNRwEeKiLbHSN_MIRQ" visible="false" type="Stereotype_OperationCompartment">
-        <styles xmi:type="notation:TitleStyle" xmi:id="__QaZfdRwEeKiLbHSN_MIRQ"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="__QaZftRwEeKiLbHSN_MIRQ"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="__QaZf9RwEeKiLbHSN_MIRQ"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="__QaZgNRwEeKiLbHSN_MIRQ"/>
-      </children>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_4NqsIHI0EeOZxcUd14vDog" visible="false" type="compartment_shape_display">
-        <styles xmi:type="notation:TitleStyle" xmi:id="_4NqsIXI0EeOZxcUd14vDog"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4NqsInI0EeOZxcUd14vDog"/>
-      </children>
-      <element xmi:type="uml:Stereotype" href="FCM.profile.uml#__QLv8NRwEeKiLbHSN_MIRQ"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="__QZyYdRwEeKiLbHSN_MIRQ" x="440" y="120" width="109" height="73"/>
-    </children>
     <children xmi:type="notation:Shape" xmi:id="_EOs4YNRxEeKiLbHSN_MIRQ" type="Comment_Shape" fontName="Sans Serif" lineColor="0">
       <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EOtfcNRxEeKiLbHSN_MIRQ" source="ShadowFigure">
         <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EOtfcdRxEeKiLbHSN_MIRQ" key="ShadowFigure_Value" value="false"/>
@@ -1279,30 +1240,16 @@
     <edges xmi:type="notation:Connector" xmi:id="_eio7sNRwEeKiLbHSN_MIRQ" type="Extension_Edge" source="_HjQO0NRwEeKiLbHSN_MIRQ" target="_QdTYsNRwEeKiLbHSN_MIRQ" routing="Rectilinear" lineColor="0">
       <styles xmi:type="notation:FontStyle" xmi:id="_eio7sdRwEeKiLbHSN_MIRQ" fontName="Sans Serif"/>
       <element xmi:type="uml:Extension" href="FCM.profile.uml#_eiejoNRwEeKiLbHSN_MIRQ"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eio7stRwEeKiLbHSN_MIRQ" points="[-6, -7, -2, 71]$[-6, -53, -2, 25]"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eio7stRwEeKiLbHSN_MIRQ" points="[580, 120, -643984, -643984]$[580, 90, -643984, -643984]"/>
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eitNINRwEeKiLbHSN_MIRQ" id="(0.47794117647058826,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DAZSMNRxEeKiLbHSN_MIRQ" id="(0.7061068702290076,1.0)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_B_LFwNRxEeKiLbHSN_MIRQ" type="Extension_Edge" source="__QZyYNRwEeKiLbHSN_MIRQ" target="_QdTYsNRwEeKiLbHSN_MIRQ" routing="Rectilinear" lineColor="0">
-      <styles xmi:type="notation:FontStyle" xmi:id="_B_LFwdRxEeKiLbHSN_MIRQ" fontName="Sans Serif"/>
-      <element xmi:type="uml:Extension" href="FCM.profile.uml#_B_Ci4NRxEeKiLbHSN_MIRQ"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_B_LFwtRxEeKiLbHSN_MIRQ" points="[-4, -12, 0, 64]$[55, -72, 59, 4]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_B_OJENRxEeKiLbHSN_MIRQ" id="(0.5045871559633027,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_B_OJEdRxEeKiLbHSN_MIRQ" id="(0.2099236641221374,1.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DAZSMNRxEeKiLbHSN_MIRQ" id="(0.498220640569395,1.0)"/>
     </edges>
     <edges xmi:type="notation:Connector" xmi:id="_r5AsANTVEeKiLbHSN_MIRQ" type="Comment_AnnotatedElementEdge" source="_EOs4YNRxEeKiLbHSN_MIRQ" target="_HjQO0NRwEeKiLbHSN_MIRQ" lineColor="0">
       <styles xmi:type="notation:FontStyle" xmi:id="_r5AsAdTVEeKiLbHSN_MIRQ" fontName="Sans Serif"/>
       <element xsi:nil="true"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_r5BTENTVEeKiLbHSN_MIRQ" points="[-3, -16, 7, 63]$[-14, -42, -4, 37]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_r5ChMNTVEeKiLbHSN_MIRQ" id="(0.7519083969465649,0.08181818181818182)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n8bLQKYfEeSti6341zpcDg" id="(0.425531914893617,1.0)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_s1YNoNTVEeKiLbHSN_MIRQ" type="Comment_AnnotatedElementEdge" source="_EOs4YNRxEeKiLbHSN_MIRQ" target="__QZyYNRwEeKiLbHSN_MIRQ" lineColor="0">
-      <styles xmi:type="notation:FontStyle" xmi:id="_s1YNodTVEeKiLbHSN_MIRQ" fontName="Sans Serif"/>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_s1YNotTVEeKiLbHSN_MIRQ" points="[-22, -16, 78, 63]$[-98, -42, 2, 37]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_s1ZbwNTVEeKiLbHSN_MIRQ" id="(0.22900763358778625,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n8Nv4KYfEeSti6341zpcDg" id="(0.5779816513761468,1.0)"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_r5ChMNTVEeKiLbHSN_MIRQ" id="(0.420863309352518,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n8bLQKYfEeSti6341zpcDg" id="(0.42704626334519574,1.0)"/>
     </edges>
     <edges xmi:type="notation:Connector" xmi:id="_7Qz8cNTVEeKiLbHSN_MIRQ" type="Comment_AnnotatedElementEdge" source="_0NN94NTVEeKiLbHSN_MIRQ" target="_C-RnwNRwEeKiLbHSN_MIRQ" lineColor="0">
       <styles xmi:type="notation:FontStyle" xmi:id="_7Qz8cdTVEeKiLbHSN_MIRQ" fontName="Sans Serif"/>
diff --git a/components/org.eclipse.papyrus.designer.components.fcm.profile/model/FCM.profile.uml b/components/org.eclipse.papyrus.designer.components.fcm.profile/model/FCM.profile.uml
index 5646658..e065855 100644
--- a/components/org.eclipse.papyrus.designer.components.fcm.profile/model/FCM.profile.uml
+++ b/components/org.eclipse.papyrus.designer.components.fcm.profile/model/FCM.profile.uml
@@ -33,7 +33,7 @@
     <ownedComment xmi:type="uml:Comment" xmi:id="_ikpf8NRtEeKiLbHSN_MIRQ" annotatedElement="_D8dRUNM-EeKflOoYwofqLA">
       <body>A composite that will get flattened during distribution. This means that it vanishes and its parts are added to the composite in which the flat composite is defined. A flat composite may not have assembly connections. It is primarily used by interaction components</body>
     </ownedComment>
-    <ownedComment xmi:type="uml:Comment" xmi:id="_EOljoNRxEeKiLbHSN_MIRQ" annotatedElement="_HjF2wNRwEeKiLbHSN_MIRQ __QLv8NRwEeKiLbHSN_MIRQ">
+    <ownedComment xmi:type="uml:Comment" xmi:id="_EOljoNRxEeKiLbHSN_MIRQ" annotatedElement="_HjF2wNRwEeKiLbHSN_MIRQ">
       <body>We assume that a model library defines a set of supported programming languages as well as a set of provided component to mappings. We do not use a fixed enumeration defined in the profile to assure extensibility</body>
     </ownedComment>
     <ownedComment xmi:type="uml:Comment" xmi:id="_0NGpINTVEeKiLbHSN_MIRQ" annotatedElement="_C-GooNRwEeKiLbHSN_MIRQ">
@@ -619,10 +619,6 @@
         <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mp59wNRwEeKiLbHSN_MIRQ" value="1"/>
         <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mqyukNRwEeKiLbHSN_MIRQ" value="1"/>
       </ownedAttribute>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_oTWn0NRwEeKiLbHSN_MIRQ" name="progLanguage" visibility="public" type="__QLv8NRwEeKiLbHSN_MIRQ">
-        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p94P8NRwEeKiLbHSN_MIRQ" value="1"/>
-        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_p-DPENRwEeKiLbHSN_MIRQ" value="1"/>
-      </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Stereotype" xmi:id="_HjF2wNRwEeKiLbHSN_MIRQ" name="CompToOOmapping">
       <ownedAttribute xmi:type="uml:Property" xmi:id="_eiZrINRwEeKiLbHSN_MIRQ" name="base_Class" association="_eiejoNRwEeKiLbHSN_MIRQ">
@@ -635,14 +631,6 @@
     <packagedElement xmi:type="uml:Extension" xmi:id="_eiejoNRwEeKiLbHSN_MIRQ" name="E_CompToOOmapping_Class" memberEnd="_eiejodRwEeKiLbHSN_MIRQ _eiZrINRwEeKiLbHSN_MIRQ">
       <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_eiejodRwEeKiLbHSN_MIRQ" name="extension_CompToOOmapping" type="_HjF2wNRwEeKiLbHSN_MIRQ" aggregation="composite" association="_eiejoNRwEeKiLbHSN_MIRQ"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Stereotype" xmi:id="__QLv8NRwEeKiLbHSN_MIRQ" name="ProgLanguage">
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_B--4gNRxEeKiLbHSN_MIRQ" name="base_Class" association="_B_Ci4NRxEeKiLbHSN_MIRQ">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
-      </ownedAttribute>
-    </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_B_Ci4NRxEeKiLbHSN_MIRQ" name="E_ProgLanguage_Class" memberEnd="_B_Ci4dRxEeKiLbHSN_MIRQ _B--4gNRxEeKiLbHSN_MIRQ">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_B_Ci4dRxEeKiLbHSN_MIRQ" name="extension_ProgLanguage" type="__QLv8NRwEeKiLbHSN_MIRQ" aggregation="composite" association="_B_Ci4NRxEeKiLbHSN_MIRQ"/>
-    </packagedElement>
     <packagedElement xmi:type="uml:Stereotype" xmi:id="_iDiaINRxEeKiLbHSN_MIRQ" name="CompilerChain">
       <ownedAttribute xmi:type="uml:Property" xmi:id="_jzVj0NRxEeKiLbHSN_MIRQ" name="base_Class" association="_jzYnINRxEeKiLbHSN_MIRQ">
         <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
diff --git a/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/CodeGenOptions.java b/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/CodeGenOptions.java
index 6425708..e631b11 100644
--- a/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/CodeGenOptions.java
+++ b/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/CodeGenOptions.java
@@ -29,7 +29,6 @@
  * <ul>
  *   <li>{@link org.eclipse.papyrus.designer.components.FCM.CodeGenOptions#getBase_Package <em>Base Package</em>}</li>
  *   <li>{@link org.eclipse.papyrus.designer.components.FCM.CodeGenOptions#getCompToOOmapping <em>Comp To OOmapping</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.components.FCM.CodeGenOptions#getProgLanguage <em>Prog Language</em>}</li>
  * </ul>
  *
  * @see org.eclipse.papyrus.designer.components.FCM.FCMPackage#getCodeGenOptions()
@@ -87,29 +86,4 @@
 	 */
 	void setCompToOOmapping(CompToOOmapping value);
 
-	/**
-	 * Returns the value of the '<em><b>Prog Language</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Prog Language</em>' reference isn't clear, there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Prog Language</em>' reference.
-	 * @see #setProgLanguage(ProgLanguage)
-	 * @see org.eclipse.papyrus.designer.components.FCM.FCMPackage#getCodeGenOptions_ProgLanguage()
-	 * @model required="true" ordered="false"
-	 * @generated
-	 */
-	ProgLanguage getProgLanguage();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.components.FCM.CodeGenOptions#getProgLanguage <em>Prog Language</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Prog Language</em>' reference.
-	 * @see #getProgLanguage()
-	 * @generated
-	 */
-	void setProgLanguage(ProgLanguage value);
-
 } // CodeGenOptions
diff --git a/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/FCMFactory.java b/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/FCMFactory.java
index 938e1e1..60ccd19 100644
--- a/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/FCMFactory.java
+++ b/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/FCMFactory.java
@@ -95,15 +95,6 @@
 	CompToOOmapping createCompToOOmapping();
 
 	/**
-	 * Returns a new object of class '<em>Prog Language</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Prog Language</em>'.
-	 * @generated
-	 */
-	ProgLanguage createProgLanguage();
-
-	/**
 	 * Returns a new object of class '<em>Code Gen Options</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/FCMPackage.java b/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/FCMPackage.java
index 6cbdefc..a2901c5 100644
--- a/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/FCMPackage.java
+++ b/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/FCMPackage.java
@@ -272,34 +272,6 @@
 	int COMP_TO_OOMAPPING_FEATURE_COUNT = 1;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.papyrus.designer.components.FCM.impl.ProgLanguageImpl <em>Prog Language</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.papyrus.designer.components.FCM.impl.ProgLanguageImpl
-	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getProgLanguage()
-	 * @generated
-	 */
-	int PROG_LANGUAGE = 7;
-
-	/**
-	 * The feature id for the '<em><b>Base Class</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROG_LANGUAGE__BASE_CLASS = 0;
-
-	/**
-	 * The number of structural features of the '<em>Prog Language</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROG_LANGUAGE_FEATURE_COUNT = 1;
-
-	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.designer.components.FCM.impl.CodeGenOptionsImpl <em>Code Gen Options</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -307,7 +279,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getCodeGenOptions()
 	 * @generated
 	 */
-	int CODE_GEN_OPTIONS = 8;
+	int CODE_GEN_OPTIONS = 7;
 
 	/**
 	 * The feature id for the '<em><b>Base Package</b></em>' reference.
@@ -328,22 +300,13 @@
 	int CODE_GEN_OPTIONS__COMP_TO_OOMAPPING = 1;
 
 	/**
-	 * The feature id for the '<em><b>Prog Language</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CODE_GEN_OPTIONS__PROG_LANGUAGE = 2;
-
-	/**
 	 * The number of structural features of the '<em>Code Gen Options</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CODE_GEN_OPTIONS_FEATURE_COUNT = 3;
+	int CODE_GEN_OPTIONS_FEATURE_COUNT = 2;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.designer.components.FCM.impl.InteractionComponentImpl <em>Interaction Component</em>}' class.
@@ -353,7 +316,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getInteractionComponent()
 	 * @generated
 	 */
-	int INTERACTION_COMPONENT = 9;
+	int INTERACTION_COMPONENT = 8;
 
 	/**
 	 * The feature id for the '<em><b>For Distribution</b></em>' attribute.
@@ -399,7 +362,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getSingleton()
 	 * @generated
 	 */
-	int SINGLETON = 10;
+	int SINGLETON = 9;
 
 	/**
 	 * The feature id for the '<em><b>Base Class</b></em>' reference.
@@ -427,7 +390,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getConfigurableElementInstance()
 	 * @generated
 	 */
-	int CONFIGURABLE_ELEMENT_INSTANCE = 12;
+	int CONFIGURABLE_ELEMENT_INSTANCE = 11;
 
 	/**
 	 * The feature id for the '<em><b>Configuration</b></em>' reference.
@@ -455,7 +418,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getConnector()
 	 * @generated
 	 */
-	int CONNECTOR = 11;
+	int CONNECTOR = 10;
 
 	/**
 	 * The feature id for the '<em><b>Configuration</b></em>' reference.
@@ -510,7 +473,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getUseInstanceConfigurator()
 	 * @generated
 	 */
-	int USE_INSTANCE_CONFIGURATOR = 13;
+	int USE_INSTANCE_CONFIGURATOR = 12;
 
 	/**
 	 * The feature id for the '<em><b>Base Class</b></em>' reference.
@@ -547,7 +510,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getInstanceConfigurator()
 	 * @generated
 	 */
-	int INSTANCE_CONFIGURATOR = 14;
+	int INSTANCE_CONFIGURATOR = 13;
 
 	/**
 	 * The feature id for the '<em><b>Base Class</b></em>' reference.
@@ -584,7 +547,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getRuleApplication()
 	 * @generated
 	 */
-	int RULE_APPLICATION = 15;
+	int RULE_APPLICATION = 14;
 
 	/**
 	 * The feature id for the '<em><b>Base Class</b></em>' reference.
@@ -630,7 +593,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getContainerRule()
 	 * @generated
 	 */
-	int CONTAINER_RULE = 16;
+	int CONTAINER_RULE = 15;
 
 	/**
 	 * The feature id for the '<em><b>Base Class</b></em>' reference.
@@ -676,7 +639,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getConfigOption()
 	 * @generated
 	 */
-	int CONFIG_OPTION = 17;
+	int CONFIG_OPTION = 16;
 
 	/**
 	 * The feature id for the '<em><b>Base Class</b></em>' reference.
@@ -704,7 +667,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getPort()
 	 * @generated
 	 */
-	int PORT = 19;
+	int PORT = 18;
 
 	/**
 	 * The feature id for the '<em><b>Configuration</b></em>' reference.
@@ -759,7 +722,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getTemplatePort()
 	 * @generated
 	 */
-	int TEMPLATE_PORT = 18;
+	int TEMPLATE_PORT = 17;
 
 	/**
 	 * The feature id for the '<em><b>Configuration</b></em>' reference.
@@ -823,7 +786,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getPortKind()
 	 * @generated
 	 */
-	int PORT_KIND = 20;
+	int PORT_KIND = 19;
 
 	/**
 	 * The feature id for the '<em><b>Base Class</b></em>' reference.
@@ -878,7 +841,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getDeploymentPlan()
 	 * @generated
 	 */
-	int DEPLOYMENT_PLAN = 21;
+	int DEPLOYMENT_PLAN = 20;
 
 	/**
 	 * The feature id for the '<em><b>Main Instance</b></em>' reference.
@@ -924,7 +887,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getDerivedElement()
 	 * @generated
 	 */
-	int DERIVED_ELEMENT = 22;
+	int DERIVED_ELEMENT = 21;
 
 	/**
 	 * The feature id for the '<em><b>Base Element</b></em>' reference.
@@ -961,7 +924,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getCompImplTemplate()
 	 * @generated
 	 */
-	int COMP_IMPL_TEMPLATE = 23;
+	int COMP_IMPL_TEMPLATE = 22;
 
 	/**
 	 * The feature id for the '<em><b>Template Defs</b></em>' attribute.
@@ -998,7 +961,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getImplementationProperties()
 	 * @generated
 	 */
-	int IMPLEMENTATION_PROPERTIES = 24;
+	int IMPLEMENTATION_PROPERTIES = 23;
 
 	/**
 	 * The feature id for the '<em><b>Size RAM</b></em>' attribute.
@@ -1071,7 +1034,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getOperatingSystem()
 	 * @generated
 	 */
-	int OPERATING_SYSTEM = 25;
+	int OPERATING_SYSTEM = 24;
 
 	/**
 	 * The feature id for the '<em><b>Base Class</b></em>' reference.
@@ -1099,7 +1062,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getTargetArchitecture()
 	 * @generated
 	 */
-	int TARGET_ARCHITECTURE = 26;
+	int TARGET_ARCHITECTURE = 25;
 
 	/**
 	 * The feature id for the '<em><b>Base Class</b></em>' reference.
@@ -1127,7 +1090,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getConfiguration()
 	 * @generated
 	 */
-	int CONFIGURATION = 27;
+	int CONFIGURATION = 26;
 
 	/**
 	 * The feature id for the '<em><b>Base Class</b></em>' reference.
@@ -1173,7 +1136,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getInterceptionRule()
 	 * @generated
 	 */
-	int INTERCEPTION_RULE = 28;
+	int INTERCEPTION_RULE = 27;
 
 	/**
 	 * The feature id for the '<em><b>Interception Kind</b></em>' attribute.
@@ -1228,7 +1191,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getTarget()
 	 * @generated
 	 */
-	int TARGET = 29;
+	int TARGET = 28;
 
 	/**
 	 * The feature id for the '<em><b>Target Arch</b></em>' reference.
@@ -1310,7 +1273,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getCompilerChain()
 	 * @generated
 	 */
-	int COMPILER_CHAIN = 30;
+	int COMPILER_CHAIN = 29;
 
 	/**
 	 * The feature id for the '<em><b>Base Class</b></em>' reference.
@@ -1338,7 +1301,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getFragment()
 	 * @generated
 	 */
-	int FRAGMENT = 31;
+	int FRAGMENT = 30;
 
 	/**
 	 * The feature id for the '<em><b>Base Class</b></em>' reference.
@@ -1366,7 +1329,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getCopyAttributeValue()
 	 * @generated
 	 */
-	int COPY_ATTRIBUTE_VALUE = 32;
+	int COPY_ATTRIBUTE_VALUE = 31;
 
 	/**
 	 * The feature id for the '<em><b>Source</b></em>' reference.
@@ -1403,7 +1366,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getAutoIndex()
 	 * @generated
 	 */
-	int AUTO_INDEX = 33;
+	int AUTO_INDEX = 32;
 
 	/**
 	 * The feature id for the '<em><b>Base Property</b></em>' reference.
@@ -1431,7 +1394,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getAutoIndexPerNode()
 	 * @generated
 	 */
-	int AUTO_INDEX_PER_NODE = 34;
+	int AUTO_INDEX_PER_NODE = 33;
 
 	/**
 	 * The feature id for the '<em><b>Base Property</b></em>' reference.
@@ -1459,7 +1422,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getInitPrecedence()
 	 * @generated
 	 */
-	int INIT_PRECEDENCE = 35;
+	int INIT_PRECEDENCE = 34;
 
 	/**
 	 * The feature id for the '<em><b>Invoke After</b></em>' reference list.
@@ -1505,7 +1468,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getConnectorConfiguration()
 	 * @generated
 	 */
-	int CONNECTOR_CONFIGURATION = 36;
+	int CONNECTOR_CONFIGURATION = 35;
 
 	/**
 	 * The feature id for the '<em><b>Base Slot</b></em>' reference.
@@ -1542,7 +1505,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getBindTemplate()
 	 * @generated
 	 */
-	int BIND_TEMPLATE = 37;
+	int BIND_TEMPLATE = 36;
 
 	/**
 	 * The feature id for the '<em><b>Actual</b></em>' reference list.
@@ -1579,7 +1542,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getContainerRuleKind()
 	 * @generated
 	 */
-	int CONTAINER_RULE_KIND = 38;
+	int CONTAINER_RULE_KIND = 37;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.designer.components.FCM.InterceptionKind <em>Interception Kind</em>}' enum.
@@ -1589,7 +1552,7 @@
 	 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getInterceptionKind()
 	 * @generated
 	 */
-	int INTERCEPTION_KIND = 39;
+	int INTERCEPTION_KIND = 38;
 
 
 	/**
@@ -1751,27 +1714,6 @@
 	EReference getCompToOOmapping_Base_Class();
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.components.FCM.ProgLanguage <em>Prog Language</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Prog Language</em>'.
-	 * @see org.eclipse.papyrus.designer.components.FCM.ProgLanguage
-	 * @generated
-	 */
-	EClass getProgLanguage();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.components.FCM.ProgLanguage#getBase_Class <em>Base Class</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base Class</em>'.
-	 * @see org.eclipse.papyrus.designer.components.FCM.ProgLanguage#getBase_Class()
-	 * @see #getProgLanguage()
-	 * @generated
-	 */
-	EReference getProgLanguage_Base_Class();
-
-	/**
 	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.components.FCM.CodeGenOptions <em>Code Gen Options</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1804,17 +1746,6 @@
 	EReference getCodeGenOptions_CompToOOmapping();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.designer.components.FCM.CodeGenOptions#getProgLanguage <em>Prog Language</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Prog Language</em>'.
-	 * @see org.eclipse.papyrus.designer.components.FCM.CodeGenOptions#getProgLanguage()
-	 * @see #getCodeGenOptions()
-	 * @generated
-	 */
-	EReference getCodeGenOptions_ProgLanguage();
-
-	/**
 	 * Returns the meta object for class '{@link org.eclipse.papyrus.designer.components.FCM.InteractionComponent <em>Interaction Component</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -3029,24 +2960,6 @@
 		EReference COMP_TO_OOMAPPING__BASE_CLASS = eINSTANCE.getCompToOOmapping_Base_Class();
 
 		/**
-		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.components.FCM.impl.ProgLanguageImpl <em>Prog Language</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.papyrus.designer.components.FCM.impl.ProgLanguageImpl
-		 * @see org.eclipse.papyrus.designer.components.FCM.impl.FCMPackageImpl#getProgLanguage()
-		 * @generated
-		 */
-		EClass PROG_LANGUAGE = eINSTANCE.getProgLanguage();
-
-		/**
-		 * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference PROG_LANGUAGE__BASE_CLASS = eINSTANCE.getProgLanguage_Base_Class();
-
-		/**
 		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.components.FCM.impl.CodeGenOptionsImpl <em>Code Gen Options</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -3073,14 +2986,6 @@
 		EReference CODE_GEN_OPTIONS__COMP_TO_OOMAPPING = eINSTANCE.getCodeGenOptions_CompToOOmapping();
 
 		/**
-		 * The meta object literal for the '<em><b>Prog Language</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference CODE_GEN_OPTIONS__PROG_LANGUAGE = eINSTANCE.getCodeGenOptions_ProgLanguage();
-
-		/**
 		 * The meta object literal for the '{@link org.eclipse.papyrus.designer.components.FCM.impl.InteractionComponentImpl <em>Interaction Component</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
diff --git a/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/ProgLanguage.java b/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/ProgLanguage.java
deleted file mode 100644
index 78c0f60..0000000
--- a/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/ProgLanguage.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
- * 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.designer.components.FCM;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Prog Language</b></em>'.
- * <!-- end-user-doc -->
- *
- * <!-- begin-model-doc -->
- * We assume that a model library defines a set of supported programming languages as well as a set of provided component to mappings. We do not use a fixed enumeration defined in the profile to assure extensibility
- * <!-- end-model-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.components.FCM.ProgLanguage#getBase_Class <em>Base Class</em>}</li>
- * </ul>
- *
- * @see org.eclipse.papyrus.designer.components.FCM.FCMPackage#getProgLanguage()
- * @model
- * @generated
- */
-public interface ProgLanguage extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Base Class</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base Class</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 Class</em>' reference.
-	 * @see #setBase_Class(org.eclipse.uml2.uml.Class)
-	 * @see org.eclipse.papyrus.designer.components.FCM.FCMPackage#getProgLanguage_Base_Class()
-	 * @model required="true" ordered="false"
-	 * @generated
-	 */
-	org.eclipse.uml2.uml.Class getBase_Class();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.designer.components.FCM.ProgLanguage#getBase_Class <em>Base Class</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base Class</em>' reference.
-	 * @see #getBase_Class()
-	 * @generated
-	 */
-	void setBase_Class(org.eclipse.uml2.uml.Class value);
-
-} // ProgLanguage
diff --git a/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/impl/CodeGenOptionsImpl.java b/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/impl/CodeGenOptionsImpl.java
index a68ba0f..36d7008 100644
--- a/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/impl/CodeGenOptionsImpl.java
+++ b/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/impl/CodeGenOptionsImpl.java
@@ -20,7 +20,6 @@
 import org.eclipse.papyrus.designer.components.FCM.CodeGenOptions;
 import org.eclipse.papyrus.designer.components.FCM.CompToOOmapping;
 import org.eclipse.papyrus.designer.components.FCM.FCMPackage;
-import org.eclipse.papyrus.designer.components.FCM.ProgLanguage;
 
 /**
  * <!-- begin-user-doc -->
@@ -32,7 +31,6 @@
  * <ul>
  *   <li>{@link org.eclipse.papyrus.designer.components.FCM.impl.CodeGenOptionsImpl#getBase_Package <em>Base Package</em>}</li>
  *   <li>{@link org.eclipse.papyrus.designer.components.FCM.impl.CodeGenOptionsImpl#getCompToOOmapping <em>Comp To OOmapping</em>}</li>
- *   <li>{@link org.eclipse.papyrus.designer.components.FCM.impl.CodeGenOptionsImpl#getProgLanguage <em>Prog Language</em>}</li>
  * </ul>
  *
  * @generated
@@ -59,16 +57,6 @@
 	protected CompToOOmapping compToOOmapping;
 
 	/**
-	 * The cached value of the '{@link #getProgLanguage() <em>Prog Language</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProgLanguage()
-	 * @generated
-	 * @ordered
-	 */
-	protected ProgLanguage progLanguage;
-
-	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -173,46 +161,6 @@
 	 * @generated
 	 */
 	@Override
-	public ProgLanguage getProgLanguage() {
-		if (progLanguage != null && progLanguage.eIsProxy()) {
-			InternalEObject oldProgLanguage = (InternalEObject)progLanguage;
-			progLanguage = (ProgLanguage)eResolveProxy(oldProgLanguage);
-			if (progLanguage != oldProgLanguage) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.CODE_GEN_OPTIONS__PROG_LANGUAGE, oldProgLanguage, progLanguage));
-			}
-		}
-		return progLanguage;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ProgLanguage basicGetProgLanguage() {
-		return progLanguage;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void setProgLanguage(ProgLanguage newProgLanguage) {
-		ProgLanguage oldProgLanguage = progLanguage;
-		progLanguage = newProgLanguage;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.CODE_GEN_OPTIONS__PROG_LANGUAGE, oldProgLanguage, progLanguage));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
 			case FCMPackage.CODE_GEN_OPTIONS__BASE_PACKAGE:
@@ -221,9 +169,6 @@
 			case FCMPackage.CODE_GEN_OPTIONS__COMP_TO_OOMAPPING:
 				if (resolve) return getCompToOOmapping();
 				return basicGetCompToOOmapping();
-			case FCMPackage.CODE_GEN_OPTIONS__PROG_LANGUAGE:
-				if (resolve) return getProgLanguage();
-				return basicGetProgLanguage();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -242,9 +187,6 @@
 			case FCMPackage.CODE_GEN_OPTIONS__COMP_TO_OOMAPPING:
 				setCompToOOmapping((CompToOOmapping)newValue);
 				return;
-			case FCMPackage.CODE_GEN_OPTIONS__PROG_LANGUAGE:
-				setProgLanguage((ProgLanguage)newValue);
-				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -263,9 +205,6 @@
 			case FCMPackage.CODE_GEN_OPTIONS__COMP_TO_OOMAPPING:
 				setCompToOOmapping((CompToOOmapping)null);
 				return;
-			case FCMPackage.CODE_GEN_OPTIONS__PROG_LANGUAGE:
-				setProgLanguage((ProgLanguage)null);
-				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -282,8 +221,6 @@
 				return base_Package != null;
 			case FCMPackage.CODE_GEN_OPTIONS__COMP_TO_OOMAPPING:
 				return compToOOmapping != null;
-			case FCMPackage.CODE_GEN_OPTIONS__PROG_LANGUAGE:
-				return progLanguage != null;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/impl/FCMFactoryImpl.java b/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/impl/FCMFactoryImpl.java
index f4e7fe4..eb02a34 100644
--- a/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/impl/FCMFactoryImpl.java
+++ b/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/impl/FCMFactoryImpl.java
@@ -18,7 +18,6 @@
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.impl.EFactoryImpl;
 import org.eclipse.emf.ecore.plugin.EcorePlugin;
-import org.eclipse.papyrus.designer.components.FCM.*;
 import org.eclipse.papyrus.designer.components.FCM.Assembly;
 import org.eclipse.papyrus.designer.components.FCM.AutoIndex;
 import org.eclipse.papyrus.designer.components.FCM.AutoIndexPerNode;
@@ -52,7 +51,6 @@
 import org.eclipse.papyrus.designer.components.FCM.OperatingSystem;
 import org.eclipse.papyrus.designer.components.FCM.Port;
 import org.eclipse.papyrus.designer.components.FCM.PortKind;
-import org.eclipse.papyrus.designer.components.FCM.ProgLanguage;
 import org.eclipse.papyrus.designer.components.FCM.RuleApplication;
 import org.eclipse.papyrus.designer.components.FCM.Singleton;
 import org.eclipse.papyrus.designer.components.FCM.Target;
@@ -60,7 +58,6 @@
 import org.eclipse.papyrus.designer.components.FCM.Template;
 import org.eclipse.papyrus.designer.components.FCM.TemplatePort;
 import org.eclipse.papyrus.designer.components.FCM.UseInstanceConfigurator;
-import org.eclipse.papyrus.designer.components.FCM.profile.*;
 
 /**
  * <!-- begin-user-doc -->
@@ -113,7 +110,6 @@
 			case FCMPackage.ASSEMBLY: return createAssembly();
 			case FCMPackage.FLATTEN: return createFlatten();
 			case FCMPackage.COMP_TO_OOMAPPING: return createCompToOOmapping();
-			case FCMPackage.PROG_LANGUAGE: return createProgLanguage();
 			case FCMPackage.CODE_GEN_OPTIONS: return createCodeGenOptions();
 			case FCMPackage.INTERACTION_COMPONENT: return createInteractionComponent();
 			case FCMPackage.SINGLETON: return createSingleton();
@@ -265,17 +261,6 @@
 	 * @generated
 	 */
 	@Override
-	public ProgLanguage createProgLanguage() {
-		ProgLanguageImpl progLanguage = new ProgLanguageImpl();
-		return progLanguage;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
 	public CodeGenOptions createCodeGenOptions() {
 		CodeGenOptionsImpl codeGenOptions = new CodeGenOptionsImpl();
 		return codeGenOptions;
diff --git a/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/impl/FCMPackageImpl.java b/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/impl/FCMPackageImpl.java
index dd93744..55bba8e 100644
--- a/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/impl/FCMPackageImpl.java
+++ b/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/impl/FCMPackageImpl.java
@@ -52,7 +52,6 @@
 import org.eclipse.papyrus.designer.components.FCM.OperatingSystem;
 import org.eclipse.papyrus.designer.components.FCM.Port;
 import org.eclipse.papyrus.designer.components.FCM.PortKind;
-import org.eclipse.papyrus.designer.components.FCM.ProgLanguage;
 import org.eclipse.papyrus.designer.components.FCM.RuleApplication;
 import org.eclipse.papyrus.designer.components.FCM.Singleton;
 import org.eclipse.papyrus.designer.components.FCM.Target;
@@ -124,13 +123,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass progLanguageEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	private EClass codeGenOptionsEClass = null;
 
 	/**
@@ -568,26 +560,6 @@
 	 * @generated
 	 */
 	@Override
-	public EClass getProgLanguage() {
-		return progLanguageEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EReference getProgLanguage_Base_Class() {
-		return (EReference)progLanguageEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
 	public EClass getCodeGenOptions() {
 		return codeGenOptionsEClass;
 	}
@@ -618,16 +590,6 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getCodeGenOptions_ProgLanguage() {
-		return (EReference)codeGenOptionsEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
 	public EClass getInteractionComponent() {
 		return interactionComponentEClass;
 	}
@@ -1661,13 +1623,9 @@
 		compToOOmappingEClass = createEClass(COMP_TO_OOMAPPING);
 		createEReference(compToOOmappingEClass, COMP_TO_OOMAPPING__BASE_CLASS);
 
-		progLanguageEClass = createEClass(PROG_LANGUAGE);
-		createEReference(progLanguageEClass, PROG_LANGUAGE__BASE_CLASS);
-
 		codeGenOptionsEClass = createEClass(CODE_GEN_OPTIONS);
 		createEReference(codeGenOptionsEClass, CODE_GEN_OPTIONS__BASE_PACKAGE);
 		createEReference(codeGenOptionsEClass, CODE_GEN_OPTIONS__COMP_TO_OOMAPPING);
-		createEReference(codeGenOptionsEClass, CODE_GEN_OPTIONS__PROG_LANGUAGE);
 
 		interactionComponentEClass = createEClass(INTERACTION_COMPONENT);
 		createEAttribute(interactionComponentEClass, INTERACTION_COMPONENT__FOR_DISTRIBUTION);
@@ -1860,13 +1818,9 @@
 		initEClass(compToOOmappingEClass, CompToOOmapping.class, "CompToOOmapping", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 		initEReference(getCompToOOmapping_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, CompToOOmapping.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
-		initEClass(progLanguageEClass, ProgLanguage.class, "ProgLanguage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEReference(getProgLanguage_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, ProgLanguage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
-
 		initEClass(codeGenOptionsEClass, CodeGenOptions.class, "CodeGenOptions", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 		initEReference(getCodeGenOptions_Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 1, 1, CodeGenOptions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 		initEReference(getCodeGenOptions_CompToOOmapping(), this.getCompToOOmapping(), null, "compToOOmapping", null, 1, 1, CodeGenOptions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
-		initEReference(getCodeGenOptions_ProgLanguage(), this.getProgLanguage(), null, "progLanguage", null, 1, 1, CodeGenOptions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
 		initEClass(interactionComponentEClass, InteractionComponent.class, "InteractionComponent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 		initEAttribute(getInteractionComponent_ForDistribution(), theTypesPackage.getBoolean(), "forDistribution", "false", 1, 1, InteractionComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/impl/ProgLanguageImpl.java b/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/impl/ProgLanguageImpl.java
deleted file mode 100644
index 725691f..0000000
--- a/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/impl/ProgLanguageImpl.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/**
- * 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.designer.components.FCM.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-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.papyrus.designer.components.FCM.FCMPackage;
-import org.eclipse.papyrus.designer.components.FCM.ProgLanguage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Prog Language</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.designer.components.FCM.impl.ProgLanguageImpl#getBase_Class <em>Base Class</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class ProgLanguageImpl extends EObjectImpl implements ProgLanguage {
-	/**
-	 * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_Class()
-	 * @generated
-	 * @ordered
-	 */
-	protected org.eclipse.uml2.uml.Class base_Class;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ProgLanguageImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return FCMPackage.Literals.PROG_LANGUAGE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public org.eclipse.uml2.uml.Class getBase_Class() {
-		if (base_Class != null && base_Class.eIsProxy()) {
-			InternalEObject oldBase_Class = (InternalEObject)base_Class;
-			base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
-			if (base_Class != oldBase_Class) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, FCMPackage.PROG_LANGUAGE__BASE_CLASS, oldBase_Class, base_Class));
-			}
-		}
-		return base_Class;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public org.eclipse.uml2.uml.Class basicGetBase_Class() {
-		return base_Class;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
-		org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
-		base_Class = newBase_Class;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, FCMPackage.PROG_LANGUAGE__BASE_CLASS, oldBase_Class, base_Class));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case FCMPackage.PROG_LANGUAGE__BASE_CLASS:
-				if (resolve) return getBase_Class();
-				return basicGetBase_Class();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case FCMPackage.PROG_LANGUAGE__BASE_CLASS:
-				setBase_Class((org.eclipse.uml2.uml.Class)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case FCMPackage.PROG_LANGUAGE__BASE_CLASS:
-				setBase_Class((org.eclipse.uml2.uml.Class)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case FCMPackage.PROG_LANGUAGE__BASE_CLASS:
-				return base_Class != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} // ProgLanguageImpl
diff --git a/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/util/FCMAdapterFactory.java b/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/util/FCMAdapterFactory.java
index 2d486e3..0d55430 100644
--- a/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/util/FCMAdapterFactory.java
+++ b/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/util/FCMAdapterFactory.java
@@ -16,7 +16,6 @@
 import org.eclipse.emf.common.notify.Notifier;
 import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.papyrus.designer.components.FCM.*;
 import org.eclipse.papyrus.designer.components.FCM.Assembly;
 import org.eclipse.papyrus.designer.components.FCM.AutoIndex;
 import org.eclipse.papyrus.designer.components.FCM.AutoIndexPerNode;
@@ -48,7 +47,6 @@
 import org.eclipse.papyrus.designer.components.FCM.OperatingSystem;
 import org.eclipse.papyrus.designer.components.FCM.Port;
 import org.eclipse.papyrus.designer.components.FCM.PortKind;
-import org.eclipse.papyrus.designer.components.FCM.ProgLanguage;
 import org.eclipse.papyrus.designer.components.FCM.RuleApplication;
 import org.eclipse.papyrus.designer.components.FCM.Singleton;
 import org.eclipse.papyrus.designer.components.FCM.Target;
@@ -56,7 +54,6 @@
 import org.eclipse.papyrus.designer.components.FCM.Template;
 import org.eclipse.papyrus.designer.components.FCM.TemplatePort;
 import org.eclipse.papyrus.designer.components.FCM.UseInstanceConfigurator;
-import org.eclipse.papyrus.designer.components.FCM.profile.*;
 
 /**
  * <!-- begin-user-doc -->
@@ -143,10 +140,6 @@
 				return createCompToOOmappingAdapter();
 			}
 			@Override
-			public Adapter caseProgLanguage(ProgLanguage object) {
-				return createProgLanguageAdapter();
-			}
-			@Override
 			public Adapter caseCodeGenOptions(CodeGenOptions object) {
 				return createCodeGenOptionsAdapter();
 			}
@@ -385,20 +378,6 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.components.FCM.ProgLanguage <em>Prog Language</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.designer.components.FCM.ProgLanguage
-	 * @generated
-	 */
-	public Adapter createProgLanguageAdapter() {
-		return null;
-	}
-
-	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.designer.components.FCM.CodeGenOptions <em>Code Gen Options</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
diff --git a/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/util/FCMSwitch.java b/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/util/FCMSwitch.java
index fc15e26..e9fb49f 100644
--- a/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/util/FCMSwitch.java
+++ b/components/org.eclipse.papyrus.designer.components.fcm.profile/src-gen/org/eclipse/papyrus/designer/components/FCM/util/FCMSwitch.java
@@ -15,7 +15,6 @@
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.Switch;
-import org.eclipse.papyrus.designer.components.FCM.*;
 import org.eclipse.papyrus.designer.components.FCM.Assembly;
 import org.eclipse.papyrus.designer.components.FCM.AutoIndex;
 import org.eclipse.papyrus.designer.components.FCM.AutoIndexPerNode;
@@ -47,7 +46,6 @@
 import org.eclipse.papyrus.designer.components.FCM.OperatingSystem;
 import org.eclipse.papyrus.designer.components.FCM.Port;
 import org.eclipse.papyrus.designer.components.FCM.PortKind;
-import org.eclipse.papyrus.designer.components.FCM.ProgLanguage;
 import org.eclipse.papyrus.designer.components.FCM.RuleApplication;
 import org.eclipse.papyrus.designer.components.FCM.Singleton;
 import org.eclipse.papyrus.designer.components.FCM.Target;
@@ -55,7 +53,6 @@
 import org.eclipse.papyrus.designer.components.FCM.Template;
 import org.eclipse.papyrus.designer.components.FCM.TemplatePort;
 import org.eclipse.papyrus.designer.components.FCM.UseInstanceConfigurator;
-import org.eclipse.papyrus.designer.components.FCM.profile.*;
 
 /**
  * <!-- begin-user-doc -->
@@ -155,12 +152,6 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case FCMPackage.PROG_LANGUAGE: {
-				ProgLanguage progLanguage = (ProgLanguage)theEObject;
-				T result = caseProgLanguage(progLanguage);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
 			case FCMPackage.CODE_GEN_OPTIONS: {
 				CodeGenOptions codeGenOptions = (CodeGenOptions)theEObject;
 				T result = caseCodeGenOptions(codeGenOptions);
@@ -456,21 +447,6 @@
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Prog Language</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>Prog Language</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseProgLanguage(ProgLanguage object) {
-		return null;
-	}
-
-	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Code Gen Options</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
diff --git a/components/org.eclipse.papyrus.designer.components.transformation.core/META-INF/MANIFEST.MF b/components/org.eclipse.papyrus.designer.components.transformation.core/META-INF/MANIFEST.MF
index 3702f27..05721b4 100644
--- a/components/org.eclipse.papyrus.designer.components.transformation.core/META-INF/MANIFEST.MF
+++ b/components/org.eclipse.papyrus.designer.components.transformation.core/META-INF/MANIFEST.MF
@@ -35,7 +35,8 @@
  org.eclipse.ui,
  org.eclipse.papyrus.designer.languages.common.extensionpoints;bundle-version="0.7.0",
  org.eclipse.uml2.uml.profile.standard;bundle-version="1.0.100",
- org.eclipse.papyrus.infra.ui;bundle-version="1.2.0"
+ org.eclipse.papyrus.infra.ui;bundle-version="1.2.0",
+ org.eclipse.papyrus.designer.languages.common.profile;bundle-version="0.7.1"
 Bundle-Vendor: %providerName
 Bundle-ActivationPolicy: lazy
 Bundle-Version: 0.7.2.qualifier
diff --git a/components/org.eclipse.papyrus.designer.components.transformation.core/src/org/eclipse/papyrus/designer/components/transformation/core/deployment/DepUtils.java b/components/org.eclipse.papyrus.designer.components.transformation.core/src/org/eclipse/papyrus/designer/components/transformation/core/deployment/DepUtils.java
index b5ac388..3816771 100644
--- a/components/org.eclipse.papyrus.designer.components.transformation.core/src/org/eclipse/papyrus/designer/components/transformation/core/deployment/DepUtils.java
+++ b/components/org.eclipse.papyrus.designer.components.transformation.core/src/org/eclipse/papyrus/designer/components/transformation/core/deployment/DepUtils.java
@@ -16,6 +16,7 @@
 import org.eclipse.papyrus.designer.components.FCM.Target;
 import org.eclipse.papyrus.designer.components.transformation.core.ElementFilter;
 import org.eclipse.papyrus.designer.components.transformation.core.Utils;
+import org.eclipse.papyrus.designer.languages.common.profile.Codegen.GeneratorHint;
 import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
 import org.eclipse.uml2.common.util.UML2Util;
 import org.eclipse.uml2.uml.AggregationKind;
@@ -470,22 +471,23 @@
 
 	/**
 	 * Determine which programming language should be generated for a classifier. The
-	 * stereotype CodeGenOptions (which could be on any owning package) is evaluated.
+	 * stereotype GeneratorHint (which could be on any owning package) is evaluated.
 	 *
-	 * @param pkg
-	 *            a classifier
+	 * @param element
+	 *            an element (typically a classifier or a package)
 	 * @return the programming language
 	 */
-	public static String getLanguageFromPackage(Package pkg) {
-		CodeGenOptions codeGenOpt = UMLUtil.getStereotypeApplication(pkg, CodeGenOptions.class);
-		if ((codeGenOpt != null) && (codeGenOpt.getProgLanguage() != null)) {
-			return codeGenOpt.getProgLanguage().getBase_Class().getName();
+	public static String getLanguageFromElement(Element element) {
+		GeneratorHint codeGenOpt = UMLUtil.getStereotypeApplication(element, GeneratorHint.class);
+		if ((codeGenOpt != null) && (codeGenOpt.getLanguage() != null)) {
+			return codeGenOpt.getLanguage().getBase_Class().getName();
 		}
-		else if (pkg.getOwner() instanceof Package) {
-			return getLanguageFromPackage((Package) pkg.getOwner());
+		else if (element.getOwner() instanceof Package) {
+			return getLanguageFromElement(element.getOwner());
 		}
 		else {
-			return null;
+			// Use C++ as default generation language
+			return "C++"; //$NON-NLS-1$;
 		}
 	}
 
@@ -496,10 +498,7 @@
 	 */
 	public static String getTargetLanguage(InstanceSpecification mainInstance) {
 		Classifier cl = DepUtils.getClassifier(mainInstance);
-		String targetLanguage = DepUtils.getLanguageFromPackage(cl.getNearestPackage());
-		if (targetLanguage == null) {
-			targetLanguage = "C++"; //$NON-NLS-1$
-		}
+		String targetLanguage = DepUtils.getLanguageFromElement(cl);
 		return targetLanguage;
 	}
 	
@@ -513,11 +512,11 @@
 	 */
 	public static String getOOTransformationFromPackage(Package pkg) {
 		CodeGenOptions codeGenOpt = UMLUtil.getStereotypeApplication(pkg, CodeGenOptions.class);
-		if ((codeGenOpt != null) && (codeGenOpt.getProgLanguage() != null)) {
+		if ((codeGenOpt != null) && (codeGenOpt.getCompToOOmapping() != null)) {
 			return codeGenOpt.getCompToOOmapping().getBase_Class().getName();
 		}
 		else if (pkg.getOwner() instanceof Package) {
-			return getLanguageFromPackage((Package) pkg.getOwner());
+			return getLanguageFromElement((Package) pkg.getOwner());
 		}
 		else {
 			return null;
diff --git a/components/org.eclipse.papyrus.designer.components.transformation.core/src/org/eclipse/papyrus/designer/components/transformation/core/transformations/TrafoAndCodegenPackage.java b/components/org.eclipse.papyrus.designer.components.transformation.core/src/org/eclipse/papyrus/designer/components/transformation/core/transformations/TrafoAndCodegenPackage.java
index 884f877..7454d14 100644
--- a/components/org.eclipse.papyrus.designer.components.transformation.core/src/org/eclipse/papyrus/designer/components/transformation/core/transformations/TrafoAndCodegenPackage.java
+++ b/components/org.eclipse.papyrus.designer.components.transformation.core/src/org/eclipse/papyrus/designer/components/transformation/core/transformations/TrafoAndCodegenPackage.java
@@ -27,10 +27,6 @@
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.papyrus.designer.languages.common.extensionpoints.ILangCodegen;
-import org.eclipse.papyrus.designer.languages.common.extensionpoints.ILangProjectSupport;
-import org.eclipse.papyrus.designer.languages.common.extensionpoints.LanguageCodegen;
-import org.eclipse.papyrus.designer.languages.common.extensionpoints.LanguageProjectSupport;
 import org.eclipse.papyrus.designer.components.FCM.ContainerRule;
 import org.eclipse.papyrus.designer.components.FCM.ContainerRuleKind;
 import org.eclipse.papyrus.designer.components.FCM.util.FCMUtil;
@@ -45,6 +41,8 @@
 import org.eclipse.papyrus.designer.components.transformation.core.generate.GenerateCode;
 import org.eclipse.papyrus.designer.components.transformation.core.transformations.container.LWContainerTrafo;
 import org.eclipse.papyrus.designer.components.transformation.core.transformations.filters.FilterTemplate;
+import org.eclipse.papyrus.designer.languages.common.extensionpoints.ILangCodegen;
+import org.eclipse.papyrus.designer.languages.common.extensionpoints.LanguageCodegen;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.uml2.uml.Class;
@@ -197,16 +195,11 @@
 			String tmpPath = tmpMM.getPath(project, InstantiateDepPlan.TEMP_MODEL_FOLDER, tmpModel.getName() + InstantiateDepPlan.TEMP_MODEL_POSTFIX);
 			tmpMM.saveModel(tmpPath);
 
-			String targetLanguage = DepUtils.getLanguageFromPackage(selectedPkg);
-			if (targetLanguage == null) {
-				targetLanguage = "C++"; //$NON-NLS-1$
-			}
+			String targetLanguage = DepUtils.getLanguageFromElement(selectedPkg);
 			// genProject = project
 			ModelManagement genMM = tmpMM;
 			IProject genProject = project;
-			ILangProjectSupport projectSupport = LanguageProjectSupport.getProjectSupport(targetLanguage);
 			ILangCodegen codegen = LanguageCodegen.getGenerator(targetLanguage);
-
 			GenerateCode codeGen = new GenerateCode(genProject, codegen, genMM, monitor);
 			codeGen.generate(null, targetLanguage, false);