Bug 530565 - Remove validation error in SysML profile

 - fix UML metamodel import
 - replace OMG url by Eclipse UML pathmap
 - fix typo:
    - Refine_base_Abstraction by Refine-base_Abstraction
    - Trace_base_Abstraction by Trace-base_Abstraction
 - add ProfileValisationTest to ensure that sysml.profile.uml doesn't
have anymore validation errors
 - add missing generalization:
     - SysML::Trace to StandardProfile::Trace
     - SysML::Refine to StandardProfile::Refine
 - re gen the code for model and edit
 - keep some old methods in RequirementsPackage to avoid API break

Change-Id: I825d703947643f84efb6d2fd752c19b5d0922582
Signed-off-by: Benoit Maggi <benoit.maggi@cea.fr>
diff --git a/core/org.eclipse.papyrus.sysml14.edit/META-INF/MANIFEST.MF b/core/org.eclipse.papyrus.sysml14.edit/META-INF/MANIFEST.MF
index 76946ab..4acf2a2 100644
--- a/core/org.eclipse.papyrus.sysml14.edit/META-INF/MANIFEST.MF
+++ b/core/org.eclipse.papyrus.sysml14.edit/META-INF/MANIFEST.MF
@@ -18,14 +18,14 @@
  org.eclipse.papyrus.sysml14.provider,
  org.eclipse.papyrus.sysml14.requirements.provider
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.6.0,4.0.0)",
- org.eclipse.papyrus.sysml14;visibility:=reexport;bundle-version="1.0.0",
- org.eclipse.emf.edit;visibility:=reexport;bundle-version="[2.11.1,3.0.0)",
- org.eclipse.emf.ecore;visibility:=reexport;bundle-version="[2.11.2,3.0.0)",
- org.eclipse.emf.ecore.edit;visibility:=reexport;bundle-version="[2.9.0,3.0.0)",
- org.eclipse.uml2.uml.profile.standard;visibility:=reexport;bundle-version="[1.0.100,2.0.0)",
- org.eclipse.uml2.types;visibility:=reexport;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.uml2.uml;visibility:=reexport;bundle-version="[5.1.0,6.0.0)",
- org.eclipse.uml2.uml.edit;visibility:=reexport;bundle-version="[5.1.1,6.0.0)",
- org.eclipse.uml2.common.edit;visibility:=reexport;bundle-version="[2.1.0,3.0.0)"
+ org.eclipse.papyrus.sysml14;bundle-version="1.0.0";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.11.1,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;bundle-version="[2.11.2,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.9.0,3.0.0)";visibility:=reexport,
+ org.eclipse.uml2.uml.profile.standard;bundle-version="[1.0.100,2.0.0)";visibility:=reexport,
+ org.eclipse.uml2.types;bundle-version="[2.0.0,3.0.0)";visibility:=reexport,
+ org.eclipse.uml2.uml;bundle-version="[5.1.0,6.0.0)";visibility:=reexport,
+ org.eclipse.uml2.uml.edit;bundle-version="[5.1.1,6.0.0)";visibility:=reexport,
+ org.eclipse.uml2.common.edit;bundle-version="[2.1.0,3.0.0)";visibility:=reexport
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.papyrus.sysml14.edit
diff --git a/core/org.eclipse.papyrus.sysml14.edit/src-gen/org/eclipse/papyrus/sysml14/requirements/provider/RefineItemProvider.java b/core/org.eclipse.papyrus.sysml14.edit/src-gen/org/eclipse/papyrus/sysml14/requirements/provider/RefineItemProvider.java
index 3253f8e..ee77bfb 100644
--- a/core/org.eclipse.papyrus.sysml14.edit/src-gen/org/eclipse/papyrus/sysml14/requirements/provider/RefineItemProvider.java
+++ b/core/org.eclipse.papyrus.sysml14.edit/src-gen/org/eclipse/papyrus/sysml14/requirements/provider/RefineItemProvider.java
@@ -27,8 +27,7 @@
 import org.eclipse.papyrus.sysml14.blocks.provider.DirectedRelationshipPropertyPathItemProvider;
 
 import org.eclipse.papyrus.sysml14.provider.SysMLEditPlugin;
