Bug 516561 - [SysML 1.4] DeriveReqt should be allowed only requirements

 - set client constraint on UML::Element elementtype
 - set supplier constraint on UML::Package elementtype
 - use sysml1.4 matcher to avoid side effect

Change-Id: I85592a24229133d72e0e4362a50878c1fe4a5e75
Signed-off-by: Benoit Maggi <benoit.maggi@cea.fr>
diff --git a/core/org.eclipse.papyrus.sysml14.service.types/model/SysML14-extension.elementtypesconfigurations b/core/org.eclipse.papyrus.sysml14.service.types/model/SysML14-extension.elementtypesconfigurations
index b16010b..d63f3a6 100644
--- a/core/org.eclipse.papyrus.sysml14.service.types/model/SysML14-extension.elementtypesconfigurations
+++ b/core/org.eclipse.papyrus.sysml14.service.types/model/SysML14-extension.elementtypesconfigurations
@@ -1,179 +1,179 @@
-<?xml version="1.0" encoding="ASCII" standalone="no"?>
-<elementtypesconfigurations:ElementTypeSetConfiguration xmlns:elementtypesconfigurations="http://www.eclipse.org/papyrus/infra/elementtypesconfigurations/1.1" xmlns:applystereotypeadvice="http://www.eclipse.org/papyrus/uml/types/applystereotypeadvice/1.1" xmlns:setvaluesadvice="http://www.eclipse.org/papyrus/emf/types/setvaluesadvice/1.1" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" description="SysML 1.4 extension element type set" identifier="org.eclipse.papyrus.sysml14.service.types.elementTypeSet.extension" metamodelNsURI="http://www.eclipse.org/uml2/5.0.0/UML" name="SysML" xmi:id="_k4SmgLwFEeSwNLK2W02HwA" xmi:version="2.0">
-  <elementTypeConfigurations hint="UML::InstanceSpecification" identifier="org.eclipse.papyrus.SysML14.Unit" name="Unit" xmi:id="_5R-xwOgeEeSUQvXhEVQh8w" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
-    <iconEntry bundleId="org.eclipse.uml2.uml.edit" iconPath="/icons/full/obj16/InstanceSpecification.gif" xmi:id="_Fh6LgPJVEeSpV8ZeWOq13Q"/>
+<?xml version="1.0" encoding="ASCII"?>
+<elementtypesconfigurations:ElementTypeSetConfiguration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:applystereotypeadvice="http://www.eclipse.org/papyrus/uml/types/applystereotypeadvice/1.1" xmlns:elementtypesconfigurations="http://www.eclipse.org/papyrus/infra/elementtypesconfigurations/1.1" xmlns:setvaluesadvice="http://www.eclipse.org/papyrus/emf/types/setvaluesadvice/1.1" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_k4SmgLwFEeSwNLK2W02HwA" description="SysML 1.4 extension element type set" identifier="org.eclipse.papyrus.sysml14.service.types.elementTypeSet.extension" name="SysML" metamodelNsURI="http://www.eclipse.org/uml2/5.0.0/UML">
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_5R-xwOgeEeSUQvXhEVQh8w" identifier="org.eclipse.papyrus.SysML14.Unit" name="Unit" hint="UML::InstanceSpecification">
+    <iconEntry xmi:id="_Fh6LgPJVEeSpV8ZeWOq13Q" iconPath="/icons/full/obj16/InstanceSpecification.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.papyrus.uml.InstanceSpecification</specializedTypesID>
-    <editHelperAdviceConfiguration description="" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.UnitEditHelperAdvice" xmi:id="_o8jhkOjFEeSUQvXhEVQh8w" xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration"/>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_BE2mYIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+    <editHelperAdviceConfiguration xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration" xmi:id="_o8jhkOjFEeSUQvXhEVQh8w" description="" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.UnitEditHelperAdvice"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_BE2mYIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </elementTypeConfigurations>
-  <elementTypeConfigurations hint="UML::InstanceSpecification" identifier="org.eclipse.papyrus.SysML14.QuantityKind" name="QuantityKind" xmi:id="_meaO8OgnEeSUQvXhEVQh8w" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_meaO8OgnEeSUQvXhEVQh8w" identifier="org.eclipse.papyrus.SysML14.QuantityKind" name="QuantityKind" hint="UML::InstanceSpecification">
     <specializedTypesID>org.eclipse.papyrus.uml.InstanceSpecification</specializedTypesID>
-    <editHelperAdviceConfiguration description="" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.QuantityKindEditHelperAdvice" xmi:id="_e4MKkOjOEeSWwY3EZCu9OA" xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration"/>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_CnAVoIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+    <editHelperAdviceConfiguration xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration" xmi:id="_e4MKkOjOEeSWwY3EZCu9OA" description="" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.QuantityKindEditHelperAdvice"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_CnAVoIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </elementTypeConfigurations>
-  <elementTypeConfigurations description="Create a PartAssociation" hint="UML::Association" identifier="org.eclipse.papyrus.SysML14.PartAssociation" name="PartAssociation" xmi:id="_OdSQ4OgqEeSUQvXhEVQh8w" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
-    <iconEntry bundleId="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Association_composite.gif" xmi:id="_JEGsoPJlEeSpV8ZeWOq13Q"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_OdSQ4OgqEeSUQvXhEVQh8w" description="Create a PartAssociation" identifier="org.eclipse.papyrus.SysML14.PartAssociation" name="PartAssociation" hint="UML::Association">
+    <iconEntry xmi:id="_JEGsoPJlEeSpV8ZeWOq13Q" iconPath="icons/full/obj16/Association_composite.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.papyrus.uml.Association</specializedTypesID>
-    <editHelperAdviceConfiguration description="" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.PartAssociationEditHelperAdvice" xmi:id="_a6mbQOgsEeSUQvXhEVQh8w" xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration"/>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_CzvxIIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+    <editHelperAdviceConfiguration xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration" xmi:id="_a6mbQOgsEeSUQvXhEVQh8w" description="" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.PartAssociationEditHelperAdvice"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_CzvxIIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </elementTypeConfigurations>
-  <elementTypeConfigurations description="Create a PartAssociation" hint="UML::Association" identifier="org.eclipse.papyrus.SysML14.SharedAssociation" name="SharedAssociation" xmi:id="_FZJTQPJkEeSpV8ZeWOq13Q" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
-    <iconEntry bundleId="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Association_shared.gif" xmi:id="_9DokYPJkEeSpV8ZeWOq13Q"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_FZJTQPJkEeSpV8ZeWOq13Q" description="Create a PartAssociation" identifier="org.eclipse.papyrus.SysML14.SharedAssociation" name="SharedAssociation" hint="UML::Association">
+    <iconEntry xmi:id="_9DokYPJkEeSpV8ZeWOq13Q" iconPath="icons/full/obj16/Association_shared.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.papyrus.uml.Association</specializedTypesID>
-    <editHelperAdviceConfiguration description="" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.SharedAssociationEditHelperAdvice" xmi:id="_FZJTQfJkEeSpV8ZeWOq13Q" xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration"/>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_DAHZMIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+    <editHelperAdviceConfiguration xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration" xmi:id="_FZJTQfJkEeSpV8ZeWOq13Q" description="" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.SharedAssociationEditHelperAdvice"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_DAHZMIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </elementTypeConfigurations>
-  <elementTypeConfigurations description="Create a constraint Property" hint="UML::Property" identifier="org.eclipse.papyrus.SysML14.ConstraintProperty" name="ConstraintProperty" xmi:id="_IEEsMPe5EeSxkueHcFw1lw" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_IEEsMPe5EeSxkueHcFw1lw" description="Create a constraint Property" identifier="org.eclipse.papyrus.SysML14.ConstraintProperty" name="ConstraintProperty" hint="UML::Property">
     <specializedTypesID>org.eclipse.papyrus.uml.Property</specializedTypesID>