-
-import org.eclipse.papyrus.sysml14.requirements.RequirementsPackage;
+import org.eclipse.uml2.uml.profile.standard.StandardPackage;
 
 /**
  * This is the item provider adapter for a {@link org.eclipse.papyrus.sysml14.requirements.Refine} object.
@@ -76,7 +75,7 @@
 				 getResourceLocator(),
 				 getString("_UI_Refine_base_Abstraction_feature"), //$NON-NLS-1$
 				 getString("_UI_PropertyDescriptor_description", "_UI_Refine_base_Abstraction_feature", "_UI_Refine_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 RequirementsPackage.Literals.REFINE__BASE_ABSTRACTION,
+				 StandardPackage.Literals.REFINE__BASE_ABSTRACTION,
 				 true,
 				 false,
 				 true,
diff --git a/core/org.eclipse.papyrus.sysml14.edit/src-gen/org/eclipse/papyrus/sysml14/requirements/provider/TraceItemProvider.java b/core/org.eclipse.papyrus.sysml14.edit/src-gen/org/eclipse/papyrus/sysml14/requirements/provider/TraceItemProvider.java
index a4eb703..eb98537 100644
--- a/core/org.eclipse.papyrus.sysml14.edit/src-gen/org/eclipse/papyrus/sysml14/requirements/provider/TraceItemProvider.java
+++ b/core/org.eclipse.papyrus.sysml14.edit/src-gen/org/eclipse/papyrus/sysml14/requirements/provider/TraceItemProvider.java
@@ -27,8 +27,7 @@
 import org.eclipse.papyrus.sysml14.blocks.provider.DirectedRelationshipPropertyPathItemProvider;
 
 import org.eclipse.papyrus.sysml14.provider.SysMLEditPlugin;
-
-import org.eclipse.papyrus.sysml14.requirements.RequirementsPackage;
+import org.eclipse.uml2.uml.profile.standard.StandardPackage;
 
 /**
  * This is the item provider adapter for a {@link org.eclipse.papyrus.sysml14.requirements.Trace} object.
@@ -76,7 +75,7 @@
 				 getResourceLocator(),
 				 getString("_UI_Trace_base_Abstraction_feature"), //$NON-NLS-1$
 				 getString("_UI_PropertyDescriptor_description", "_UI_Trace_base_Abstraction_feature", "_UI_Trace_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 RequirementsPackage.Literals.TRACE__BASE_ABSTRACTION,
+				 StandardPackage.Literals.TRACE__BASE_ABSTRACTION,
 				 true,
 				 false,
 				 true,
diff --git a/core/org.eclipse.papyrus.sysml14.tests/src/org/eclipse/papyrus/sysml14/tests/resources/ModelValidationTest.java b/core/org.eclipse.papyrus.sysml14.tests/src/org/eclipse/papyrus/sysml14/tests/resources/ModelValidationTest.java
index 9d4a6a3..97c096b 100644
--- a/core/org.eclipse.papyrus.sysml14.tests/src/org/eclipse/papyrus/sysml14/tests/resources/ModelValidationTest.java
+++ b/core/org.eclipse.papyrus.sysml14.tests/src/org/eclipse/papyrus/sysml14/tests/resources/ModelValidationTest.java
@@ -42,7 +42,7 @@
 	public static Collection<Object[]> data() {
 		return Arrays.asList(new Object[][] { 
 			//FIXME Invalid {"/resources/library/QUDV.uml"},
-			//FIXME Invalid {"/resources/profile/SysML.profile.uml"},
+			//FIXME Invalid {"/resources/profile/SysML.profile.uml"}, @See ProfileValidationTest
 			{"/resources/library/SysML-Standard-Library.uml"},			
 		});
 	}
diff --git a/core/org.eclipse.papyrus.sysml14.tests/src/org/eclipse/papyrus/sysml14/tests/resources/ProfileValidationTest.java b/core/org.eclipse.papyrus.sysml14.tests/src/org/eclipse/papyrus/sysml14/tests/resources/ProfileValidationTest.java
new file mode 100644
index 0000000..b22e240
--- /dev/null
+++ b/core/org.eclipse.papyrus.sysml14.tests/src/org/eclipse/papyrus/sysml14/tests/resources/ProfileValidationTest.java
@@ -0,0 +1,56 @@
+/*****************************************************************************
+ * Copyright (c) 2018 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:
+ *  Benoit Maggi (CEA LIST) benoit.maggi@cea.fr - Initial API and implementation
+ *   
+ *****************************************************************************/
+
+package org.eclipse.papyrus.sysml14.tests.resources;
+
+import java.util.List;
+
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.Diagnostician;
+import org.eclipse.papyrus.sysml14.Activator;
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Specific test checking that profile doesn't have any errors (only warnings...)
+ */
+@SuppressWarnings("nls")
+public class ProfileValidationTest {
+
+	/**
+	 * Validate the model with the rules defined in the meta-model tooling
+	 */
+	@Test
+	public void validateModel() {
+		String fullPath = Activator.PLUGIN_ID + "/resources/profile/SysML.profile.uml";
+		URI modelPlatformURI = URI.createPlatformPluginURI(fullPath, true);
+		Resource resource = new ResourceSetImpl().getResource(modelPlatformURI, true);
+		Diagnostic diagnostic = Diagnostician.INSTANCE.validate(resource.getContents().get(0));
+		Assert.assertNotEquals("The "+"/resources/profile/SysML.profile.uml"+" model is invalid "+print(diagnostic), Diagnostic.ERROR, diagnostic.getSeverity());
+	}
+
+	// FIXME : Something should exist in API to do that
+	private String print(Diagnostic diagnostic) {
+		List<Diagnostic> children = diagnostic.getChildren();
+		StringBuilder stringBuilder = new StringBuilder(diagnostic.getMessage());
+		for (Diagnostic diagnosticChildren : children) {
+			stringBuilder.append("\n"); //$NON-NLS-1$
+			stringBuilder.append(diagnosticChildren.getMessage());
+		}
+		return stringBuilder.toString();
+	}	
+	
+}
diff --git a/core/org.eclipse.papyrus.sysml14/resources/profile/SysML.profile.genmodel b/core/org.eclipse.papyrus.sysml14/resources/profile/SysML.profile.genmodel
index dc8d609..1b8074b 100644
--- a/core/org.eclipse.papyrus.sysml14/resources/profile/SysML.profile.genmodel
+++ b/core/org.eclipse.papyrus.sysml14/resources/profile/SysML.profile.genmodel
@@ -9,7 +9,7 @@
     nonNLSMarkers="true" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
     testsDirectory="/org.eclipse.papyrus.sysml14.tests/src-gen" testSuiteClass="org.eclipse.papyrus.sysml14.tests.SysMLAllTests"
     importerID="org.eclipse.uml2.uml.ecore.importer" complianceLevel="7.0" copyrightFields="false"
-    usedGenPackages="../../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../../org.eclipse.uml2.types/model/Types.genmodel#//types ../../../org.eclipse.uml2.uml/model/UML.genmodel#//uml"
+    usedGenPackages="../../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../../org.eclipse.uml2.uml.profile.standard/model/Standard.genmodel#//standard ../../../org.eclipse.uml2.types/model/Types.genmodel#//types ../../../org.eclipse.uml2.uml/model/UML.genmodel#//uml"
     classNamePattern="" operationReflection="true" importOrganizing="true">
   <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/importer/org.eclipse.uml2.uml.ecore.importer">
     <details key="ECORE_TAGGED_VALUES" value="PROCESS"/>
@@ -345,8 +345,6 @@
         disposableProviderFactory="true" classPackageSuffix="internal.impl" ecorePackage="sysml.ecore#//requirements">
       <genClasses xsi:type="genmodel:GenClass" ecoreClass="sysml.ecore#//requirements/Copy"/>
       <genClasses xsi:type="genmodel:GenClass" ecoreClass="sysml.ecore#//requirements/Trace">
-        <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-            propertySortChoices="true" ecoreFeature="ecore:EReference sysml.ecore#//requirements/Trace/base_Abstraction"/>
         <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="sysml.ecore#//requirements/Trace/getTracedFrom">
           <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="sysml.ecore#//requirements/Trace/getTracedFrom/ref"/>
           <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="sysml.ecore#//requirements/Trace/getTracedFrom/result"/>
@@ -374,8 +372,6 @@
       </genClasses>
       <genClasses xsi:type="genmodel:GenClass" ecoreClass="sysml.ecore#//requirements/DeriveReqt"/>
       <genClasses xsi:type="genmodel:GenClass" ecoreClass="sysml.ecore#//requirements/Refine">
-        <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-            propertySortChoices="true" ecoreFeature="ecore:EReference sysml.ecore#//requirements/Refine/base_Abstraction"/>
         <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="sysml.ecore#//requirements/Refine/getRefines">
           <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="sysml.ecore#//requirements/Refine/getRefines/ref"/>
           <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="sysml.ecore#//requirements/Refine/getRefines/result"/>
diff --git a/core/org.eclipse.papyrus.sysml14/resources/profile/SysML.profile.uml b/core/org.eclipse.papyrus.sysml14/resources/profile/SysML.profile.uml
index e443694..0ab62c1 100644
--- a/core/org.eclipse.papyrus.sysml14/resources/profile/SysML.profile.uml
+++ b/core/org.eclipse.papyrus.sysml14/resources/profile/SysML.profile.uml
@@ -4,7 +4,9 @@
     <packageImport xmi:type="uml:PackageImport" xmi:id="SysML._packageImport._0">
       <importedPackage xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
     </packageImport>