-    <editHelperAdviceConfiguration description="" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.ConstraintPropertyEditHelperAdvice" xmi:id="_9KeL8PflEeSxkueHcFw1lw" xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration"/>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.ConstraintPropertyMatcher" xmi:id="_Eka-AF4NEeWhfPUqbhxdNA" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+    <editHelperAdviceConfiguration xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration" xmi:id="_9KeL8PflEeSxkueHcFw1lw" description="" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.ConstraintPropertyEditHelperAdvice"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_Eka-AF4NEeWhfPUqbhxdNA" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.ConstraintPropertyMatcher"/>
   </elementTypeConfigurations>
-  <elementTypeConfigurations description="Create an actor Part" hint="UML::Property" identifier="org.eclipse.papyrus.SysML14.ActorPart" name="ActorPart" xmi:id="_-i3TYCCDEeWp9rJ2gmw59A" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_-i3TYCCDEeWp9rJ2gmw59A" description="Create an actor Part" identifier="org.eclipse.papyrus.SysML14.ActorPart" name="ActorPart" hint="UML::Property">
     <specializedTypesID>org.eclipse.papyrus.uml.Property</specializedTypesID>
-    <editHelperAdviceConfiguration description="" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.ActorPartEditHelperAdvice" xmi:id="_-i3TYSCDEeWp9rJ2gmw59A" xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration"/>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_DvHNMIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+    <editHelperAdviceConfiguration xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration" xmi:id="_-i3TYSCDEeWp9rJ2gmw59A" description="" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.ActorPartEditHelperAdvice"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_DvHNMIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </elementTypeConfigurations>
-  <elementTypeConfigurations description="Create a value" hint="UML::Property" identifier="org.eclipse.papyrus.SysML14.Value" name="Value" xmi:id="_dWnbACCxEeWj-IGNWcNL0Q" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_dWnbACCxEeWj-IGNWcNL0Q" description="Create a value" identifier="org.eclipse.papyrus.SysML14.Value" name="Value" hint="UML::Property">
     <specializedTypesID>org.eclipse.papyrus.uml.Property</specializedTypesID>
-    <editHelperAdviceConfiguration description="" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.AfterConfigureCommandEditHelperAdvice" xmi:id="_dWnbASCxEeWj-IGNWcNL0Q" xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration"/>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_D6YpEIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+    <editHelperAdviceConfiguration xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration" xmi:id="_dWnbASCxEeWj-IGNWcNL0Q" description="" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.AfterConfigureCommandEditHelperAdvice"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_D6YpEIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </elementTypeConfigurations>
-  <elementTypeConfigurations description="Create a reference" hint="UML::Property" identifier="org.eclipse.papyrus.SysML14.Reference" name="Reference" xmi:id="_n1I8cCC-EeWj-IGNWcNL0Q" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_n1I8cCC-EeWj-IGNWcNL0Q" description="Create a reference" identifier="org.eclipse.papyrus.SysML14.Reference" name="Reference" hint="UML::Property">
     <specializedTypesID>org.eclipse.papyrus.uml.Property</specializedTypesID>
-    <editHelperAdviceConfiguration description="" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.AfterConfigureCommandEditHelperAdvice" xmi:id="_n1I8cSC-EeWj-IGNWcNL0Q" xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration"/>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.ReferencePropertyMatcher" xmi:id="_zmSPMGD8EeWD7_0a8AR7SA" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+    <editHelperAdviceConfiguration xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration" xmi:id="_n1I8cSC-EeWj-IGNWcNL0Q" description="" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.AfterConfigureCommandEditHelperAdvice"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_zmSPMGD8EeWD7_0a8AR7SA" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.ReferencePropertyMatcher"/>
   </elementTypeConfigurations>
-  <elementTypeConfigurations description="Create a part" hint="UML::Property" identifier="org.eclipse.papyrus.SysML14.Part" name="Part" xmi:id="_VH780CDGEeWj-IGNWcNL0Q" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_VH780CDGEeWj-IGNWcNL0Q" description="Create a part" identifier="org.eclipse.papyrus.SysML14.Part" name="Part" hint="UML::Property">
     <specializedTypesID>org.eclipse.papyrus.uml.Property</specializedTypesID>
-    <editHelperAdviceConfiguration description="" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.AfterConfigureCommandEditHelperAdvice" xmi:id="_VH780SDGEeWj-IGNWcNL0Q" xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration"/>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_EgLdwIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+    <editHelperAdviceConfiguration xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration" xmi:id="_VH780SDGEeWj-IGNWcNL0Q" description="" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.AfterConfigureCommandEditHelperAdvice"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_EgLdwIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </elementTypeConfigurations>
-  <elementTypeConfigurations description="Create a parameter" hint="UML::Property" identifier="org.eclipse.papyrus.SysML14.Parameter" name="Parameter" xmi:id="_81pmIAI8Eeav1Me8hSVMqw" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_81pmIAI8Eeav1Me8hSVMqw" description="Create a parameter" identifier="org.eclipse.papyrus.SysML14.Parameter" name="Parameter" hint="UML::Property">
     <specializedTypesID>org.eclipse.papyrus.uml.Property</specializedTypesID>
-    <editHelperAdviceConfiguration editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.AfterConfigureCommandEditHelperAdvice" xmi:id="_I_vSgAI_Eeav1Me8hSVMqw" xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration"/>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_Qp1iUAI9Eeav1Me8hSVMqw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+    <editHelperAdviceConfiguration xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration" xmi:id="_I_vSgAI_Eeav1Me8hSVMqw" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.AfterConfigureCommandEditHelperAdvice"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_Qp1iUAI9Eeav1Me8hSVMqw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </elementTypeConfigurations>
-  <elementTypeConfigurations description="Create a FlowProperty" hint="UML::Property" identifier="org.eclipse.papyrus.SysML14.ConfiguredFlowProperty" name="FlowProperty" xmi:id="_hXwb4GFBEeWbSMDuSXx8SQ" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_hXwb4GFBEeWbSMDuSXx8SQ" description="Create a FlowProperty" identifier="org.eclipse.papyrus.SysML14.ConfiguredFlowProperty" name="FlowProperty" hint="UML::Property">
     <specializedTypesID>org.eclipse.papyrus.uml.Property</specializedTypesID>
-    <editHelperAdviceConfiguration editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.AfterConfigureCommandEditHelperAdvice" xmi:id="_urzE0GFBEeWbSMDuSXx8SQ" xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration"/>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_EyD38Ie7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+    <editHelperAdviceConfiguration xsi:type="elementtypesconfigurations:EditHelperAdviceConfiguration" xmi:id="_urzE0GFBEeWbSMDuSXx8SQ" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.AfterConfigureCommandEditHelperAdvice"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_EyD38Ie7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </elementTypeConfigurations>
-  <elementTypeConfigurations editHelperClassName="org.eclipse.papyrus.infra.gmfdiag.common.helper.DefaultEditHelper" hint="SysML::StereotypeInstance::Block" identifier="org.eclipse.papyrus.sysml.stereotypeinstance.Block" name="SysML::StereotypeInstance::Block" xmi:id="_38nM0GHZEeW4GYiHqXalDg" xsi:type="elementtypesconfigurations:MetamodelTypeConfiguration">
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:MetamodelTypeConfiguration" xmi:id="_38nM0GHZEeW4GYiHqXalDg" identifier="org.eclipse.papyrus.sysml.stereotypeinstance.Block" name="SysML::StereotypeInstance::Block" hint="SysML::StereotypeInstance::Block" editHelperClassName="org.eclipse.papyrus.infra.gmfdiag.common.helper.DefaultEditHelper">
     <eClass href="../../org.eclipse.papyrus.sysml14/resources/profile/sysml.ecore#//blocks/Block"/>
   </elementTypeConfigurations>
-  <elementTypeConfigurations description="Create a TestCase Activity" hint="UML::Activity" identifier="org.eclipse.papyrus.SysML14.Activity" name="Activity" xmi:id="_mLdMIGW6EeWv7P_h5u3SSw" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_mLdMIGW6EeWv7P_h5u3SSw" description="Create a TestCase Activity" identifier="org.eclipse.papyrus.SysML14.Activity" name="Activity" hint="UML::Activity">
     <specializedTypesID>org.eclipse.papyrus.uml.Activity</specializedTypesID>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_FAeHYIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_FAeHYIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </elementTypeConfigurations>
-  <elementTypeConfigurations description="Create a TestCase FunctionBehavior" hint="UML::FunctionBehavior" identifier="org.eclipse.papyrus.SysML14.FunctionBehavior" name="TestCase FunctionBehavior" xmi:id="_bKVscGXYEeWv7P_h5u3SSw" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_bKVscGXYEeWv7P_h5u3SSw" description="Create a TestCase FunctionBehavior" identifier="org.eclipse.papyrus.SysML14.FunctionBehavior" name="TestCase FunctionBehavior" hint="UML::FunctionBehavior">
     <specializedTypesID>org.eclipse.papyrus.uml.FunctionBehavior</specializedTypesID>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_FJUhYIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_FJUhYIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </elementTypeConfigurations>
-  <elementTypeConfigurations description="Create a TestCase Interaction" hint="UML::Interaction" identifier="org.eclipse.papyrus.SysML14.Interaction" name="TestCase Interaction" xmi:id="_DbgYQGXbEeWv7P_h5u3SSw" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_DbgYQGXbEeWv7P_h5u3SSw" description="Create a TestCase Interaction" identifier="org.eclipse.papyrus.SysML14.Interaction" name="TestCase Interaction" hint="UML::Interaction">
     <specializedTypesID>org.eclipse.papyrus.uml.Interaction</specializedTypesID>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_FWT0gIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_FWT0gIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </elementTypeConfigurations>
-  <elementTypeConfigurations description="Create a TestCase OpaqueBehavior" hint="UML::OpaqueBehavior" identifier="org.eclipse.papyrus.SysML14.OpaqueBehavior" name="TestCase OpaqueBehavior" xmi:id="_CqEUQGXbEeWv7P_h5u3SSw" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_CqEUQGXbEeWv7P_h5u3SSw" description="Create a TestCase OpaqueBehavior" identifier="org.eclipse.papyrus.SysML14.OpaqueBehavior" name="TestCase OpaqueBehavior" hint="UML::OpaqueBehavior">
     <specializedTypesID>org.eclipse.papyrus.uml.OpaqueBehavior</specializedTypesID>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_FgMwUIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_FgMwUIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </elementTypeConfigurations>
-  <elementTypeConfigurations description="Create a TestCase ProtocolStateMachine" hint="UML::ProtocolStateMachine" identifier="org.eclipse.papyrus.SysML14.ProtocolStateMachine" name="TestCase ProtocolStateMachine" xmi:id="_ir8x0GXaEeWv7P_h5u3SSw" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_ir8x0GXaEeWv7P_h5u3SSw" description="Create a TestCase ProtocolStateMachine" identifier="org.eclipse.papyrus.SysML14.ProtocolStateMachine" name="TestCase ProtocolStateMachine" hint="UML::ProtocolStateMachine">
     <specializedTypesID>org.eclipse.papyrus.uml.ProtocolStateMachine</specializedTypesID>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_FqLywIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_FqLywIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </elementTypeConfigurations>