-    <packageImport xmi:type="uml:PackageImport" href="#SysML._metamodelReference._0"/>
+    <packageImport xmi:type="uml:PackageImport">
+      <importedPackage xmi:type="uml:Model" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_0"/>
+    </packageImport>
     <packagedElement xmi:type="uml:Profile" xmi:id="SysML.package_packagedElement_Activities" name="Activities">
       <packagedElement xmi:type="uml:Extension" xmi:id="SysML.package_packagedElement_Activities.extension_packagedElement_E_extension_ControlOperator_base_Behavior" name="E_extension_ControlOperator_base_Behavior" memberEnd="SysML.package_packagedElement_Activities.stereotype_packagedElement_ControlOperator_ownedAttribute.base_Behavior SysML.package_packagedElement_Activities.extension_packagedElement_E_extension_ControlOperator_base_Behavior_ownedEnd.extension_ControlOperator" navigableOwnedEnd="SysML.package_packagedElement_Activities.extension_packagedElement_E_extension_ControlOperator_base_Behavior_ownedEnd.extension_ControlOperator">
         <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="SysML.package_packagedElement_Activities.extension_packagedElement_E_extension_ControlOperator_base_Behavior_ownedEnd.extension_ControlOperator" name="extension_ControlOperator" type="SysML.package_packagedElement_Activities.stereotype_packagedElement_ControlOperator" association="SysML.package_packagedElement_Activities.extension_packagedElement_E_extension_ControlOperator_base_Behavior">
@@ -1350,7 +1352,7 @@
     <packagedElement xmi:type="uml:Profile" xmi:id="SysML.package_packagedElement_Requirements" name="Requirements">
       <packagedElement xmi:type="uml:Extension" xmi:id="SysML.package_packagedElement_Requirements.extension_packagedElement_E_extension_Refine_base_Abstraction" name="E_extension_Refine_base_Abstraction" memberEnd="SysML.package_packagedElement_Requirements.extension_packagedElement_E_extension_Refine_base_Abstraction_ownedEnd.extension_Refine SysML.package_packagedElement_Requirements.stereotype_packagedElement_Refine_ownedAttribute.base_Abstraction" navigableOwnedEnd="SysML.package_packagedElement_Requirements.extension_packagedElement_E_extension_Refine_base_Abstraction_ownedEnd.extension_Refine">
         <generalization xmi:type="uml:Generalization" xmi:id="SysML.package_packagedElement_Requirements.extension_packagedElement_E_extension_Refine_base_Abstraction._generalization.Abstraction_Refine">
-          <general xmi:type="uml:Classifier" href="http://www.omg.org/spec/UML/20131001/StandardProfile.xmi#Abstraction_Refine"/>
+          <general xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Abstraction_Refine"/>
         </generalization>
         <generalization xmi:type="uml:Generalization" xmi:id="SysML.package_packagedElement_Requirements.extension_packagedElement_E_extension_Refine_base_Abstraction._generalization.SysML.package_packagedElement_Blocks.extension_packagedElement_E_extension_DirectedRelationshipPropertyPath_base_DirectedRelationship" general="SysML.package_packagedElement_Blocks.extension_packagedElement_E_extension_DirectedRelationshipPropertyPath_base_DirectedRelationship"/>
         <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="SysML.package_packagedElement_Requirements.extension_packagedElement_E_extension_Refine_base_Abstraction_ownedEnd.extension_Refine" name="extension_Refine" type="SysML.package_packagedElement_Requirements.stereotype_packagedElement_Refine" association="SysML.package_packagedElement_Requirements.extension_packagedElement_E_extension_Refine_base_Abstraction">
@@ -1376,7 +1378,7 @@
       </packagedElement>
       <packagedElement xmi:type="uml:Extension" xmi:id="SysML.package_packagedElement_Requirements.extension_packagedElement_E_extension_Trace_base_Abstraction" name="E_extension_Trace_base_Abstraction" memberEnd="SysML.package_packagedElement_Requirements.extension_packagedElement_E_extension_Trace_base_Abstraction_ownedEnd.extension_Trace SysML.package_packagedElement_Requirements.stereotype_packagedElement_Trace_ownedAttribute.base_Abstraction" navigableOwnedEnd="SysML.package_packagedElement_Requirements.extension_packagedElement_E_extension_Trace_base_Abstraction_ownedEnd.extension_Trace">
         <generalization xmi:type="uml:Generalization" xmi:id="SysML.package_packagedElement_Requirements.extension_packagedElement_E_extension_Trace_base_Abstraction._generalization.Abstraction_Trace">
-          <general xmi:type="uml:Classifier" href="http://www.omg.org/spec/UML/20131001/StandardProfile.xmi#Abstraction_Trace"/>
+          <general xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Abstraction_Trace"/>
         </generalization>
         <generalization xmi:type="uml:Generalization" xmi:id="SysML.package_packagedElement_Requirements.extension_packagedElement_E_extension_Trace_base_Abstraction._generalization.SysML.package_packagedElement_Blocks.extension_packagedElement_E_extension_DirectedRelationshipPropertyPath_base_DirectedRelationship" general="SysML.package_packagedElement_Blocks.extension_packagedElement_E_extension_DirectedRelationshipPropertyPath_base_DirectedRelationship"/>
         <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="SysML.package_packagedElement_Requirements.extension_packagedElement_E_extension_Trace_base_Abstraction_ownedEnd.extension_Trace" name="extension_Trace" type="SysML.package_packagedElement_Requirements.stereotype_packagedElement_Trace" association="SysML.package_packagedElement_Requirements.extension_packagedElement_E_extension_Trace_base_Abstraction">
@@ -1411,11 +1413,14 @@
       </packagedElement>
       <packagedElement xmi:type="uml:Stereotype" xmi:id="SysML.package_packagedElement_Requirements.stereotype_packagedElement_Refine" name="Refine">
         <generalization xmi:type="uml:Generalization" xmi:id="SysML.package_packagedElement_Requirements.stereotype_packagedElement_Refine._generalization.SysML.package_packagedElement_Blocks.stereotype_packagedElement_DirectedRelationshipPropertyPath" general="SysML.package_packagedElement_Blocks.stereotype_packagedElement_DirectedRelationshipPropertyPath"/>
+         <generalization xmi:type="uml:Generalization" xmi:id="SysML.package_packagedElement_Requirements.stereotype_packagedElement_Refine._generalization.UML.stereotype_packagedElement_Refine"> 
+        	<general xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Refine"/>
+         </generalization>
         <ownedAttribute xmi:type="uml:Property" xmi:id="SysML.package_packagedElement_Requirements.stereotype_packagedElement_Refine_ownedAttribute.base_Abstraction" name="base_Abstraction" association="SysML.package_packagedElement_Requirements.extension_packagedElement_E_extension_Refine_base_Abstraction">
           <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Abstraction"/>
           <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SysML.package_packagedElement_Requirements.stereotype_packagedElement_Refine_ownedAttribute.base_Abstraction_lowerValue"/>
           <redefinedProperty xmi:type="uml:Property" href="#SysML.package_packagedElement_Blocks.stereotype_packagedElement_DirectedRelationshipPropertyPath_ownedAttribute.base_DirectedRelationship"/>
-          <redefinedProperty xmi:type="uml:Property" href="http://www.omg.org/spec/UML/20131001/StandardProfile.xmi#Refine_base_Abstraction"/>
+          <redefinedProperty xmi:type="uml:Property" href="pathmap://UML_PROFILES/Standard.profile.uml#Refine-base_Abstraction"/>
         </ownedAttribute>
         <ownedOperation xmi:type="uml:Operation" xmi:id="SysML.package_packagedElement_Requirements.stereotype_packagedElement_Refine_ownedOperation.getRefines_Requirement_NamedElement" name="getRefines" isStatic="true" isQuery="true">
           <ownedParameter xmi:type="uml:Parameter" xmi:id="SysML.package_packagedElement_Requirements.stereotype_packagedElement_Refine_ownedOperation.getRefines_Requirement_NamedElement.parameter_ownedParameter_ref" name="ref">
@@ -1554,11 +1559,14 @@
       </packagedElement>
       <packagedElement xmi:type="uml:Stereotype" xmi:id="SysML.package_packagedElement_Requirements.stereotype_packagedElement_Trace" name="Trace">
         <generalization xmi:type="uml:Generalization" xmi:id="SysML.package_packagedElement_Requirements.stereotype_packagedElement_Trace._generalization.SysML.package_packagedElement_Blocks.stereotype_packagedElement_DirectedRelationshipPropertyPath" general="SysML.package_packagedElement_Blocks.stereotype_packagedElement_DirectedRelationshipPropertyPath"/>
+        <generalization xmi:type="uml:Generalization" xmi:id="SysML.package_packagedElement_Requirements.stereotype_packagedElement_Trace._generalization.UML.stereotype_packagedElement_Trace"> 
+        	<general xmi:type="uml:Stereotype" href="pathmap://UML_PROFILES/Standard.profile.uml#Trace"/>
+         </generalization>
         <ownedAttribute xmi:type="uml:Property" xmi:id="SysML.package_packagedElement_Requirements.stereotype_packagedElement_Trace_ownedAttribute.base_Abstraction" name="base_Abstraction" association="SysML.package_packagedElement_Requirements.extension_packagedElement_E_extension_Trace_base_Abstraction">
           <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Abstraction"/>
           <lowerValue xmi:type="uml:LiteralInteger" xmi:id="SysML.package_packagedElement_Requirements.stereotype_packagedElement_Trace_ownedAttribute.base_Abstraction_lowerValue"/>
           <redefinedProperty xmi:type="uml:Property" href="#SysML.package_packagedElement_Blocks.stereotype_packagedElement_DirectedRelationshipPropertyPath_ownedAttribute.base_DirectedRelationship"/>
-          <redefinedProperty xmi:type="uml:Property" href="http://www.omg.org/spec/UML/20131001/StandardProfile.xmi#Trace_base_Abstraction"/>
+          <redefinedProperty xmi:type="uml:Property" href="pathmap://UML_PROFILES/Standard.profile.uml#Trace-base_Abstraction"/>
         </ownedAttribute>
         <ownedOperation xmi:type="uml:Operation" xmi:id="SysML.package_packagedElement_Requirements.stereotype_packagedElement_Trace_ownedOperation.getTracedFrom_Requirement_NamedElement" name="getTracedFrom" isStatic="true" isQuery="true">
           <ownedParameter xmi:type="uml:Parameter" xmi:id="SysML.package_packagedElement_Requirements.stereotype_packagedElement_Trace_ownedOperation.getTracedFrom_Requirement_NamedElement.parameter_ownedParameter_ref" name="ref">
@@ -1601,8 +1609,7 @@
         <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
       </eAnnotations>
       <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
-    </profileApplication>
-    <metamodelReference xmi:type="uml:PackageImport" href="#SysML._metamodelReference._0"/>
+    </profileApplication>   
   </uml:Profile>
   <Ecore:EPackage xmi:id="_dZfREJvkEeSpx5CUmLYZ-g" base_Package="SysML.package_packagedElement_Blocks" packageName="blocks" nsPrefix="Blocks" nsURI="http://www.eclipse.org/papyrus/sysml/1.4/SysML/Blocks" basePackage="org.eclipse.papyrus.sysml14" prefix="Blocks"/>
   <Ecore:EPackage xmi:id="_fGLcYJvkEeSpx5CUmLYZ-g" base_Package="SysML.package_packagedElement_Ports_u0026Flows" packageName="portsandflows" nsPrefix="PortsAndFlows" nsURI="http://www.eclipse.org/papyrus/sysml/1.4/SysML/PortsAndFlows" basePackage="org.eclipse.papyrus.sysml14" prefix="Portsandflows"/>
diff --git a/core/org.eclipse.papyrus.sysml14/resources/profile/sysml.ecore b/core/org.eclipse.papyrus.sysml14/resources/profile/sysml.ecore
index 3688556..e8932d2 100644
--- a/core/org.eclipse.papyrus.sysml14/resources/profile/sysml.ecore
+++ b/core/org.eclipse.papyrus.sysml14/resources/profile/sysml.ecore
@@ -561,13 +561,11 @@
         <details key="documentation" value="A Copy relationship is a dependency between a supplier requirement and a client requirement that specifies that the text of the client requirement is a read-only copy of the text of the supplier requirement."/>
       </eAnnotations>
     </eClassifiers>
-    <eClassifiers xsi:type="ecore:EClass" name="Trace" eSuperTypes="#//blocks/DirectedRelationshipPropertyPath">
+    <eClassifiers xsi:type="ecore:EClass" name="Trace" eSuperTypes="#//blocks/DirectedRelationshipPropertyPath ../../../org.eclipse.uml2.uml.profile.standard/model/Standard.ecore#//Trace">
       <eOperations name="getTracedFrom" ordered="false" lowerBound="1">
         <eParameters name="ref" ordered="false" lowerBound="1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//NamedElement"/>
         <eParameters name="result" ordered="false" upperBound="-1" eType="#//requirements/Requirement"/>
       </eOperations>
-      <eStructuralFeatures xsi:type="ecore:EReference" name="base_Abstraction" ordered="false"
-          eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//Abstraction"/>
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="Requirement">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -644,13 +642,11 @@
         <details key="documentation" value="&#xA;            A DeriveReqt relationship is a dependency between two requirements in which a client requirement can be derived from the supplier requirement. As with other dependencies, the arrow direction points from the derived (client) requirement to the (supplier) requirement from which it is derived.&#xA;          "/>
       </eAnnotations>
     </eClassifiers>