-  <elementTypeConfigurations description="Create a TestCase StateMachine" hint="UML::StateMachine" identifier="org.eclipse.papyrus.SysML14.StateMachine" name="TestCase StateMachine" xmi:id="_qC8C8GXZEeWv7P_h5u3SSw" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_qC8C8GXZEeWv7P_h5u3SSw" description="Create a TestCase StateMachine" identifier="org.eclipse.papyrus.SysML14.StateMachine" name="TestCase StateMachine" hint="UML::StateMachine">
     <specializedTypesID>org.eclipse.papyrus.uml.StateMachine</specializedTypesID>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_FygBQIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_FygBQIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </elementTypeConfigurations>
-  <elementTypeConfigurations description="Create a PrivatePackageImport" hint="UML::PackageImport" identifier="org.eclipse.papyrus.SysML14.PrivatePackageImport" name="PrivatePackageImport" xmi:id="_8BQwwJzvEeWe1L0yBJDEDA" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration">
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_8BQwwJzvEeWe1L0yBJDEDA" description="Create a PrivatePackageImport" identifier="org.eclipse.papyrus.SysML14.PrivatePackageImport" name="PrivatePackageImport" hint="UML::PackageImport">
     <specializedTypesID>org.eclipse.papyrus.uml.PackageImport</specializedTypesID>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_bo2CgJzwEeWe1L0yBJDEDA" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_bo2CgJzwEeWe1L0yBJDEDA" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </elementTypeConfigurations>
   <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_37v7wJbYEeaZ0sxu8zNRQA" description="Create an AssociationBlock" identifier="org.eclipse.papyrus.SysML14.AssociationBlock" name="AssociationBlock" hint="UML::AssociationClass">
     <specializedTypesID>org.eclipse.papyrus.uml.AssociationClass</specializedTypesID>
     <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_37v7w5bYEeaZ0sxu8zNRQA" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