-    <eClassifiers xsi:type="ecore:EClass" name="Refine" eSuperTypes="#//blocks/DirectedRelationshipPropertyPath">
+    <eClassifiers xsi:type="ecore:EClass" name="Refine" eSuperTypes="#//blocks/DirectedRelationshipPropertyPath ../../../org.eclipse.uml2.uml.profile.standard/model/Standard.ecore#//Refine">
       <eOperations name="getRefines" ordered="false" lowerBound="1">
         <eParameters name="ref" ordered="false" lowerBound="1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//NamedElement"/>
         <eParameters name="result" ordered="false" upperBound="-1" eType="#//requirements/Requirement"/>
       </eOperations>
-      <eStructuralFeatures xsi:type="ecore:EReference" name="base_Abstraction" ordered="false"
-          eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//Abstraction"/>
     </eClassifiers>
     <eClassifiers xsi:type="ecore:EClass" name="Satisfy" eSuperTypes="#//requirements/Trace">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
diff --git a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/activities/internal/impl/ActivitiesPackageImpl.java b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/activities/internal/impl/ActivitiesPackageImpl.java
index 4218b59..2fa1f8b 100644
--- a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/activities/internal/impl/ActivitiesPackageImpl.java
+++ b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/activities/internal/impl/ActivitiesPackageImpl.java
@@ -16,6 +16,7 @@
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.EReference;
 
+import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.emf.ecore.impl.EPackageImpl;
 
 import org.eclipse.papyrus.sysml14.activities.ActivitiesFactory;
@@ -59,7 +60,9 @@
 import org.eclipse.papyrus.sysml14.requirements.internal.impl.RequirementsPackageImpl;
 
 import org.eclipse.papyrus.sysml14.sysmlPackage;
+import org.eclipse.uml2.types.TypesPackage;
 import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.profile.standard.StandardPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -171,6 +174,9 @@
 		isInited = true;
 
 		// Initialize simple dependencies
+		EcorePackage.eINSTANCE.eClass();
+		StandardPackage.eINSTANCE.eClass();
+		TypesPackage.eINSTANCE.eClass();
 		UMLPackage.eINSTANCE.eClass();
 
 		// Obtain or create and register interdependencies
diff --git a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/allocations/internal/impl/AllocationsPackageImpl.java b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/allocations/internal/impl/AllocationsPackageImpl.java
index fff8cca..6e3ccf6 100644
--- a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/allocations/internal/impl/AllocationsPackageImpl.java
+++ b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/allocations/internal/impl/AllocationsPackageImpl.java
@@ -17,6 +17,7 @@
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.EReference;
 
+import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.emf.ecore.impl.EPackageImpl;
 
 import org.eclipse.papyrus.sysml14.activities.ActivitiesPackage;
@@ -54,7 +55,9 @@
 import org.eclipse.papyrus.sysml14.requirements.internal.impl.RequirementsPackageImpl;
 
 import org.eclipse.papyrus.sysml14.sysmlPackage;
+import org.eclipse.uml2.types.TypesPackage;
 import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.profile.standard.StandardPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -124,6 +127,9 @@
 		isInited = true;
 
 		// Initialize simple dependencies
+		EcorePackage.eINSTANCE.eClass();
+		StandardPackage.eINSTANCE.eClass();
+		TypesPackage.eINSTANCE.eClass();
 		UMLPackage.eINSTANCE.eClass();
 
 		// Obtain or create and register interdependencies
diff --git a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/blocks/internal/impl/BlocksPackageImpl.java b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/blocks/internal/impl/BlocksPackageImpl.java
index 9e35b19..121e783 100644
--- a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/blocks/internal/impl/BlocksPackageImpl.java
+++ b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/blocks/internal/impl/BlocksPackageImpl.java
@@ -18,6 +18,7 @@
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.EReference;
 
+import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.emf.ecore.impl.EPackageImpl;
 
 import org.eclipse.papyrus.sysml14.activities.ActivitiesPackage;
@@ -70,6 +71,7 @@
 import org.eclipse.uml2.types.TypesPackage;
 
 import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.profile.standard.StandardPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -223,6 +225,9 @@
 		isInited = true;
 
 		// Initialize simple dependencies
+		EcorePackage.eINSTANCE.eClass();
+		StandardPackage.eINSTANCE.eClass();
+		TypesPackage.eINSTANCE.eClass();
 		UMLPackage.eINSTANCE.eClass();
 
 		// Obtain or create and register interdependencies
diff --git a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/constraintblocks/internal/impl/ConstraintblocksPackageImpl.java b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/constraintblocks/internal/impl/ConstraintblocksPackageImpl.java
index ff72f4f..3b7f9f7 100644
--- a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/constraintblocks/internal/impl/ConstraintblocksPackageImpl.java
+++ b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/constraintblocks/internal/impl/ConstraintblocksPackageImpl.java
@@ -16,6 +16,7 @@
 import org.eclipse.emf.ecore.EOperation;
 import org.eclipse.emf.ecore.EPackage;
 
+import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.emf.ecore.impl.EPackageImpl;
 
 import org.eclipse.papyrus.sysml14.activities.ActivitiesPackage;
@@ -52,7 +53,9 @@
 import org.eclipse.papyrus.sysml14.requirements.internal.impl.RequirementsPackageImpl;
 
 import org.eclipse.papyrus.sysml14.sysmlPackage;
+import org.eclipse.uml2.types.TypesPackage;
 import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.profile.standard.StandardPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -115,6 +118,9 @@
 		isInited = true;
 
 		// Initialize simple dependencies
+		EcorePackage.eINSTANCE.eClass();
+		StandardPackage.eINSTANCE.eClass();
+		TypesPackage.eINSTANCE.eClass();
 		UMLPackage.eINSTANCE.eClass();
 
 		// Obtain or create and register interdependencies
diff --git a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/deprecatedelements/internal/impl/DeprecatedelementsPackageImpl.java b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/deprecatedelements/internal/impl/DeprecatedelementsPackageImpl.java
index dca12d3..8105bc9 100644
--- a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/deprecatedelements/internal/impl/DeprecatedelementsPackageImpl.java
+++ b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/deprecatedelements/internal/impl/DeprecatedelementsPackageImpl.java
@@ -18,6 +18,7 @@
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.EReference;
 
+import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.emf.ecore.impl.EPackageImpl;
 
 import org.eclipse.papyrus.sysml14.activities.ActivitiesPackage;
@@ -58,6 +59,7 @@
 import org.eclipse.uml2.types.TypesPackage;
 
 import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.profile.standard.StandardPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -127,6 +129,9 @@
 		isInited = true;
 
 		// Initialize simple dependencies
+		EcorePackage.eINSTANCE.eClass();
+		StandardPackage.eINSTANCE.eClass();
+		TypesPackage.eINSTANCE.eClass();
 		UMLPackage.eINSTANCE.eClass();
 
 		// Obtain or create and register interdependencies
diff --git a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/impl/sysmlPackageImpl.java b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/impl/sysmlPackageImpl.java
index 4249a0c..d91ce51 100644
--- a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/impl/sysmlPackageImpl.java
+++ b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/impl/sysmlPackageImpl.java
@@ -15,6 +15,7 @@
 import org.eclipse.emf.ecore.EEnum;
 import org.eclipse.emf.ecore.EPackage;
 
+import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.emf.ecore.impl.EPackageImpl;
 
 import org.eclipse.papyrus.sysml14.Dummy;
@@ -54,7 +55,9 @@
 import org.eclipse.papyrus.sysml14.sysmlFactory;
 import org.eclipse.papyrus.sysml14.sysmlPackage;
 
+import org.eclipse.uml2.types.TypesPackage;
 import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.profile.standard.StandardPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -117,6 +120,9 @@
 		isInited = true;
 
 		// Initialize simple dependencies
+		EcorePackage.eINSTANCE.eClass();
+		StandardPackage.eINSTANCE.eClass();
+		TypesPackage.eINSTANCE.eClass();
 		UMLPackage.eINSTANCE.eClass();
 
 		// Obtain or create and register interdependencies
diff --git a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/modelelements/internal/impl/ModelelementsPackageImpl.java b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/modelelements/internal/impl/ModelelementsPackageImpl.java
index 19d892c..1ec022c 100644
--- a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/modelelements/internal/impl/ModelelementsPackageImpl.java
+++ b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/modelelements/internal/impl/ModelelementsPackageImpl.java
@@ -18,6 +18,7 @@
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.EReference;
 
+import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.emf.ecore.impl.EPackageImpl;
 
 import org.eclipse.papyrus.sysml14.activities.ActivitiesPackage;
@@ -64,6 +65,7 @@
 import org.eclipse.uml2.types.TypesPackage;
 
 import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.profile.standard.StandardPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -175,6 +177,9 @@
 		isInited = true;
 
 		// Initialize simple dependencies
+		EcorePackage.eINSTANCE.eClass();
+		StandardPackage.eINSTANCE.eClass();
+		TypesPackage.eINSTANCE.eClass();
 		UMLPackage.eINSTANCE.eClass();
 
 		// Obtain or create and register interdependencies
diff --git a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/portsandflows/internal/impl/PortsandflowsPackageImpl.java b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/portsandflows/internal/impl/PortsandflowsPackageImpl.java
index 8ef09e3..d289d8c 100644
--- a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/portsandflows/internal/impl/PortsandflowsPackageImpl.java
+++ b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/portsandflows/internal/impl/PortsandflowsPackageImpl.java
@@ -19,6 +19,7 @@
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.EReference;
 
+import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.emf.ecore.impl.EPackageImpl;
 
 import org.eclipse.papyrus.sysml14.activities.ActivitiesPackage;
@@ -66,7 +67,9 @@
 import org.eclipse.papyrus.sysml14.requirements.internal.impl.RequirementsPackageImpl;
 
 import org.eclipse.papyrus.sysml14.sysmlPackage;
+import org.eclipse.uml2.types.TypesPackage;
 import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.profile.standard.StandardPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -206,6 +209,9 @@
 		isInited = true;
 
 		// Initialize simple dependencies
+		EcorePackage.eINSTANCE.eClass();
+		StandardPackage.eINSTANCE.eClass();
+		TypesPackage.eINSTANCE.eClass();
 		UMLPackage.eINSTANCE.eClass();
 
 		// Obtain or create and register interdependencies
diff --git a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/Refine.java b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/Refine.java
index 8b363d8..3f6a560 100644
--- a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/Refine.java
+++ b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/Refine.java
@@ -15,8 +15,6 @@
 import org.eclipse.emf.common.util.EList;
 
 import org.eclipse.papyrus.sysml14.blocks.DirectedRelationshipPropertyPath;
-
-import org.eclipse.uml2.uml.Abstraction;
 import org.eclipse.uml2.uml.NamedElement;
 
 /**
@@ -24,44 +22,12 @@
  * A representation of the model object '<em><b>Refine</b></em>'.
  * <!-- end-user-doc -->
  *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.sysml14.requirements.Refine#getBase_Abstraction <em>Base Abstraction</em>}</li>
- * </ul>
  *
  * @see org.eclipse.papyrus.sysml14.requirements.RequirementsPackage#getRefine()
  * @model
  * @generated
  */