-  </elementTypeConfigurations>  
-  <adviceBindingsConfigurations description="satisfy org.eclipse.papyrus.sysml14.service.types.REQ_001" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.ConformCreationEditHelperAdvice" identifier="org.eclipse.papyru.sysml14.advice.ConformCreation" inheritance="all" xmi:id="_TpKq0FFwEeWPz5cwbRdVrg" xsi:type="elementtypesconfigurations:AdviceBindingConfiguration">
-    <target href="platform:/plugin/org.eclipse.papyrus.uml.service.types/model/uml.elementtypesconfigurations#_Sca0z1YCEeS0WsAAtVmToA" xsi:type="elementtypesconfigurations:MetamodelTypeConfiguration"/>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_HjxKkIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+  </elementTypeConfigurations>
+  <adviceBindingsConfigurations xsi:type="elementtypesconfigurations:AdviceBindingConfiguration" xmi:id="_TpKq0FFwEeWPz5cwbRdVrg" identifier="org.eclipse.papyru.sysml14.advice.ConformCreation" description="satisfy org.eclipse.papyrus.sysml14.service.types.REQ_001" inheritance="all" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.ConformCreationEditHelperAdvice">
+    <target xsi:type="elementtypesconfigurations:MetamodelTypeConfiguration" href="../../../plugin/org.eclipse.papyrus.uml.service.types/model/uml.elementtypesconfigurations#_Sca0z1YCEeS0WsAAtVmToA"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_HjxKkIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations description="satisfy org.eclipse.papyrus.sysml14.service.types.REQ_001" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.ConformReorientEditHelperAdvice" identifier="org.eclipse.papyru.sysml14.advice.ConformReorient" inheritance="all" xmi:id="_pt2vIFIiEeWPz5cwbRdVrg" xsi:type="elementtypesconfigurations:AdviceBindingConfiguration">
-    <target href="SysML14.elementtypesconfigurations#_fy_UrzxBEeW7COAmy3tOJw" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"/>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_H3hNAIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+  <adviceBindingsConfigurations xsi:type="elementtypesconfigurations:AdviceBindingConfiguration" xmi:id="_pt2vIFIiEeWPz5cwbRdVrg" identifier="org.eclipse.papyru.sysml14.advice.ConformReorient" description="satisfy org.eclipse.papyrus.sysml14.service.types.REQ_001" inheritance="all" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.ConformReorientEditHelperAdvice">
+    <target xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="SysML14.elementtypesconfigurations#_fy_UrzxBEeW7COAmy3tOJw"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_H3hNAIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations description="satisfy org.eclipse.papyrus.sysml14.service.types.REQ_002" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.ElementGroupEditHelperAdvice" identifier="org.eclipse.papyru.sysml14.advice.ElementGroup" inheritance="all" xmi:id="_NLW78FMHEeWPz5cwbRdVrg" xsi:type="elementtypesconfigurations:AdviceBindingConfiguration">
-    <target href="platform:/plugin/org.eclipse.papyrus.uml.service.types/model/uml.elementtypesconfigurations#_Scbb2FYCEeS0WsAAtVmToA" xsi:type="elementtypesconfigurations:MetamodelTypeConfiguration"/>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_H_W6YIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+  <adviceBindingsConfigurations xsi:type="elementtypesconfigurations:AdviceBindingConfiguration" xmi:id="_NLW78FMHEeWPz5cwbRdVrg" identifier="org.eclipse.papyru.sysml14.advice.ElementGroup" description="satisfy org.eclipse.papyrus.sysml14.service.types.REQ_002" inheritance="all" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.ElementGroupEditHelperAdvice">
+    <target xsi:type="elementtypesconfigurations:MetamodelTypeConfiguration" href="../../../plugin/org.eclipse.papyrus.uml.service.types/model/uml.elementtypesconfigurations#_Scbb2FYCEeS0WsAAtVmToA"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_H_W6YIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations description="satisfy org.eclipse.papyrus.sysml14.service.types.REQ_004" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.PartCreationEditHelperAdvice" identifier="org.eclipse.papyrus.sysml14.service.types.advice.PartCreationEditHelperAdvice" inheritance="all" target="_VH780CDGEeWj-IGNWcNL0Q" xmi:id="_YSwK8FeYEeWPz5cwbRdVrg" xsi:type="elementtypesconfigurations:AdviceBindingConfiguration">
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_IF3yEIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+  <adviceBindingsConfigurations xsi:type="elementtypesconfigurations:AdviceBindingConfiguration" xmi:id="_YSwK8FeYEeWPz5cwbRdVrg" identifier="org.eclipse.papyrus.sysml14.service.types.advice.PartCreationEditHelperAdvice" description="satisfy org.eclipse.papyrus.sysml14.service.types.REQ_004" target="_VH780CDGEeWj-IGNWcNL0Q" inheritance="all" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.PartCreationEditHelperAdvice">
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_IF3yEIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations description="satisfy org.eclipse.papyrus.sysml14.service.types.REQ_004" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.ReferenceCreationEditHelperAdvice" identifier="org.eclipse.papyrus.sysml14.service.types.advice.ReferenceCreationEditHelperAdvice" inheritance="all" target="_n1I8cCC-EeWj-IGNWcNL0Q" xmi:id="_XQ3NIFe5EeWPz5cwbRdVrg" xsi:type="elementtypesconfigurations:AdviceBindingConfiguration">
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_IMTxQIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+  <adviceBindingsConfigurations xsi:type="elementtypesconfigurations:AdviceBindingConfiguration" xmi:id="_XQ3NIFe5EeWPz5cwbRdVrg" identifier="org.eclipse.papyrus.sysml14.service.types.advice.ReferenceCreationEditHelperAdvice" description="satisfy org.eclipse.papyrus.sysml14.service.types.REQ_004" target="_n1I8cCC-EeWj-IGNWcNL0Q" inheritance="all" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.ReferenceCreationEditHelperAdvice">
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_IMTxQIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations description="satisfy org.eclipse.papyrus.sysml14.service.types.REQ_007" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.ConnectorReorientEditHelperAdvice" identifier="org.eclipse.papyru.sysml14.advice.ConnectorReorientEditHelperAdvice" inheritance="all" xmi:id="_tA9JMFhlEeWtAJZqY6vX8w" xsi:type="elementtypesconfigurations:AdviceBindingConfiguration">
-    <target href="platform:/plugin/org.eclipse.papyrus.uml.service.types/model/uml.elementtypesconfigurations#_SccC9VYCEeS0WsAAtVmToA" xsi:type="elementtypesconfigurations:MetamodelTypeConfiguration"/>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_ISq38Ie7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+  <adviceBindingsConfigurations xsi:type="elementtypesconfigurations:AdviceBindingConfiguration" xmi:id="_tA9JMFhlEeWtAJZqY6vX8w" identifier="org.eclipse.papyru.sysml14.advice.ConnectorReorientEditHelperAdvice" description="satisfy org.eclipse.papyrus.sysml14.service.types.REQ_007" inheritance="all" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.ConnectorReorientEditHelperAdvice">
+    <target xsi:type="elementtypesconfigurations:MetamodelTypeConfiguration" href="../../../plugin/org.eclipse.papyrus.uml.service.types/model/uml.elementtypesconfigurations#_SccC9VYCEeS0WsAAtVmToA"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_ISq38Ie7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations description="satisfy org.eclipse.papyrus.sysml14.service.types.REQ_007" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.ConnectorCreationEditHelperAdvice" identifier="org.eclipse.papyru.sysml14.advice.ConnectorCreationEditHelperAdvice" inheritance="all" xmi:id="_tO760FhlEeWtAJZqY6vX8w" xsi:type="elementtypesconfigurations:AdviceBindingConfiguration">
-    <target href="SysML14.elementtypesconfigurations#_fy_UozxBEeW7COAmy3tOJw" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"/>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_IZPaAIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+  <adviceBindingsConfigurations xsi:type="elementtypesconfigurations:AdviceBindingConfiguration" xmi:id="_tO760FhlEeWtAJZqY6vX8w" identifier="org.eclipse.papyru.sysml14.advice.ConnectorCreationEditHelperAdvice" description="satisfy org.eclipse.papyrus.sysml14.service.types.REQ_007" inheritance="all" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.ConnectorCreationEditHelperAdvice">
+    <target xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="SysML14.elementtypesconfigurations#_fy_UozxBEeW7COAmy3tOJw"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_IZPaAIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations description="satisfy org.eclipse.papyrus.sysml14.service.types.REQ_007" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.SetEncapsulatedEditHelperAdvice" identifier="org.eclipse.papyrus.sysml14.service.types.advice.SetEncapsulatedEditHelperAdvice" inheritance="all" target="_38nM0GHZEeW4GYiHqXalDg" xmi:id="_rgTZMGFBEeW4GYiHqXalDg" xsi:type="elementtypesconfigurations:AdviceBindingConfiguration">
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_IiwiYIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+  <adviceBindingsConfigurations xsi:type="elementtypesconfigurations:AdviceBindingConfiguration" xmi:id="_rgTZMGFBEeW4GYiHqXalDg" identifier="org.eclipse.papyrus.sysml14.service.types.advice.SetEncapsulatedEditHelperAdvice" description="satisfy org.eclipse.papyrus.sysml14.service.types.REQ_007" target="_38nM0GHZEeW4GYiHqXalDg" inheritance="all" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.SetEncapsulatedEditHelperAdvice">
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_IiwiYIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations identifier="org.eclipse.papyrus.SysML14.testcase.Activity" target="_mLdMIGW6EeWv7P_h5u3SSw" xmi:id="_lVBAYGaLEeWv7P_h5u3SSw" xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration">
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_KmOO8Ie7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
-    <stereotypesToApply stereotypeQualifiedName="SysML::Requirements::TestCase" xmi:id="_shGzoGaLEeWv7P_h5u3SSw">
+  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" xmi:id="_lVBAYGaLEeWv7P_h5u3SSw" identifier="org.eclipse.papyrus.SysML14.testcase.Activity" target="_mLdMIGW6EeWv7P_h5u3SSw">
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_KmOO8Ie7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
+    <stereotypesToApply xmi:id="_shGzoGaLEeWv7P_h5u3SSw" stereotypeQualifiedName="SysML::Requirements::TestCase">
       <requiredProfiles>SysML</requiredProfiles>
     </stereotypesToApply>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations identifier="org.eclipse.papyrus.SysML14.testcase.FunctionBehavior" target="_bKVscGXYEeWv7P_h5u3SSw" xmi:id="_lVBAYGaLEeWv7P_h5u3SSw" xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration">
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_KwI_8Ie7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
-    <stereotypesToApply stereotypeQualifiedName="SysML::Requirements::TestCase" xmi:id="_shGzoGaLEeWv7P_h5u3SSw">
+  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" xmi:id="_lVBAYGaLEeWv7P_h5u3SSw" identifier="org.eclipse.papyrus.SysML14.testcase.FunctionBehavior" target="_bKVscGXYEeWv7P_h5u3SSw">
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_KwI_8Ie7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
+    <stereotypesToApply xmi:id="_shGzoGaLEeWv7P_h5u3SSw" stereotypeQualifiedName="SysML::Requirements::TestCase">
       <requiredProfiles>SysML</requiredProfiles>
     </stereotypesToApply>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations identifier="org.eclipse.papyrus.SysML14.testcase.Interaction" target="_DbgYQGXbEeWv7P_h5u3SSw" xmi:id="_lVBAYGaLEeWv7P_h5u3SSw" xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration">
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_K7KkMIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
-    <stereotypesToApply stereotypeQualifiedName="SysML::Requirements::TestCase" xmi:id="_shGzoGaLEeWv7P_h5u3SSw">
+  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" xmi:id="_lVBAYGaLEeWv7P_h5u3SSw" identifier="org.eclipse.papyrus.SysML14.testcase.Interaction" target="_DbgYQGXbEeWv7P_h5u3SSw">
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_K7KkMIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
+    <stereotypesToApply xmi:id="_shGzoGaLEeWv7P_h5u3SSw" stereotypeQualifiedName="SysML::Requirements::TestCase">
       <requiredProfiles>SysML</requiredProfiles>
     </stereotypesToApply>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations identifier="org.eclipse.papyrus.SysML14.testcase.OpaqueBehavior" target="_CqEUQGXbEeWv7P_h5u3SSw" xmi:id="_lVBAYGaLEeWv7P_h5u3SSw" xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration">
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_LKI0UIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
-    <stereotypesToApply stereotypeQualifiedName="SysML::Requirements::TestCase" xmi:id="_shGzoGaLEeWv7P_h5u3SSw">
+  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" xmi:id="_lVBAYGaLEeWv7P_h5u3SSw" identifier="org.eclipse.papyrus.SysML14.testcase.OpaqueBehavior" target="_CqEUQGXbEeWv7P_h5u3SSw">
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_LKI0UIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
+    <stereotypesToApply xmi:id="_shGzoGaLEeWv7P_h5u3SSw" stereotypeQualifiedName="SysML::Requirements::TestCase">
       <requiredProfiles>SysML</requiredProfiles>
     </stereotypesToApply>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations identifier="org.eclipse.papyrus.SysML14.testcase.ProtocolStateMachine" target="_ir8x0GXaEeWv7P_h5u3SSw" xmi:id="_lVBAYGaLEeWv7P_h5u3SSw" xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration">
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_LU0aUIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
-    <stereotypesToApply stereotypeQualifiedName="SysML::Requirements::TestCase" xmi:id="_shGzoGaLEeWv7P_h5u3SSw">
+  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" xmi:id="_lVBAYGaLEeWv7P_h5u3SSw" identifier="org.eclipse.papyrus.SysML14.testcase.ProtocolStateMachine" target="_ir8x0GXaEeWv7P_h5u3SSw">
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_LU0aUIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
+    <stereotypesToApply xmi:id="_shGzoGaLEeWv7P_h5u3SSw" stereotypeQualifiedName="SysML::Requirements::TestCase">
       <requiredProfiles>SysML</requiredProfiles>
     </stereotypesToApply>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations identifier="org.eclipse.papyrus.SysML14.testcase.StateMachine" target="_qC8C8GXZEeWv7P_h5u3SSw" xmi:id="_lVBAYGaLEeWv7P_h5u3SSw" xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration">
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_Lg5ugIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
-    <stereotypesToApply stereotypeQualifiedName="SysML::Requirements::TestCase" xmi:id="_shGzoGaLEeWv7P_h5u3SSw">
+  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" xmi:id="_lVBAYGaLEeWv7P_h5u3SSw" identifier="org.eclipse.papyrus.SysML14.testcase.StateMachine" target="_qC8C8GXZEeWv7P_h5u3SSw">
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_Lg5ugIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
+    <stereotypesToApply xmi:id="_shGzoGaLEeWv7P_h5u3SSw" stereotypeQualifiedName="SysML::Requirements::TestCase">
       <requiredProfiles>SysML</requiredProfiles>
     </stereotypesToApply>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations identifier="org.eclipse.papyrus.SysML14.testcase.StateMachine" target="_37v7wJbYEeaZ0sxu8zNRQA" xmi:id="_lVBAYGaLEeWv7P_h4u3SSw" xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration">
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_Lg5ugIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
-    <stereotypesToApply stereotypeQualifiedName="SysML::Blocks::Block" xmi:id="_shGzoGaLEeWv7P_h5u2SSw">
+  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" xmi:id="_lVBAYGaLEeWv7P_h4u3SSw" identifier="org.eclipse.papyrus.SysML14.testcase.StateMachine" target="_37v7wJbYEeaZ0sxu8zNRQA">
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_Lg5ugIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
+    <stereotypesToApply xmi:id="_shGzoGaLEeWv7P_h5u2SSw" stereotypeQualifiedName="SysML::Blocks::Block">
       <requiredProfiles>SysML</requiredProfiles>
     </stereotypesToApply>