-public interface Refine extends DirectedRelationshipPropertyPath {
-	/**
-	 * Returns the value of the '<em><b>Base Abstraction</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base Abstraction</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 Abstraction</em>' reference.
-	 * @see #setBase_Abstraction(Abstraction)
-	 * @see org.eclipse.papyrus.sysml14.requirements.RequirementsPackage#getRefine_Base_Abstraction()
-	 * @model ordered="false"
-	 * @generated
-	 */
-	Abstraction getBase_Abstraction();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.sysml14.requirements.Refine#getBase_Abstraction <em>Base Abstraction</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base Abstraction</em>' reference.
-	 * @see #getBase_Abstraction()
-	 * @generated
-	 */
-	void setBase_Abstraction(Abstraction value);
-
+public interface Refine extends DirectedRelationshipPropertyPath, org.eclipse.uml2.uml.profile.standard.Refine {
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/RequirementsPackage.java b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/RequirementsPackage.java
index e676b45..02df79c 100644
--- a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/RequirementsPackage.java
+++ b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/RequirementsPackage.java
@@ -19,6 +19,7 @@
 import org.eclipse.emf.ecore.EReference;
 
 import org.eclipse.papyrus.sysml14.blocks.BlocksPackage;
+import org.eclipse.uml2.uml.profile.standard.StandardPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -826,9 +827,12 @@
 	 * @return the meta object for the reference '<em>Base Abstraction</em>'.
 	 * @see org.eclipse.papyrus.sysml14.requirements.Trace#getBase_Abstraction()
 	 * @see #getTrace()
-	 * @generated
+	 * @generated NOT
 	 */
-	EReference getTrace_Base_Abstraction();
+	@Deprecated //Unused since Bug 530565, kept to avoid API break (TODO: Remove in next major change)
+	default EReference getTrace_Base_Abstraction() {
+		return StandardPackage.eINSTANCE.getTrace_Base_Abstraction();
+	}
 
 	/**
 	 * Returns the meta object for the '{@link org.eclipse.papyrus.sysml14.requirements.Trace#getTracedFrom(org.eclipse.uml2.uml.NamedElement, org.eclipse.emf.common.util.EList) <em>Get Traced From</em>}' operation.
@@ -987,9 +991,12 @@
 	 * @return the meta object for the reference '<em>Base Abstraction</em>'.
 	 * @see org.eclipse.papyrus.sysml14.requirements.Refine#getBase_Abstraction()
 	 * @see #getRefine()
-	 * @generated
+	 * @generated NOT
 	 */
-	EReference getRefine_Base_Abstraction();
+	@Deprecated //Unused since Bug 530565, kept to avoid API break (TODO: Remove in next major change)
+	default EReference getRefine_Base_Abstraction() {
+		return StandardPackage.eINSTANCE.getRefine_Base_Abstraction();
+	}
 
 	/**
 	 * Returns the meta object for the '{@link org.eclipse.papyrus.sysml14.requirements.Refine#getRefines(org.eclipse.uml2.uml.NamedElement, org.eclipse.emf.common.util.EList) <em>Get Refines</em>}' operation.
@@ -1120,8 +1127,9 @@
 		 * The meta object literal for the '<em><b>Base Abstraction</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @generated
+		 * @generated NOT
 		 */
+		@Deprecated //Unused since Bug 530565, kept to avoid API break (TODO: Remove in next major change)
 		EReference TRACE__BASE_ABSTRACTION = eINSTANCE.getTrace_Base_Abstraction();
 
 		/**
@@ -1246,8 +1254,9 @@
 		 * The meta object literal for the '<em><b>Base Abstraction</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @generated
+		 * @generated NOT
 		 */
+		@Deprecated //Unused since Bug 530565, kept to avoid API break (TODO: Remove in next major change)
 		EReference REFINE__BASE_ABSTRACTION = eINSTANCE.getRefine_Base_Abstraction();
 
 		/**
diff --git a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/Trace.java b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/Trace.java
index bda2b2c..5e3f1c3 100644
--- a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/Trace.java
+++ b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/Trace.java
@@ -15,8 +15,6 @@
 import org.eclipse.emf.common.util.EList;
 
 import org.eclipse.papyrus.sysml14.blocks.DirectedRelationshipPropertyPath;
-
-import org.eclipse.uml2.uml.Abstraction;
 import org.eclipse.uml2.uml.NamedElement;
 
 /**
@@ -24,44 +22,12 @@
  * A representation of the model object '<em><b>Trace</b></em>'.
  * <!-- end-user-doc -->
  *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.sysml14.requirements.Trace#getBase_Abstraction <em>Base Abstraction</em>}</li>
- * </ul>
  *
  * @see org.eclipse.papyrus.sysml14.requirements.RequirementsPackage#getTrace()
  * @model
  * @generated
  */
-public interface Trace extends DirectedRelationshipPropertyPath {
-	/**
-	 * Returns the value of the '<em><b>Base Abstraction</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base Abstraction</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 Abstraction</em>' reference.
-	 * @see #setBase_Abstraction(Abstraction)
-	 * @see org.eclipse.papyrus.sysml14.requirements.RequirementsPackage#getTrace_Base_Abstraction()
-	 * @model ordered="false"
-	 * @generated
-	 */
-	Abstraction getBase_Abstraction();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.sysml14.requirements.Trace#getBase_Abstraction <em>Base Abstraction</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base Abstraction</em>' reference.
-	 * @see #getBase_Abstraction()
-	 * @generated
-	 */
-	void setBase_Abstraction(Abstraction value);
-
+public interface Trace extends DirectedRelationshipPropertyPath, org.eclipse.uml2.uml.profile.standard.Trace {
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/internal/impl/RefineImpl.java b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/internal/impl/RefineImpl.java
index 33912f3..0ed6152 100644
--- a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/internal/impl/RefineImpl.java
+++ b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/internal/impl/RefineImpl.java
@@ -31,6 +31,7 @@
 
 import org.eclipse.uml2.uml.Abstraction;
 import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.profile.standard.StandardPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -189,6 +190,38 @@
 	 * @generated
 	 */
 	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == org.eclipse.uml2.uml.profile.standard.Refine.class) {
+			switch (derivedFeatureID) {
+				case RequirementsPackage.REFINE__BASE_ABSTRACTION: return StandardPackage.REFINE__BASE_ABSTRACTION;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == org.eclipse.uml2.uml.profile.standard.Refine.class) {
+			switch (baseFeatureID) {
+				case StandardPackage.REFINE__BASE_ABSTRACTION: return RequirementsPackage.REFINE__BASE_ABSTRACTION;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	@SuppressWarnings("unchecked")
 	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
 		switch (operationID) {
diff --git a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/internal/impl/RequirementsPackageImpl.java b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/internal/impl/RequirementsPackageImpl.java
index 0392bda..f358976 100644
--- a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/internal/impl/RequirementsPackageImpl.java
+++ b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/internal/impl/RequirementsPackageImpl.java
@@ -18,6 +18,7 @@
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.EReference;
 
+import org.eclipse.emf.ecore.EcorePackage;
 import org.eclipse.emf.ecore.impl.EPackageImpl;
 
 import org.eclipse.papyrus.sysml14.activities.ActivitiesPackage;
@@ -64,6 +65,7 @@
 import org.eclipse.uml2.types.TypesPackage;
 
 import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.profile.standard.StandardPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -175,6 +177,9 @@
 		isInited = true;
 
 		// Initialize simple dependencies
+		EcorePackage.eINSTANCE.eClass();
+		StandardPackage.eINSTANCE.eClass();
+		TypesPackage.eINSTANCE.eClass();
 		UMLPackage.eINSTANCE.eClass();
 
 		// Obtain or create and register interdependencies
@@ -241,15 +246,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getTrace_Base_Abstraction() {
-		return (EReference)traceEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	public EOperation getTrace__GetTracedFrom__NamedElement_EList() {
 		return traceEClass.getEOperations().get(0);
 	}
@@ -376,15 +372,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getRefine_Base_Abstraction() {
-		return (EReference)refineEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	public EOperation getRefine__GetRefines__NamedElement_EList() {
 		return refineEClass.getEOperations().get(0);
 	}
@@ -483,7 +470,6 @@
 		copyEClass = createEClass(COPY);
 
 		traceEClass = createEClass(TRACE);
-		createEReference(traceEClass, TRACE__BASE_ABSTRACTION);
 		createEOperation(traceEClass, TRACE___GET_TRACED_FROM__NAMEDELEMENT_ELIST);
 
 		requirementEClass = createEClass(REQUIREMENT);
@@ -501,7 +487,6 @@
 		deriveReqtEClass = createEClass(DERIVE_REQT);
 
 		refineEClass = createEClass(REFINE);
-		createEReference(refineEClass, REFINE__BASE_ABSTRACTION);
 		createEOperation(refineEClass, REFINE___GET_REFINES__NAMEDELEMENT_ELIST);
 
 		satisfyEClass = createEClass(SATISFY);
@@ -540,6 +525,7 @@
 
 		// Obtain other dependent packages
 		BlocksPackage theBlocksPackage = (BlocksPackage)EPackage.Registry.INSTANCE.getEPackage(BlocksPackage.eNS_URI);
+		StandardPackage theStandardPackage = (StandardPackage)EPackage.Registry.INSTANCE.getEPackage(StandardPackage.eNS_URI);
 		UMLPackage theUMLPackage = (UMLPackage)EPackage.Registry.INSTANCE.getEPackage(UMLPackage.eNS_URI);
 		TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
 
@@ -550,8 +536,10 @@
 		// Add supertypes to classes
 		copyEClass.getESuperTypes().add(this.getTrace());
 		traceEClass.getESuperTypes().add(theBlocksPackage.getDirectedRelationshipPropertyPath());
+		traceEClass.getESuperTypes().add(theStandardPackage.getTrace());
 		deriveReqtEClass.getESuperTypes().add(this.getTrace());
 		refineEClass.getESuperTypes().add(theBlocksPackage.getDirectedRelationshipPropertyPath());
+		refineEClass.getESuperTypes().add(theStandardPackage.getRefine());
 		satisfyEClass.getESuperTypes().add(this.getTrace());
 		verifyEClass.getESuperTypes().add(this.getTrace());
 
@@ -559,7 +547,6 @@
 		initEClass(copyEClass, Copy.class, "Copy", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 
 		initEClass(traceEClass, Trace.class, "Trace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEReference(getTrace_Base_Abstraction(), theUMLPackage.getAbstraction(), null, "base_Abstraction", null, 0, 1, Trace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
 		EOperation op = initEOperation(getTrace__GetTracedFrom__NamedElement_EList(), null, "getTracedFrom", 1, 1, IS_UNIQUE, !IS_ORDERED); //$NON-NLS-1$
 		addEParameter(op, theUMLPackage.getNamedElement(), "ref", 1, 1, IS_UNIQUE, !IS_ORDERED); //$NON-NLS-1$
@@ -580,7 +567,6 @@
 		initEClass(deriveReqtEClass, DeriveReqt.class, "DeriveReqt", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
 
 		initEClass(refineEClass, Refine.class, "Refine", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEReference(getRefine_Base_Abstraction(), theUMLPackage.getAbstraction(), null, "base_Abstraction", null, 0, 1, Refine.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
 
 		op = initEOperation(getRefine__GetRefines__NamedElement_EList(), null, "getRefines", 1, 1, IS_UNIQUE, !IS_ORDERED); //$NON-NLS-1$
 		addEParameter(op, theUMLPackage.getNamedElement(), "ref", 1, 1, IS_UNIQUE, !IS_ORDERED); //$NON-NLS-1$
diff --git a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/internal/impl/TraceImpl.java b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/internal/impl/TraceImpl.java
index cb68d89..28a044f 100644
--- a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/internal/impl/TraceImpl.java
+++ b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/internal/impl/TraceImpl.java
@@ -31,6 +31,7 @@
 
 import org.eclipse.uml2.uml.Abstraction;
 import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.profile.standard.StandardPackage;
 
 /**
  * <!-- begin-user-doc -->
@@ -189,6 +190,38 @@
 	 * @generated
 	 */
 	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == org.eclipse.uml2.uml.profile.standard.Trace.class) {
+			switch (derivedFeatureID) {
+				case RequirementsPackage.TRACE__BASE_ABSTRACTION: return StandardPackage.TRACE__BASE_ABSTRACTION;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == org.eclipse.uml2.uml.profile.standard.Trace.class) {
+			switch (baseFeatureID) {
+				case StandardPackage.TRACE__BASE_ABSTRACTION: return RequirementsPackage.TRACE__BASE_ABSTRACTION;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	@SuppressWarnings("unchecked")
 	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
 		switch (operationID) {
diff --git a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/util/RequirementsAdapterFactory.java b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/util/RequirementsAdapterFactory.java
index 3b0c787..146aac1 100644
--- a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/util/RequirementsAdapterFactory.java
+++ b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/util/RequirementsAdapterFactory.java
@@ -116,6 +116,14 @@
 				return createDirectedRelationshipPropertyPathAdapter();
 			}
 			@Override
+			public Adapter caseStandard_Trace(org.eclipse.uml2.uml.profile.standard.Trace object) {
+				return createStandard_TraceAdapter();
+			}
+			@Override
+			public Adapter caseStandard_Refine(org.eclipse.uml2.uml.profile.standard.Refine object) {
+				return createStandard_RefineAdapter();
+			}
+			@Override
 			public Adapter defaultCase(EObject object) {
 				return createEObjectAdapter();
 			}
@@ -262,6 +270,34 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.standard.Trace <em>Trace</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.uml2.uml.profile.standard.Trace
+	 * @generated
+	 */
+	public Adapter createStandard_TraceAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.uml2.uml.profile.standard.Refine <em>Refine</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.uml2.uml.profile.standard.Refine
+	 * @generated
+	 */
+	public Adapter createStandard_RefineAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for the default case.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null.
diff --git a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/util/RequirementsSwitch.java b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/util/RequirementsSwitch.java
index 765780e..aadf5e3 100644
--- a/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/util/RequirementsSwitch.java
+++ b/core/org.eclipse.papyrus.sysml14/src-gen/org/eclipse/papyrus/sysml14/requirements/util/RequirementsSwitch.java
@@ -83,6 +83,7 @@
 				T result = caseCopy(copy);
 				if (result == null) result = caseTrace(copy);
 				if (result == null) result = caseDirectedRelationshipPropertyPath(copy);
+				if (result == null) result = caseStandard_Trace(copy);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -90,6 +91,7 @@
 				Trace trace = (Trace)theEObject;
 				T result = caseTrace(trace);
 				if (result == null) result = caseDirectedRelationshipPropertyPath(trace);
+				if (result == null) result = caseStandard_Trace(trace);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -104,6 +106,7 @@
 				T result = caseDeriveReqt(deriveReqt);
 				if (result == null) result = caseTrace(deriveReqt);
 				if (result == null) result = caseDirectedRelationshipPropertyPath(deriveReqt);
+				if (result == null) result = caseStandard_Trace(deriveReqt);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -111,6 +114,7 @@
 				Refine refine = (Refine)theEObject;
 				T result = caseRefine(refine);
 				if (result == null) result = caseDirectedRelationshipPropertyPath(refine);
+				if (result == null) result = caseStandard_Refine(refine);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -119,6 +123,7 @@
 				T result = caseSatisfy(satisfy);
 				if (result == null) result = caseTrace(satisfy);
 				if (result == null) result = caseDirectedRelationshipPropertyPath(satisfy);
+				if (result == null) result = caseStandard_Trace(satisfy);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -133,6 +138,7 @@
 				T result = caseVerify(verify);
 				if (result == null) result = caseTrace(verify);
 				if (result == null) result = caseDirectedRelationshipPropertyPath(verify);
+				if (result == null) result = caseStandard_Trace(verify);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -276,6 +282,36 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Trace</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>Trace</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseStandard_Trace(org.eclipse.uml2.uml.profile.standard.Trace object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Refine</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>Refine</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseStandard_Refine(org.eclipse.uml2.uml.profile.standard.Refine object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;