-  </adviceBindingsConfigurations>  
-  <adviceBindingsConfigurations editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.DirectedRelationshipPropertyPathEditHelperAdvice" identifier="Allocate_Abstraction.DirectedRelationshipPropertyPathEditHelperAdvice" inheritance="all" xmi:id="_hnZx8HHKEeWA-bU7ePaZzw" xsi:type="elementtypesconfigurations:AdviceBindingConfiguration">
-    <target href="platform:/plugin/org.eclipse.papyrus.uml.service.types/model/uml.elementtypesconfigurations#_Sc9nZVYCEeS0WsAAtVmToA" xsi:type="elementtypesconfigurations:MetamodelTypeConfiguration"/>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_KTvX0Ie7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.ReorientDirectedRelationshipPPEditHelperAdvice" identifier="Allocate_Abstraction.ReorientDirectedRelationshipPPEditHelperAdvice" inheritance="all" xmi:id="_df5_gHMnEeWA-bU7ePaZzw" xsi:type="elementtypesconfigurations:AdviceBindingConfiguration">
-    <target href="SysML14.elementtypesconfigurations#_fy_UmjxBEeW7COAmy3tOJw" xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration"/>
-    <matcherConfiguration matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher" xmi:id="_KbIZQIe7EeW05oI_3tpDGw" xsi:type="elementtypesconfigurations:MatcherConfiguration"/>
+  <adviceBindingsConfigurations xsi:type="elementtypesconfigurations:AdviceBindingConfiguration" xmi:id="_hnZx8HHKEeWA-bU7ePaZzw" identifier="Allocate_Abstraction.DirectedRelationshipPropertyPathEditHelperAdvice" inheritance="all" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.DirectedRelationshipPropertyPathEditHelperAdvice">
+    <target xsi:type="elementtypesconfigurations:MetamodelTypeConfiguration" href="../../../plugin/org.eclipse.papyrus.uml.service.types/model/uml.elementtypesconfigurations#_Sc9nZVYCEeS0WsAAtVmToA"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_KTvX0Ie7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.ConstraintCreationEditHelperAdvice" identifier="org.eclipse.papyrus.sysml14.service.types.advice.ConstraintCreationEditHelperAdvice" inheritance="all" xmi:id="_TLxCYIPfEeWhLaOZG6fRyw" xsi:type="elementtypesconfigurations:AdviceBindingConfiguration">
-    <target href="platform:/plugin/org.eclipse.papyrus.uml.service.types/model/uml.elementtypesconfigurations#_Sc-1cFYCEeS0WsAAtVmToA" xsi:type="elementtypesconfigurations:MetamodelTypeConfiguration"/>
+  <adviceBindingsConfigurations xsi:type="elementtypesconfigurations:AdviceBindingConfiguration" xmi:id="_df5_gHMnEeWA-bU7ePaZzw" identifier="Allocate_Abstraction.ReorientDirectedRelationshipPPEditHelperAdvice" inheritance="all" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.ReorientDirectedRelationshipPPEditHelperAdvice">
+    <target xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="SysML14.elementtypesconfigurations#_fy_UmjxBEeW7COAmy3tOJw"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_KbIZQIe7EeW05oI_3tpDGw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
+  </adviceBindingsConfigurations>
+  <adviceBindingsConfigurations xsi:type="elementtypesconfigurations:AdviceBindingConfiguration" xmi:id="_TLxCYIPfEeWhLaOZG6fRyw" identifier="org.eclipse.papyrus.sysml14.service.types.advice.ConstraintCreationEditHelperAdvice" inheritance="all" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.ConstraintCreationEditHelperAdvice">
+    <target xsi:type="elementtypesconfigurations:MetamodelTypeConfiguration" href="../../../plugin/org.eclipse.papyrus.uml.service.types/model/uml.elementtypesconfigurations#_Sc-1cFYCEeS0WsAAtVmToA"/>
   </adviceBindingsConfigurations>
   <adviceBindingsConfigurations xsi:type="setvaluesadvice:SetValuesAdviceConfiguration" xmi:id="_v6SvEKsWEeaA7ctmzDJT8w" identifier="org.eclipse.papyrus.SysML14.PrivatePackageImport.setPrivate" description="Set visibility to private " target="_8BQwwJzvEeWe1L0yBJDEDA">
     <featuresToSet xmi:id="_w_Fz8KsWEeaA7ctmzDJT8w" featureName="visibility">
@@ -184,5 +184,13 @@
         </valueInstance>
       </value>
     </featuresToSet>
-   </adviceBindingsConfigurations>   
-</elementtypesconfigurations:ElementTypeSetConfiguration>
\ No newline at end of file
+  </adviceBindingsConfigurations>
+  <adviceBindingsConfigurations xsi:type="elementtypesconfigurations:AdviceBindingConfiguration" xmi:id="_Qe1A8DbzEeeuq_-iYg-Yhg" identifier="org.eclipse.papyru.sysml14.advice.DeriveReqtClient" description="" inheritance="all" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.DeriveReqtClientEditHelperAdvice">
+    <target xsi:type="elementtypesconfigurations:MetamodelTypeConfiguration" href="../../../plugin/org.eclipse.papyrus.uml.service.types/model/uml.elementtypesconfigurations#_ScgUUFYCEeS0WsAAtVmToA"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_Qe1A8TbzEeeuq_-iYg-Yhg" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
+  </adviceBindingsConfigurations>
+  <adviceBindingsConfigurations xsi:type="elementtypesconfigurations:AdviceBindingConfiguration" xmi:id="_XecvUDoxEeeIivSImw6BZw" identifier="org.eclipse.papyru.sysml14.advice.DeriveReqtSupplier" description="" inheritance="all" editHelperAdviceClassName="org.eclipse.papyrus.sysml14.service.types.advice.DeriveReqtSupplierEditHelperAdvice">
+    <target xsi:type="elementtypesconfigurations:MetamodelTypeConfiguration" href="../../../plugin/org.eclipse.papyrus.uml.service.types/model/uml.elementtypesconfigurations#_Sc9nZVYCEeS0WsAAtVmToA"/>
+    <matcherConfiguration xsi:type="elementtypesconfigurations:MatcherConfiguration" xmi:id="_XecvUToxEeeIivSImw6BZw" matcherClassName="org.eclipse.papyrus.sysml14.service.types.matcher.internal.SysML14ProfileMatcher"/>
+  </adviceBindingsConfigurations>
+</elementtypesconfigurations:ElementTypeSetConfiguration>
diff --git a/core/org.eclipse.papyrus.sysml14.service.types/src/org/eclipse/papyrus/sysml14/service/types/advice/DeriveReqtClientEditHelperAdvice.java b/core/org.eclipse.papyrus.sysml14.service.types/src/org/eclipse/papyrus/sysml14/service/types/advice/DeriveReqtClientEditHelperAdvice.java
new file mode 100755
index 0000000..3596462
--- /dev/null
+++ b/core/org.eclipse.papyrus.sysml14.service.types/src/org/eclipse/papyrus/sysml14/service/types/advice/DeriveReqtClientEditHelperAdvice.java
@@ -0,0 +1,89 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST and others.
+ * 
+ * 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:
+ *   Patrick Tessier (CEA LIST) - Initial API and implementation
+ *   
+ *****************************************************************************/
+
+package org.eclipse.papyrus.sysml14.service.types.advice;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.ISpecializationType;
+import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest;
+import org.eclipse.papyrus.sysml14.requirements.Requirement;
+import org.eclipse.papyrus.sysml14.service.types.util.SysMLServiceTypeUtil;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * 16.3.2.2 DeriveReqt (SysML 1.4)
+ * Constraints
+ * [2] The client must be an element stereotyped by «requirement» or one of «requirement» subtypes.
+ *
+ */
+public class DeriveReqtClientEditHelperAdvice extends AbstractEditHelperAdvice {
+
+	/**
+	 * @see org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice#approveRequest(org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest)
+	 *
+	 * @param request
+	 * @return
+	 */
+	@Override
+	public boolean approveRequest(IEditCommandRequest request) {
+		// only CreateRelationshipRequest are interested for conform
+		if (request instanceof CreateRelationshipRequest) {
+			CreateRelationshipRequest createRelationshipRequest = (CreateRelationshipRequest) request;
+			// only elementType conform are interested for conform
+			IElementType elementType = createRelationshipRequest.getElementType();
+			if (elementType instanceof ISpecializationType) {
+				if (isSpecializationof((ISpecializationType) elementType, SysMLServiceTypeUtil.ORG_ECLIPSE_PAPYRUS_SYSML14_DERIVEREQT_ABSTRACTION) ||
+						isSpecializationof((ISpecializationType) elementType, SysMLServiceTypeUtil.ORG_ECLIPSE_PAPYRUS_SYSML14_DERIVEREQT_DIRECTEDRELATIONSHIP)) {
+					return approveCreateRelationshipRequest(createRelationshipRequest);
+				}
+			}
+		}
+		return super.approveRequest(request);
+	}
+
+	/**
+	 * Client (source) of the createRelationshipRequest should be a requirement
+	 * 
+	 * @param createRelationshipRequest
+	 * @return
+	 */
+	private boolean approveCreateRelationshipRequest(CreateRelationshipRequest createRelationshipRequest) {
+		EObject source = createRelationshipRequest.getSource();
+		return (source instanceof Classifier) && UMLUtil.getStereotypeApplication((Classifier) source, Requirement.class) != null;
+	}
+
+	/**
+	 * Check if iSpecializationType is a specialization of elementTypeId
+	 * 
+	 * @param iSpecializationType
+	 * @param elementTypeId
+	 * @return
+	 */
+	// FIXME : this utility should be provided by the elementType API
+	private boolean isSpecializationof(ISpecializationType iSpecializationType, String elementTypeId) {
+		List<IElementType> elementTypesHierarchy = new ArrayList<>();
+		elementTypesHierarchy.add(iSpecializationType);
+		elementTypesHierarchy.addAll(Arrays.asList(iSpecializationType.getAllSuperTypes()));
+		return elementTypesHierarchy.contains(ElementTypeRegistry.getInstance().getType(elementTypeId));
+	}
+
+}
diff --git a/core/org.eclipse.papyrus.sysml14.service.types/src/org/eclipse/papyrus/sysml14/service/types/advice/DeriveReqtSupplierEditHelperAdvice.java b/core/org.eclipse.papyrus.sysml14.service.types/src/org/eclipse/papyrus/sysml14/service/types/advice/DeriveReqtSupplierEditHelperAdvice.java
new file mode 100755
index 0000000..d79bcd7
--- /dev/null
+++ b/core/org.eclipse.papyrus.sysml14.service.types/src/org/eclipse/papyrus/sysml14/service/types/advice/DeriveReqtSupplierEditHelperAdvice.java
@@ -0,0 +1,88 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST and others.
+ * 
+ * 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:
+ *   Patrick Tessier (CEA LIST) - Initial API and implementation
+ *   
+ *****************************************************************************/
+
+package org.eclipse.papyrus.sysml14.service.types.advice;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.emf.type.core.ElementTypeRegistry;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.ISpecializationType;
+import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest;
+import org.eclipse.papyrus.sysml14.requirements.Requirement;
+import org.eclipse.papyrus.sysml14.service.types.util.SysMLServiceTypeUtil;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * 16.3.2.2 DeriveReqt (SysML 1.4)
+ * Constraints
+ * [1] The supplier must be an element stereotyped by «requirement» or one of «requirement» subtypes.
+ */
+public class DeriveReqtSupplierEditHelperAdvice extends AbstractEditHelperAdvice {
+
+	/**
+	 * @see org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice#approveRequest(org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest)
+	 *
+	 * @param request
+	 * @return
+	 */
+	@Override
+	public boolean approveRequest(IEditCommandRequest request) {
+		// only CreateRelationshipRequest are interested for conform
+		if (request instanceof CreateRelationshipRequest) {
+			CreateRelationshipRequest createRelationshipRequest = (CreateRelationshipRequest) request;
+			// only elementType conform are interested for conform
+			IElementType elementType = createRelationshipRequest.getElementType();
+			if (elementType instanceof ISpecializationType) {
+				if (isSpecializationof((ISpecializationType) elementType, SysMLServiceTypeUtil.ORG_ECLIPSE_PAPYRUS_SYSML14_DERIVEREQT_ABSTRACTION) ||
+						isSpecializationof((ISpecializationType) elementType, SysMLServiceTypeUtil.ORG_ECLIPSE_PAPYRUS_SYSML14_DERIVEREQT_DIRECTEDRELATIONSHIP)) {
+					return approveCreateRelationshipRequest(createRelationshipRequest);
+				}
+			}
+		}
+		return super.approveRequest(request);
+	}
+
+	/**
+	 * supplier (target) of the createRelationshipRequest should be a requirement
+	 * 
+	 * @param createRelationshipRequest
+	 * @return
+	 */
+	private boolean approveCreateRelationshipRequest(CreateRelationshipRequest createRelationshipRequest) {
+		EObject target = createRelationshipRequest.getTarget();
+		return (target instanceof Classifier) && UMLUtil.getStereotypeApplication((Classifier) target, Requirement.class) != null;
+	}
+
+	/**
+	 * Check if iSpecializationType is a specialization of elementTypeId
+	 * 
+	 * @param iSpecializationType
+	 * @param elementTypeId
+	 * @return
+	 */
+	// FIXME : this utility should be provided by the elementType API
+	private boolean isSpecializationof(ISpecializationType iSpecializationType, String elementTypeId) {
+		List<IElementType> elementTypesHierarchy = new ArrayList<>();
+		elementTypesHierarchy.add(iSpecializationType);
+		elementTypesHierarchy.addAll(Arrays.asList(iSpecializationType.getAllSuperTypes()));
+		return elementTypesHierarchy.contains(ElementTypeRegistry.getInstance().getType(elementTypeId));
+	}
+
+}