Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorptessier2015-05-19 15:27:51 +0000
committerptessier2015-05-19 15:31:40 +0000
commita9c2067b596a052bc0d8dbadfca6ece61ba0431f (patch)
tree187ea5eacdd59ae4a4f0bfb2da8f7ff401a86c5f
parentdebd4c540771eba01c7e755d90348e6ef11c0092 (diff)
downloadorg.eclipse.papyrus-a9c2067b596a052bc0d8dbadfca6ece61ba0431f.tar.gz
org.eclipse.papyrus-a9c2067b596a052bc0d8dbadfca6ece61ba0431f.tar.xz
org.eclipse.papyrus-a9c2067b596a052bc0d8dbadfca6ece61ba0431f.zip
447870: [Papyrus Req] Papyrus shall import or export reqIF file
https://bugs.eclipse.org/bugs/show_bug.cgi?id=447870 add codes to reimport Change-Id: Ied823f572ce685bc5f4a2851c7f217a93ac96604
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/plugin.xml7
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/assistant/ReqIFReImportWizard.java80
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/queries/ReqIFBaseTransformation.java262
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/BasicRequirementMerger.java425
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/I_RI.java34
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/ReqIFBaseTransformation.java49
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/ReqIFExporter.java14
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/ReqIFImporter.java88
-rw-r--r--tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/ReqTypeProfile.profile.uml255
-rw-r--r--tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/Result-ReimportSpecObject.di2
-rw-r--r--tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/Result-ReimportSpecObject.notation2
-rw-r--r--tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/Result-ReimportSpecObject.uml112
-rw-r--r--tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/importSpecObject.di2
-rw-r--r--tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/importSpecObject.notation2
-rw-r--r--tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/importSpecObject.uml104
-rw-r--r--tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/specObject_1.reqif573
-rw-r--r--tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/specObject_2.reqif626
17 files changed, 2604 insertions, 33 deletions
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/plugin.xml b/extraplugins/req/org.eclipse.papyrus.req.reqif/plugin.xml
index 3d7baba89a4..c546539d353 100644
--- a/extraplugins/req/org.eclipse.papyrus.req.reqif/plugin.xml
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/plugin.xml
@@ -15,6 +15,13 @@
id="com.cea.darwin.reqif.importWizard"
name="Import ReqIF">
</wizard>
+ <wizard
+ category="org.eclipse.papyrus.editor.category"
+ class="org.eclipse.papyrus.req.reqif.integration.assistant.ReqIFReImportWizard"
+ icon="img/Darwin_logo_16x16.bmp"
+ id="com.cea.darwin.reqif.reimportWizard"
+ name="Re-Import ReqIF">
+ </wizard>
</extension>
<extension
point="org.eclipse.ui.exportWizards">
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/assistant/ReqIFReImportWizard.java b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/assistant/ReqIFReImportWizard.java
new file mode 100644
index 00000000000..45ebcae9f7d
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/assistant/ReqIFReImportWizard.java
@@ -0,0 +1,80 @@
+/*****************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Patrick Tessier (CEA LIST) patrick.tessier@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.req.reqif.integration.assistant;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.transaction.RecordingCommand;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.papyrus.req.reqif.assistant.ReqIFSelectionPage;
+import org.eclipse.papyrus.req.reqif.integration.transformation.ReqIFImporterServiceEdit;
+import org.eclipse.papyrus.req.reqif.transformation.ReqIFImporter;
+import org.eclipse.papyrus.uml.extensionpoints.utils.Util;
+import org.eclipse.rmf.reqif10.ReqIF;
+import org.eclipse.ui.IImportWizard;
+import org.eclipse.uml2.uml.Package;
+
+/**
+ * this class is used to do the retro engineering from workspaceplugin. It adds only in the platform dependencies.
+ *
+ */
+public class ReqIFReImportWizard extends AbstractWizardForPapyrus implements IImportWizard {
+
+ protected ReqIFSelectionPage reqifSelectionPage;
+ /**
+ *
+ * Constructor.
+ *
+ */
+ public ReqIFReImportWizard() {
+ super();
+ setNeedsProgressMonitor(true);
+ }
+
+ @Override
+ public void addPages() {
+
+ reqifSelectionPage= new ReqIFSelectionPage((Package)getSelectionSet().get(0));
+ this.addPage(reqifSelectionPage);
+ }
+
+ @Override
+ public boolean performFinish() {
+
+ // get the domain in order to launch the command
+ final TransactionalEditingDomain domain = modelSet.getTransactionalEditingDomain();
+ IFile reqFile=reqifSelectionPage.getSelectedReqIFFile();
+ resourceSet = Util.createTemporaryResourceSet();
+ Resource reqIFResource = resourceSet.getResource(URI.createPlatformResourceURI(reqFile.getFullPath().toOSString(), true),true);
+ if( reqIFResource.getContents().size()>0){
+ if(reqIFResource.getContents().get(0) instanceof ReqIF ){
+ final ReqIF importedReqIFModel=(ReqIF)reqIFResource.getContents().get(0);
+
+ RecordingCommand cmd= new RecordingCommand(domain, "Re-importReqIF") {
+
+ @Override
+ protected void doExecute() {
+ ReqIFImporter sysMLReqIFTransfomation= new ReqIFImporterServiceEdit(domain, importedReqIFModel, (Package)getSelectionSet().get(0));
+ sysMLReqIFTransfomation.reImportReqIFModel(true);
+ }
+ };
+ domain.getCommandStack().execute(cmd);
+
+ }
+ }
+ return true;
+ }
+
+}
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/queries/ReqIFBaseTransformation.java b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/queries/ReqIFBaseTransformation.java
new file mode 100644
index 00000000000..5fea89f0262
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/queries/ReqIFBaseTransformation.java
@@ -0,0 +1,262 @@
+package org.eclipse.papyrus.req.reqif.queries;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
+import org.eclipse.papyrus.req.reqif.I_SysMLStereotype;
+import org.eclipse.papyrus.uml.extensionpoints.profile.IRegisteredProfile;
+import org.eclipse.papyrus.uml.extensionpoints.profile.RegisteredProfile;
+import org.eclipse.rmf.reqif10.DatatypeDefinition;
+import org.eclipse.rmf.reqif10.DatatypeDefinitionEnumeration;
+import org.eclipse.rmf.reqif10.ReqIF;
+import org.eclipse.rmf.reqif10.SpecObject;
+import org.eclipse.rmf.reqif10.SpecType;
+import org.eclipse.rmf.reqif10.SpecificationType;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Enumeration;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.Profile;
+import org.eclipse.uml2.uml.Stereotype;
+import org.eclipse.uml2.uml.resource.UMLResource;
+
+
+/**
+ *
+ * this class is a base to make the import export of Reqif Files
+ *
+ */
+public abstract class ReqIFBaseTransformation {
+
+ /** the transactional Editing doamin to acces to the service edit**/
+ public TransactionalEditingDomain domain = null;
+ protected ReqIF reqIFModel;
+ protected org.eclipse.uml2.uml.Package UMLModel;
+ protected Package importRootUMLPackage = null;
+ protected HashMap<String,Stereotype> objectTypeStereotypesMap;
+ protected HashMap<String, Stereotype> specRelationTypeSterotypeMap;
+ /** The UML primitive Type */
+ protected org.eclipse.uml2.uml.Package umlPrimitiveTypes;
+ /** The UML metamodel**/
+ protected Package umlMetamodel;
+ /** The SysML profile*/
+ protected Profile sysMLprofile;
+ protected HashMap<String, SpecType> objectTypeMap;
+ protected HashMap<String, SpecType> specRelationTypeMap;
+ protected HashMap<String, SpecificationType> specificationTypeMap;
+ protected HashMap<String, DatatypeDefinitionEnumeration> reqifDatatTypeEnumeration;
+ protected HashMap<String, Stereotype> specificationTypeSterotypeMap;
+ protected HashMap<SpecObject, Element> SpecObject_UMLElementMap;
+ protected HashMap<String, Enumeration> profileEnumeration;
+
+ /**
+ *
+ * Constructor.
+ *
+ * @param domain the domain to execute command
+ * @param UMLModel the UML model that has bee selected to import or export
+ */
+ public ReqIFBaseTransformation( TransactionalEditingDomain domain,Package UMLModel) {
+ this.domain=domain;
+ this.UMLModel=UMLModel;
+ //get reference to Sysml Profile
+ IRegisteredProfile registeredProfile = RegisteredProfile.getRegisteredProfile("SysML");
+ URI sysMLUri = registeredProfile.getUri();
+ final Resource modelResource = EMFHelper.getResourceSet(UMLModel).getResource(sysMLUri, true);
+ sysMLprofile = (Profile)modelResource.getContents().get(0);
+
+ //get reference to UML primitive Type
+ Resource resourceprimitiveType=EMFHelper.getResourceSet(UMLModel).getResource(URI.createURI(UMLResource.UML_PRIMITIVE_TYPES_LIBRARY_URI), true);
+ umlPrimitiveTypes = (org.eclipse.uml2.uml.Package) (resourceprimitiveType.getContents().get(0));
+
+ // get reference to UML metamodel
+ Resource umlMetamodelResource=EMFHelper.getResourceSet(UMLModel).getResource(URI.createURI(UMLResource.UML_METAMODEL_URI), true);
+ umlMetamodel = (org.eclipse.uml2.uml.Package) (umlMetamodelResource.getContents().get(0));
+ objectTypeStereotypesMap = new HashMap<String,Stereotype>();
+ specRelationTypeSterotypeMap= new HashMap<String, Stereotype>();
+ }
+
+ /**
+ * get All Enumeration contained in applied profile
+ * @param uMLModel the current UML Model
+ * @return the hashmap (name, element) that can be empty
+ */
+ protected HashMap<String, Enumeration> getAllPossibleEnumeration(Package uMLModel) {
+ HashMap<String, Enumeration> enumerationList= new HashMap<String, Enumeration>();
+ for(Profile currentProfile : UMLModel.getAppliedProfiles()) {
+
+ for(PackageableElement packageableElement : currentProfile.getPackagedElements()) {
+ if( packageableElement instanceof Enumeration){
+ enumerationList.put(packageableElement.getName(),(Enumeration)packageableElement);
+ }
+ }
+
+ }
+ return enumerationList;
+ }
+
+ /**
+ * test if the stereotype is a SysML Requirement Stereotype
+ * @param stereotype a given stereotype
+ * @return return true if this is a SysML stereotype or inherits directly or indirectly from requirement
+ */
+ protected boolean isRequirementStereotype(Stereotype stereotype) {
+ if( I_SysMLStereotype.REQUIREMENT_STEREOTYPE.equals(stereotype.getQualifiedName())){
+ return true;
+ }
+ for(org.eclipse.uml2.uml.Class superStereotype : stereotype.getSuperClasses()) {
+ if( superStereotype instanceof Stereotype){
+ if(isRequirementStereotype((Stereotype)superStereotype)){
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+ /**
+ * from a UML Model, go through all applied profile and look for a stereotype that represent a resuirement
+ * @param UMLModel
+ * @return the list of requirement
+ */
+
+ protected HashMap<String,Stereotype> getAllPossibleRequirementType(org.eclipse.uml2.uml.Package UMLModel) {
+ HashMap<String,Stereotype> requirementStereotypes= new HashMap<String,Stereotype>();
+ for(Profile currentProfile : UMLModel.getAppliedProfiles()) {
+ if(currentProfile.getQualifiedName().equals("SysML::Requirements")){
+ requirementStereotypes.put("SysML_Requirement",currentProfile.getOwnedStereotype("Requirement"));
+ }
+ for(Stereotype stereotype : currentProfile.getOwnedStereotypes()) {
+ if( isRequirementStereotype(stereotype)){
+ if(!stereotype.getQualifiedName().equals("SysML::Requirements::Requirement")){
+ requirementStereotypes.put(stereotype.getName(),stereotype);
+ }
+ }
+ }
+
+ }
+ return requirementStereotypes;
+ }
+
+ /**
+ * get all possible stereotype that extends Dependency metaclasses
+ * @param uMLModel
+ * @return map of all stereotypes that extends packages
+ */
+ protected HashMap<String, Stereotype> getAllPossibleSpecRelationType() {
+ HashMap<String,Stereotype> SpecRelationStereotypes= new HashMap<String,Stereotype>();
+ for(Profile currentProfile : UMLModel.getAppliedProfiles()) {
+
+ for(Stereotype stereotype : currentProfile.getOwnedStereotypes()) {
+ if( isPossibleSpecRelationTypeStereotype(stereotype)){
+ SpecRelationStereotypes.put(stereotype.getName(),stereotype);
+ }
+ }
+
+ }
+ return SpecRelationStereotypes;
+ }
+
+ /**
+ * test if the stereotype extends a dependency or inherits of stereotypes that extends a dependency
+ * @param stereotype
+ * @return true if the stereotype extends a package or inherits of stereotypes that extends a package
+ */
+ protected boolean isPossibleSpecRelationTypeStereotype(Stereotype stereotype) {
+ Class packageMetaclass= (Class)umlMetamodel.getOwnedType("Dependency");
+ if( stereotype.getExtendedMetaclasses().contains(packageMetaclass)){
+ return true;
+ }
+ for(org.eclipse.uml2.uml.Class superStereotype : stereotype.getSuperClasses()) {
+ if( superStereotype instanceof Stereotype){
+ if(isPossibleSpecificationTypeStereotype((Stereotype)superStereotype)){
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * get all possible stereotype that extends Package metaclasses
+ * @param uMLModel
+ * @return map of all stereotypes that extends packages
+ */
+ protected HashMap<String, Stereotype> getAllPossibleSpecificationType(Package uMLModel) {
+ HashMap<String,Stereotype> specificationStereotypes= new HashMap<String,Stereotype>();
+ for(Profile currentProfile : UMLModel.getAppliedProfiles()) {
+
+ for(Stereotype stereotype : currentProfile.getOwnedStereotypes()) {
+ if( isPossibleSpecificationTypeStereotype(stereotype)){
+ specificationStereotypes.put(stereotype.getName(),stereotype);
+ }
+ }
+
+ }
+ return specificationStereotypes;
+ }
+
+ /**
+ * test if the stereotype extends a package or inherits of stereotypes that extends a package
+ * @param stereotype
+ * @return true if the stereotype extends a package or inherits of stereotypes that extends a package
+ */
+ protected boolean isPossibleSpecificationTypeStereotype(Stereotype stereotype) {
+ Class packageMetaclass= (Class)umlMetamodel.getOwnedType("Package");
+ if( stereotype.getExtendedMetaclasses().contains(packageMetaclass)){
+ return true;
+ }
+ for(org.eclipse.uml2.uml.Class superStereotype : stereotype.getSuperClasses()) {
+ if( superStereotype instanceof Stereotype){
+ if(isPossibleSpecificationTypeStereotype((Stereotype)superStereotype)){
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * form SysML profile return the Requirement stereotype
+ * @param sysMLprofile
+ * @return return the requirement stereotype
+ */
+ protected Stereotype getRequirementStereotype(Profile sysMLprofile) {
+ Profile requirementProfile=(Profile)sysMLprofile.getPackagedElement("Requirements");
+ return (Stereotype)requirementProfile.getPackagedElement("Requirement");
+ }
+
+ /**
+ *
+ * @param UMLModel the UML model
+ * @return all applied profile that are local profiles
+ */
+ protected ArrayList<Profile> getAllLocalProfiles(org.eclipse.uml2.uml.Package UMLModel) {
+ ArrayList<Profile> localProfile= new ArrayList<Profile>();
+ for(Profile currentProfile : UMLModel.getAppliedProfiles()) {
+ if(currentProfile.eResource().getURI().isPlatformResource()){
+ localProfile.add(currentProfile);
+ }
+
+ }
+ return localProfile;
+ }
+
+ /**
+ * fill the hashmap to get all dataTypeEnumerationDefinition from ReqIF file
+ */
+ protected void getAllDataTypeDefinitionEnumeration() {
+ if(reqIFModel.getCoreContent().getSpecTypes()!=null&&reqIFModel.getCoreContent().getDatatypes().size()>0){
+ for(DatatypeDefinition reqIFType : reqIFModel.getCoreContent().getDatatypes()) {
+ if(reqIFType instanceof DatatypeDefinitionEnumeration){
+ reqifDatatTypeEnumeration.put(reqIFType.getLongName(), (DatatypeDefinitionEnumeration) reqIFType);
+ }
+
+ }
+ }
+ }
+}
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/BasicRequirementMerger.java b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/BasicRequirementMerger.java
new file mode 100644
index 00000000000..03648923a96
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/BasicRequirementMerger.java
@@ -0,0 +1,425 @@
+/*****************************************************************************
+ * Copyright (c) 2015 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Mauricio Alferez (CEA LIST) mauricio.alferez@cea.fr - Initial API and implementation
+ * Patrick Tessier (CEA LIST) patrick.tesseir@cea.fr- modification
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.req.reqif.transformation;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Comment;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Stereotype;
+import org.eclipse.uml2.uml.UMLFactory;
+/**
+ * This is a basic merger in order to add requirement from right to left
+ * could be improved by using hashmap
+ * This algorithm is n2
+ *
+ */
+public class BasicRequirementMerger {
+
+ protected Package leftPackage=null;
+ protected Package rightPackage=null;
+ protected String matchProperty=null;
+ protected String changeableProperty=null;
+ protected HashMap<String, Element> leftIndex= new HashMap<>();
+ protected HashMap<String, Element> rightIndex= new HashMap<>();
+
+ /**
+ * Merge information from version2 into version1
+ *
+ * @param leftPackage
+ * is the package where we will do the modifications
+ * @param rightPackage
+ * is the package that we will analyze
+ * @param matchProperty
+ * is the stereotype's property name used to determine if one
+ * element in basePk is the same than other element in extPk. For
+ * example, "id" is a good matchProperty when comparing SysML
+ * Requirements
+ * @param changeableProperty
+ * is the property that we will change if the value of
+ * copyAllPropertyValues is false. For example "text".
+ * **/
+ public BasicRequirementMerger(Package leftPackage, Package rightPackage, String matchProperty, String changeableProperty) {
+ this.leftPackage=leftPackage;
+ this.rightPackage=rightPackage;
+ this.matchProperty=matchProperty;
+ this.changeableProperty=changeableProperty;
+ }
+
+ /**
+ *
+ *@param checkPackageName
+ * is an option. true means that the matched packaged elements
+ * must be in packages with the same name.
+ * @param copyAllPropertyValues
+ * is an option. true means that the user wants to copy the name
+ * and all the stereotype values. This option disables the
+ * changeableProperty parameter.
+ * @param deleteFromBase
+ * is an option. True means that element that not match with right will be removed
+ * @return true merge finishes successfully
+ */
+ public boolean merge(boolean checkPackageName, boolean copyAllPropertyValues, boolean deleteFromBase) {
+ boolean merged = false;
+ merged = updateAndAddFromRight(leftPackage, rightPackage, matchProperty, changeableProperty, checkPackageName, copyAllPropertyValues);
+ if (merged && deleteFromBase == I_RI.DELETE_FROM_BASE) {
+ deleteInsideLeft( matchProperty, checkPackageName, leftPackage,rightPackage);
+ }
+ return true;
+ }
+
+ private boolean deleteInsideLeft(String matchProperty, boolean checkPackageName, Package basePk, Package extPk) {
+ List<PackageableElement> delList = new ArrayList<PackageableElement>();
+ delList = (getElementsToBeDeleted(basePk, extPk, matchProperty,
+ checkPackageName, delList));
+ return delList.isEmpty() ? false : confirmDelete( basePk,
+ delList, matchProperty);
+ }
+
+ /**
+ * Prepare a list of Packageable Elements to be deleted from basePk
+ *
+ * @param version1
+ * is the package where we will try to find elements to be
+ * deleted because they are not anymore in the extPk (which is a
+ * version of basePk that evolved separately).
+ * @param version2
+ * is the package where we will try to find elements that are not
+ * in the basePk.
+ * @param matchProperty
+ * is the stereotype's property name used to determine if one
+ * element in basePk is the same than other element in extPk. For
+ * example, "id" is a good matchProperty when comparing SysML
+ * Requirements
+ * @param delList
+ * empty list that will store the packageableElements to be
+ * deleted.
+ * @return list of packageableElements to be deleted.
+ */
+ private List<PackageableElement> getElementsToBeDeleted(
+ org.eclipse.uml2.uml.Package version1,
+ org.eclipse.uml2.uml.Package version2, String matchProperty,
+ boolean checkPackageName, List<PackageableElement> delList) {
+
+// for (PackageableElement peInBasePk : version1.getPackagedElements()) {
+// if (peInBasePk instanceof org.eclipse.uml2.uml.Class
+// && peInBasePk.getAppliedStereotypes().size() > 0) {
+// Stereotype stOfPeInBasePk = peInBasePk.getAppliedStereotypes()
+// .get(0);
+// boolean foundMatch = false;
+// foundMatch = matchStereotypedPackagedElements(version2,
+// peInBasePk, stOfPeInBasePk, matchProperty, null,
+// checkPackageName, !I_RI.PERFORM_CHANGES,
+// !I_RI.COPY_All_PROPERTY_VALUES);
+// if (!foundMatch) {
+// delList.add(peInBasePk);
+// }
+// } else if (peInBasePk instanceof Package) {
+// return getElementsToBeDeleted((Package) peInBasePk, version2,
+// matchProperty, checkPackageName, delList);
+// }
+// }
+ return delList;
+ }
+
+ /**
+ * Confirm to delete or not a list of packageable elements
+ *
+ * @param window IWorkbenchWindow to receive the confirmation to delete the elements
+ * @param baseModel package or model where the elements in delList will be deleted
+ * @param delList list of elements to be deleted
+ * @param matchProperty
+ * is the stereotype's property name used to determine if one
+ * element in basePk is the same than other element in
+ * externalPk. For example "id" when comparing SysML
+ * Requirements.
+ * @return true if deletion finishes successfully
+ */
+ private boolean confirmDelete(Package baseModel,
+ List<PackageableElement> delList, String matchProperty) {
+ StringBuffer humanReadableList = new StringBuffer();
+
+ for (PackageableElement pe : delList) {
+ humanReadableList.append("\n"
+ + matchProperty
+ + I_RI.TOOL_PROPERTY_SEPARATOR
+ + pe.getValue(pe.getAppliedStereotypes().get(0),
+ matchProperty) + "\t"
+ + I_RI.PACKAGED_ELEMENT_NAME_ATT
+ + I_RI.TOOL_PROPERTY_SEPARATOR + pe.getName());
+ }
+ if (MessageDialog.openQuestion(new Shell(), I_RI.TOOL_TITLE,
+ I_RI.TOOL_DEL_CONFIRM + humanReadableList)) {
+ return deletePackagedElements(delList, baseModel, matchProperty);
+ }
+ return false;
+ }
+
+ /**
+ * Delete a list of packageable elements without any confirmation from the user
+ *
+ * @param delList list of elements to be deleted
+ * @param basePk
+ * @param matchProperty
+ * @return
+ */
+ private boolean deletePackagedElements(List<PackageableElement> delList,
+ Package basePk, String matchProperty) {
+ for (Iterator<PackageableElement> elementsToDelete = delList.iterator(); elementsToDelete
+ .hasNext();) {
+ PackageableElement del = elementsToDelete.next();
+ Stereotype stOfDel = del.getAppliedStereotypes().get(0);
+ String matchInDel = (String) del.getValue(stOfDel, matchProperty);
+
+ for (Iterator<PackageableElement> elementsInBasePk = basePk
+ .getPackagedElements().iterator(); elementsInBasePk
+ .hasNext();) {
+ PackageableElement peInBasePk = elementsInBasePk.next();
+ if (peInBasePk instanceof org.eclipse.uml2.uml.Class
+ && peInBasePk.getAppliedStereotypes().size() > 0) {
+ Stereotype stOfmatchInBasePk = peInBasePk
+ .getAppliedStereotypes().get(0);
+ String matchInBasePk = (String) peInBasePk.getValue(
+ stOfmatchInBasePk, matchProperty);
+ if (matchInDel.trim().contentEquals(matchInBasePk.trim())) {
+ peInBasePk.destroy();
+ break;
+ }
+ } else if (peInBasePk instanceof Package) {
+ return deletePackagedElements(delList,
+ (Package) peInBasePk, matchProperty);
+ }
+ }
+ }
+ return true;
+ }
+
+
+ /**
+ * Merge information from version2 into version1
+ *
+ * @param leftContainer
+ * is the package where we will do the modifications
+ * @param rightContainer
+ * is the package that we will analyze
+ * @param matchProperty
+ * is the stereotype's property name used to determine if one
+ * element in basePk is the same than other element in extPk. For
+ * example, "id" is a good matchProperty when comparing SysML
+ * Requirements
+ * @param changeableProperty
+ * is the property that we will change if the value of
+ * copyAllPropertyValues is false. For example "text".
+ * @param chkPkNameOption
+ * is an option. true means that the matched packaged elements
+ * must be in packages with the same name.
+ * @param copyOption
+ * is an option. true means that the user wants to copy the name
+ * and all the stereotype values. This option disables the
+ * changeableProperty parameter.
+ * @return true merge finishes successfully
+ */
+ private boolean updateAndAddFromRight(org.eclipse.uml2.uml.Element leftContainer, org.eclipse.uml2.uml.Element rightContainer, String matchProperty,
+ String changeableProperty, boolean chkPkNameOption, boolean copyOption) {
+ for (Element subElementFromRight : rightContainer.getOwnedElements()) {
+ Element foundLeftElement = null;
+ if (subElementFromRight.getAppliedStereotypes().size() > 0) {
+ Stereotype appliedStereotypeFromRight= subElementFromRight.getAppliedStereotypes().get(0);
+
+ foundLeftElement = matchStereotypedPackagedElements(leftContainer,subElementFromRight, appliedStereotypeFromRight, matchProperty,
+ changeableProperty);
+ if(foundLeftElement!=null){
+ copyConfig(subElementFromRight, appliedStereotypeFromRight, changeableProperty,foundLeftElement, appliedStereotypeFromRight, copyOption);
+
+ }
+ else {
+ foundLeftElement = addElementInsideLeft(leftContainer, subElementFromRight, appliedStereotypeFromRight);
+ }
+ }
+ if (subElementFromRight.getOwnedElements().size()>0) {
+ return updateAndAddFromRight(foundLeftElement, subElementFromRight, matchProperty, changeableProperty, chkPkNameOption, copyOption);
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Add a packageable element from right to left
+ *
+ * @param leftContainer
+ * is the package where we will add new elements from rightPackage.
+ * @param elementFromRight
+ * Packageable element in Right package.
+ * @param appliedSterotypeRight
+ * stereotype of peInExtPk.
+ * @return createdElement
+ */
+ private Element addElementInsideLeft(Element leftContainer,Element elementFromRight, Stereotype appliedSterotypeRight) {
+ Element result= null;
+ EObject stApplication_right = elementFromRight.getStereotypeApplication(appliedSterotypeRight);
+ ArrayList<EObject> subsetToCopy=new ArrayList<EObject>();
+ subsetToCopy.add(elementFromRight);
+ subsetToCopy.add(elementFromRight.getStereotypeApplication(appliedSterotypeRight));
+ Collection<EObject> copy=EcoreUtil.copyAll(subsetToCopy);
+ for (EObject eObject : copy) {
+ if( eObject instanceof Element){
+ if( eObject instanceof Comment){
+ (leftContainer).getOwnedComments().add((Comment) eObject);}
+ else if( leftContainer instanceof Package && eObject instanceof PackageableElement ){
+ ((Package)leftContainer).getPackagedElements().add((PackageableElement) eObject);}
+ else if( leftContainer instanceof Classifier && eObject instanceof Classifier){
+ ((Class)leftContainer).getNestedClassifiers().add((Classifier) eObject);}
+ else{
+ System.err.println("Impossible to add "+ eObject+ " inside"+ leftContainer);
+ }
+ result=(Element) eObject;
+ }
+ else{
+ leftContainer.eResource().getContents().add(eObject);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Copy all not derived stereotype property values without changing the base
+ * class
+ *
+ * @param peInExtPk
+ * Packageable element in external package.
+ * @param stOfExtPe
+ * stereotype of peInExtPk.
+ * @param peInBasePk
+ * Packageable element in base package that will receive the new
+ * values from peInExtPk.
+ */
+ private void copyAllStereotypePropertyValues(Element peInExtPk,
+ Stereotype stOfExtPe, Element peInBasePk) {
+ for (Property stProperty : stOfExtPe.getAllAttributes()) {
+ if (!stProperty.isReadOnly() && !stProperty.isDerived()
+ && !stProperty.getName().startsWith("base_")) {
+ peInBasePk.setValue(stOfExtPe, stProperty.getName(),
+ peInExtPk.getValue(stOfExtPe, stProperty.getName()));
+ }
+ }
+ }
+
+ /**
+ * Matches two stereotyped packageable elements based on a matchProperty at the current level
+ *
+ * @param containerLeft
+ * is the container where we look for elementRight
+ * @param elementRight
+ * is the stereotyped PackagedElement to be matched. For example,
+ * the packaged element of type "org.eclipse.uml2.uml.Class"
+ * stereotyped with "ReqType5".
+ * @param appliedStereotypeRight
+ * is the Stereotype that defines the matchProperty. For example,
+ * the stereotype "ReqType5" defines the matchProperty "id".
+ * @param matchProperty
+ * is the stereotype's property name used to determine if one
+ * element in basePk matches other element in extPk. For example,
+ * the stereotype "Requirement" in the profile SysML Requirements
+ * defines the property "id" that is used frequently as a
+ * matchProperty.
+ * @param changeableProperty
+ * is the property whose value will be changed. For example the
+ * property "text" in the stereotype "Requirement".
+ * @param checkPackageName
+ * is an option. true means that the matched packaged elements
+ * must be in packages with the same name.
+ * @param performChanges
+ * is an option. true means that the user wants to actually
+ * change the value of changeableProperty. false will disable the
+ * copyAllPropertyValues option.
+
+ * @return the element that matches
+ */
+ private Element matchStereotypedPackagedElements(Element containerLeft, Element elementRight,
+ Stereotype appliedStereotypeRight, String matchProperty,String changeableProperty) {
+ String matchPropertyValueRight = (String) elementRight.getValue(appliedStereotypeRight, matchProperty);
+ if(matchPropertyValueRight!=null){
+ for (Element subElementLeft : containerLeft.getOwnedElements()) {
+ if (subElementLeft.getAppliedStereotypes().size() > 0) {
+ Stereotype appliedStereotypeLeft = subElementLeft.getAppliedStereotypes().get(0);
+ if (appliedStereotypeLeft.getName().equals(appliedStereotypeRight.getName())) {
+ String matchPropertyValueLeft = (String) subElementLeft.getValue(appliedStereotypeLeft, matchProperty);
+ if(matchPropertyValueLeft!=null){
+ if (matchPropertyValueRight.trim().equals(matchPropertyValueLeft.trim())) {
+ return subElementLeft;
+ }
+ }
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Copy the name of an element and either one or all stereotype property
+ * values depending on the parameter copyOption
+ *
+ * @param rightElement
+ * is the packageable element in external package
+ * @param AppliedStereotypeRight
+ * is the stereotype of peInExtPk
+ * @param changeableProperty
+ * is the property to copy when the value of copyOption is false
+ * @param leftElement
+ * is the stereotyped packageable element whose value(s) will be
+ * modified.
+ * @param stOfPeInBasePk
+ * is the stereotype of peInBasePk
+ * @param copyOption
+ * is the copy option. true means to copy all the stereotype
+ * property values. false means to copy only the property in the
+ * parameter changeableProperty.
+ */
+ private void copyConfig(Element rightElement, Stereotype AppliedStereotypeRight,
+ String changeableProperty, Element leftElement,
+ Stereotype appliedStereotype, boolean copyOption) {
+ if (copyOption == I_RI.COPY_All_PROPERTY_VALUES) {
+ if( leftElement instanceof NamedElement){
+ ((NamedElement)leftElement).setName(((NamedElement)rightElement).getName());
+ }
+ for (Stereotype st : leftElement.getAppliedStereotypes()) {
+ copyAllStereotypePropertyValues(rightElement, st, leftElement);
+ }
+ } else if (copyOption != I_RI.COPY_All_PROPERTY_VALUES) {
+ leftElement.setValue(appliedStereotype, changeableProperty,
+ rightElement.getValue(AppliedStereotypeRight, changeableProperty));
+ }
+ }
+
+}
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/I_RI.java b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/I_RI.java
new file mode 100644
index 00000000000..495a4d35d1b
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/I_RI.java
@@ -0,0 +1,34 @@
+package org.eclipse.papyrus.req.reqif.transformation;
+
+public interface I_RI {
+ /** name of the stereotype "Requirement" */
+ public static final String REQ = "Requirement";
+ /** name of property "text" of the stereotype "Requirement" */
+ public static final String REQ_TEXT_ATT = "text";
+ /** name of property "id" of the stereotype "Requirement" */
+ public static final String REQ_ID_ATT = "id";
+ /** name of property "name" of PackagedElement */
+ public static final String PACKAGED_ELEMENT_NAME_ATT = "name";
+ /** Qualified name of stereotype Requirement */
+ public static final String REQ_STEREOTYPE = "SysML::Requirements::Requirement";
+ /** Delete from the base model the requirements that are not in the external model*/
+ public static final boolean DELETE_FROM_BASE = true;
+ /** Copy all contents without references to the original object during a merge process. If it is true, it will overwrite the "changeable parameter" parameter */
+ public static final boolean COPY_All_PROPERTY_VALUES = true;
+ /** Change values in properties when the matchStereotypedPackagedElements method finds a match */
+ public static final boolean PERFORM_CHANGES = true;
+ /** Check package name during matching*/
+ public static final boolean CHECK_PACKAGE_NAME = true;
+ /** name to show in at the beginning of user messages */
+ public static final String TOOL_TITLE = "Papyrus SysML REQ Reimport";
+ /** Confirmation message to make sure that the user really wants to delete requirements in base model*/
+ public static final String TOOL_DEL_CONFIRM = "Do you really want to delete: ";
+ /** Papyrus REQ reimport message when the tool finished without problems */
+ public static final String TOOL_SUCCESS = "Successfull re-import";
+ /** Papyrus REQ reimport message when the tool finished with problems */
+ public static final String TOOL_FAIL = "UnSuccessfull re-import";
+ /** Constant message when a File cannot be read*/
+ public static final String TOOL_ERR_FILE_READ ="Not Readable files";
+ /** Constant property value separator*/
+ public static final String TOOL_PROPERTY_SEPARATOR =": ";
+}
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/ReqIFBaseTransformation.java b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/ReqIFBaseTransformation.java
index 65af870fd34..9def22153b0 100644
--- a/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/ReqIFBaseTransformation.java
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/ReqIFBaseTransformation.java
@@ -15,7 +15,9 @@ package org.eclipse.papyrus.req.reqif.transformation;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Iterator;
+import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
@@ -49,7 +51,8 @@ public abstract class ReqIFBaseTransformation {
/** the transactional Editing doamin to acces to the service edit**/
public TransactionalEditingDomain domain = null;
protected ReqIF reqIFModel;
- protected org.eclipse.uml2.uml.Package UMLModel;
+ protected org.eclipse.uml2.uml.Package targetUMLModel;
+ protected Package importRootUMLPackage = null;
protected HashMap<String,Stereotype> objectTypeStereotypesMap;
protected HashMap<String, Stereotype> specRelationTypeSterotypeMap;
/** The UML primitive Type */
@@ -66,6 +69,23 @@ public abstract class ReqIFBaseTransformation {
protected HashMap<SpecObject, Element> SpecObject_UMLElementMap;
protected HashMap<String, Enumeration> profileEnumeration;
+
+ /**
+ * get Root package(model) of the given package(model)
+ * @param element the currentPackage
+ * @return the root package
+ *
+ */
+ public static Package getRootModel( Package element) {
+ if(element.eContainer() instanceof Package){
+ return getRootModel((Package)element.eContainer());
+ }
+ if( element instanceof Package){
+ return (Package) element;
+ }
+
+ return null;
+ }
/**
*
* Constructor.
@@ -75,7 +95,7 @@ public abstract class ReqIFBaseTransformation {
*/
public ReqIFBaseTransformation( TransactionalEditingDomain domain,Package UMLModel) {
this.domain=domain;
- this.UMLModel=UMLModel;
+ this.targetUMLModel=UMLModel;
//get reference to Sysml Profile
IRegisteredProfile registeredProfile = RegisteredProfile.getRegisteredProfile("SysML");
URI sysMLUri = registeredProfile.getUri();
@@ -100,7 +120,7 @@ public abstract class ReqIFBaseTransformation {
*/
protected HashMap<String, Enumeration> getAllPossibleEnumeration(Package uMLModel) {
HashMap<String, Enumeration> enumerationList= new HashMap<String, Enumeration>();
- for(Profile currentProfile : UMLModel.getAppliedProfiles()) {
+ for(Profile currentProfile : uMLModel.getAppliedProfiles()) {
for(PackageableElement packageableElement : currentProfile.getPackagedElements()) {
if( packageableElement instanceof Enumeration){
@@ -159,9 +179,9 @@ public abstract class ReqIFBaseTransformation {
* @param uMLModel
* @return map of all stereotypes that extends packages
*/
- protected HashMap<String, Stereotype> getAllPossibleSpecRelationType() {
+ protected HashMap<String, Stereotype> getAllPossibleSpecRelationType(Package uMLModel) {
HashMap<String,Stereotype> SpecRelationStereotypes= new HashMap<String,Stereotype>();
- for(Profile currentProfile : UMLModel.getAppliedProfiles()) {
+ for(Profile currentProfile : uMLModel.getAppliedProfiles()) {
for(Stereotype stereotype : currentProfile.getOwnedStereotypes()) {
if( isPossibleSpecRelationTypeStereotype(stereotype)){
@@ -200,7 +220,7 @@ public abstract class ReqIFBaseTransformation {
*/
protected HashMap<String, Stereotype> getAllPossibleSpecificationType(Package uMLModel) {
HashMap<String,Stereotype> specificationStereotypes= new HashMap<String,Stereotype>();
- for(Profile currentProfile : UMLModel.getAppliedProfiles()) {
+ for(Profile currentProfile : uMLModel.getAppliedProfiles()) {
for(Stereotype stereotype : currentProfile.getOwnedStereotypes()) {
if( isPossibleSpecificationTypeStereotype(stereotype)){
@@ -247,9 +267,24 @@ public abstract class ReqIFBaseTransformation {
* @param UMLModel the UML model
* @return all applied profile that are local profiles
*/
+ protected ArrayList<Profile> getAllAppliedProfiles(org.eclipse.uml2.uml.Package UMLModel) {
+ Package RootModel= getRootModel(UMLModel);
+ ArrayList<Profile> appliedProfiles= new ArrayList<Profile>();
+ for(Profile currentProfile : RootModel.getAppliedProfiles()) {
+ appliedProfiles.add(currentProfile);
+ }
+ return appliedProfiles;
+ }
+
+ /**
+ *
+ * @param UMLModel the UML model
+ * @return all applied profile that are local profiles
+ */
protected ArrayList<Profile> getAllLocalProfiles(org.eclipse.uml2.uml.Package UMLModel) {
+ Package RootModel= getRootModel(UMLModel);
ArrayList<Profile> localProfile= new ArrayList<Profile>();
- for(Profile currentProfile : UMLModel.getAppliedProfiles()) {
+ for(Profile currentProfile : RootModel.getAppliedProfiles()) {
if(currentProfile.eResource().getURI().isPlatformResource()){
localProfile.add(currentProfile);
}
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/ReqIFExporter.java b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/ReqIFExporter.java
index c5b4299217f..38be5452f0b 100644
--- a/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/ReqIFExporter.java
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/ReqIFExporter.java
@@ -109,8 +109,8 @@ public class ReqIFExporter extends ReqIFBaseTransformation{
public void exportReqIFModel(boolean withGUI, String reqIFpath) {
reqIFModel=createReqIFResource(reqIFpath);
//get all information form stereotypes
- objectTypeStereotypesMap=getAllPossibleRequirementType(UMLModel);
- specRelationTypeSterotypeMap= getAllPossibleSpecRelationType();
+ objectTypeStereotypesMap=getAllPossibleRequirementType(targetUMLModel);
+ specRelationTypeSterotypeMap= getAllPossibleSpecRelationType(targetUMLModel);
//create All reqIF Types
objectTypeMap = new HashMap<String, SpecType>();
specRelationTypeMap= new HashMap<String, SpecType >();
@@ -119,7 +119,7 @@ public class ReqIFExporter extends ReqIFBaseTransformation{
//Enumeration
reqifDatatTypeEnumeration= new HashMap<String, DatatypeDefinitionEnumeration>() ;
- profileEnumeration= getAllPossibleEnumeration(UMLModel);
+ profileEnumeration= getAllPossibleEnumeration(targetUMLModel);
//creation of Enumerations dataType
exportEnumeration();
getAllDataTypeDefinitionEnumeration();
@@ -133,7 +133,7 @@ public class ReqIFExporter extends ReqIFBaseTransformation{
for(Stereotype stereotype : objectTypeStereotypesMap.values()) {
exportSpecObjectTypes(reqIFModel, objectTypeMap, stereotype);
}
- HashSet<Package> packageContainers=getRequirementContainers(UMLModel);
+ HashSet<Package> packageContainers=getRequirementContainers(targetUMLModel);
for(Package aPackage : packageContainers) {
//create a specificationType
SpecificationType aSpecificationType= ReqIF10Factory.eINSTANCE.createSpecificationType();
@@ -165,7 +165,7 @@ public class ReqIFExporter extends ReqIFBaseTransformation{
* export stereotyped dependency to Spec Relation
*/
protected void exportSpecRelation() {
- Iterator<EObject> containedElementIterator= UMLModel.eAllContents();
+ Iterator<EObject> containedElementIterator= targetUMLModel.eAllContents();
while(containedElementIterator.hasNext()) {
EObject eObject = (EObject)containedElementIterator.next();
if( eObject instanceof Dependency){
@@ -304,8 +304,8 @@ public class ReqIFExporter extends ReqIFBaseTransformation{
header.setSourceToolId("Papyrus Req");
header.setReqIFVersion("1.0.1");
header.setCreationTime((GregorianCalendar) GregorianCalendar.getInstance());
- header.setComment("generated by Papyrus Requirement from "+UMLModel.eResource().getURI().lastSegment());
- header.setTitle(UMLModel.getName());
+ header.setComment("generated by Papyrus Requirement from "+targetUMLModel.eResource().getURI().lastSegment());
+ header.setTitle(targetUMLModel.getName());
header.setReqIFToolId("Papyrus Req");
reqIFModel.setTheHeader(header);
ReqIFContent reqIFContent= ReqIF10Factory.eINSTANCE.createReqIFContent();
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/ReqIFImporter.java b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/ReqIFImporter.java
index 574a0f0b091..c682503e91c 100644
--- a/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/ReqIFImporter.java
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/ReqIFImporter.java
@@ -34,6 +34,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.xmi.XMLResource;
import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.papyrus.infra.widgets.toolbox.notification.builders.NotificationBuilder;
import org.eclipse.papyrus.req.reqif.Activator;
@@ -75,11 +76,14 @@ import org.eclipse.rmf.reqif10.SpecificationType;
import org.eclipse.rmf.reqif10.XhtmlContent;
import org.eclipse.rmf.reqif10.common.util.ReqIF10Util;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.FormDialog;
import org.eclipse.ui.forms.IManagedForm;
import org.eclipse.ui.forms.widgets.FormToolkit;
@@ -90,6 +94,7 @@ import org.eclipse.uml2.uml.Dependency;
import org.eclipse.uml2.uml.Element;
import org.eclipse.uml2.uml.Enumeration;
import org.eclipse.uml2.uml.EnumerationLiteral;
+import org.eclipse.uml2.uml.Model;
import org.eclipse.uml2.uml.NamedElement;
import org.eclipse.uml2.uml.Package;
import org.eclipse.uml2.uml.Profile;
@@ -104,6 +109,9 @@ import org.eclipse.uml2.uml.resource.UMLResource;
*/
public abstract class ReqIFImporter extends ReqIFBaseTransformation {
+ protected Shell shellLogger;
+
+
/**
*
* Constructor.
@@ -284,23 +292,59 @@ public abstract class ReqIFImporter extends ReqIFBaseTransformation {
return null;
}
+
+ protected Text initLogger(){
+ shellLogger = new Shell();
+ shellLogger.setLayout(new FillLayout());
+ shellLogger.setSize(300, 100);
+
+ // Create a multiple-line text field
+ Text message = new Text(shellLogger, SWT.MULTI | SWT.BORDER | SWT.WRAP | SWT.V_SCROLL);
+ message.setLayoutData(new GridData(GridData.FILL_BOTH));
+ shellLogger.open();
+ return message;
+ }
+
+ public boolean reImportReqIFModel ( boolean interactive){
+ Model reImportModel=UMLFactory.eINSTANCE.createModel();
+ reImportModel.setName("Re-ImportModel"+ GregorianCalendar.getInstance().getTimeInMillis());
+ Package firstVersion= targetUMLModel;
+ firstVersion.eResource().getContents().add(reImportModel);
+ ArrayList<Profile> appliedProfiles=getAllAppliedProfiles(firstVersion);
+ for (Profile profile : appliedProfiles) {
+ reImportModel.applyProfile(profile);
+ }
+ targetUMLModel=reImportModel;
+ boolean importResult= importReqIFModel ( interactive);
+ BasicRequirementMerger merger= new BasicRequirementMerger(firstVersion, targetUMLModel, I_RI.REQ_ID_ATT,null);
+ merger.merge( !I_RI.CHECK_PACKAGE_NAME, I_RI.COPY_All_PROPERTY_VALUES, I_RI.DELETE_FROM_BASE);
+
+ return importResult;
+ }
/**
* import selected SpecObjectType and their instances into UML Model
* @param interactive open GUI for user if true
* @return true
*/
public boolean importReqIFModel ( boolean interactive){
+ Text message= initLogger();
+
+
+ message.setText("Preprocessing...");
+
preProcess(reqIFModel);
//look for all Stereotype that inherits of Requirements
//import ReqIFHeader
- importReqIFHeader(reqIFModel, UMLModel);
+ importReqIFHeader(reqIFModel, targetUMLModel);
//getAll stereotypes that represents types in profiles
- getAllStereotypesRepresentingTypes(UMLModel);
+ getAllStereotypesRepresentingTypes(getRootModel(targetUMLModel));
//map between SpecObject and Element
SpecObject_UMLElementMap= new HashMap<SpecObject, Element>();
+ message.setText("Import types...");
+
//get all types of ReqIF and SpecificationType
getAllTypesFromReqIFFiles(reqIFModel);
@@ -310,7 +354,7 @@ public abstract class ReqIFImporter extends ReqIFBaseTransformation {
objectTypeMap=selectReqIFType(objectTypeMap.values());
}
-
+
//analyze the list of existing stereotypes and the list of specObject Types to import
ArrayList<SpecType> specObjectTypesToCreate= new ArrayList<SpecType>();
ArrayList<SpecificationType> specificationTypesToCreate= new ArrayList<SpecificationType>();
@@ -330,10 +374,10 @@ public abstract class ReqIFImporter extends ReqIFBaseTransformation {
String userkind_value=store.getString(ReqIFPreferenceConstants.USER_KIND);
if(userkind_value.equals(ReqIFPreferenceConstants.ADVANCED_USER)){
// Advanced USER
- CreateOrSelectProfilDialog profilDialog= new CreateOrSelectProfilDialog(new Shell(), getAllLocalProfiles(UMLModel));
+ CreateOrSelectProfilDialog profilDialog= new CreateOrSelectProfilDialog(new Shell(), getAllLocalProfiles(getRootModel(targetUMLModel)));
profilDialog.open();
String profileName=profilDialog.getProfileName();
- Profile profile=getProfile(UMLModel, profileName);
+ Profile profile=getProfile(getRootModel(targetUMLModel), profileName);
importReqIFHeader(reqIFModel, profile);
importDataTypeDefinition(profile, dataTypeDefinitionToCreate);
importReqIFSpecificationType(profile, specificationTypesToCreate);
@@ -341,7 +385,7 @@ public abstract class ReqIFImporter extends ReqIFBaseTransformation {
importReqIFspecRelationTypes(profile,specRelationTypesToCreate);
postProcessProfile(profile);
defineProfile(profile);
- UMLModel.applyProfile(profile);
+ getRootModel(targetUMLModel).applyProfile(profile);
}
else{
//SIMPLE USER choose profiles
@@ -351,7 +395,7 @@ public abstract class ReqIFImporter extends ReqIFBaseTransformation {
ArrayList<Profile> profilelist= new ArrayList<Profile>();
for (Iterator<IRegisteredProfile> iterator = registeredProfiles.iterator(); iterator.hasNext();) {
IRegisteredProfile iRegisteredProfile = (IRegisteredProfile) iterator.next();
- ResourceSet resourceSet = UMLModel.eResource().getResourceSet();
+ ResourceSet resourceSet = targetUMLModel.eResource().getResourceSet();
Resource resource=resourceSet.getResource(iRegisteredProfile.getUri(), true);
if(resource.getContents().size()==1 && resource.getContents().get(0) instanceof Profile){
@@ -371,10 +415,12 @@ public abstract class ReqIFImporter extends ReqIFBaseTransformation {
}
- UMLModel.applyProfile(profileToApply);
+ getRootModel(targetUMLModel).applyProfile(profileToApply);
+
+ message.setText("Import objects...");
//getAll stereotypes that represents types in profiles
- getAllStereotypesRepresentingTypes(UMLModel);
+ getAllStereotypesRepresentingTypes(getRootModel(targetUMLModel));
specObjectTypesToCreate= new ArrayList<SpecType>();
specificationTypesToCreate= new ArrayList<SpecificationType>();
specRelationTypesToCreate= new ArrayList<SpecType>();
@@ -393,7 +439,7 @@ public abstract class ReqIFImporter extends ReqIFBaseTransformation {
}
//all types has been created so import elspecifications and specObjects
- objectTypeStereotypesMap=getAllPossibleRequirementType(UMLModel);
+ objectTypeStereotypesMap=getAllPossibleRequirementType(getRootModel(targetUMLModel));
HashMap<String,Stereotype> filteredreqStereotypes=new HashMap<String, Stereotype>();
@@ -404,18 +450,21 @@ public abstract class ReqIFImporter extends ReqIFBaseTransformation {
}
}
objectTypeStereotypesMap=filteredreqStereotypes;
- specificationTypeSterotypeMap= getAllPossibleSpecificationType(UMLModel);
- specRelationTypeSterotypeMap= getAllPossibleSpecRelationType();
- importReqIFspecification(reqIFModel, UMLModel, objectTypeStereotypesMap);
- importSpecRelation(reqIFModel, UMLModel,specRelationTypeSterotypeMap);
+ specificationTypeSterotypeMap= getAllPossibleSpecificationType(getRootModel(targetUMLModel));
+ specRelationTypeSterotypeMap= getAllPossibleSpecRelationType(getRootModel(targetUMLModel));
+ importReqIFspecification(reqIFModel, targetUMLModel, objectTypeStereotypesMap);
+ importSpecRelation(reqIFModel, targetUMLModel,specRelationTypeSterotypeMap);
+
+ postProcess(targetUMLModel);
+ shellLogger.close();
+ shellLogger.dispose();
- postProcess(UMLModel);
return true;
}
protected void createMessageForTypewithoutStereotypes(ArrayList<SpecType> specObjectTypesToCreate,
ArrayList<SpecificationType> specificationTypesToCreate, ArrayList<SpecType> specRelationTypesToCreate,
ArrayList<DatatypeDefinitionEnumeration> dataTypeDefinitionToCreate) {
- Comment comment= UMLModel.createOwnedComment();
+ Comment comment= targetUMLModel.createOwnedComment();
String messageTodisplay="";
for (Iterator<SpecType> iterator = specObjectTypesToCreate.iterator(); iterator.hasNext();) {
SpecType type = (SpecType) iterator.next();
@@ -488,7 +537,7 @@ public abstract class ReqIFImporter extends ReqIFBaseTransformation {
specificationTypeMap=new HashMap<String, SpecificationType>();
specRelationTypeMap= new HashMap<String, SpecType>();
reqifDatatTypeEnumeration= new HashMap<String, DatatypeDefinitionEnumeration>();
-
+
if(reqIFModel.getCoreContent().getSpecTypes()!=null&&reqIFModel.getCoreContent().getSpecTypes().size()>0){
for(SpecType reqIFType : reqIFModel.getCoreContent().getSpecTypes()) {
if(reqIFType instanceof SpecObjectType){
@@ -503,7 +552,7 @@ public abstract class ReqIFImporter extends ReqIFBaseTransformation {
}
}
-
+
getAllDataTypeDefinitionEnumeration();
}
@@ -522,7 +571,7 @@ public abstract class ReqIFImporter extends ReqIFBaseTransformation {
//SpecRelation
specRelationTypeSterotypeMap= new HashMap<String, Stereotype>();
- specRelationTypeSterotypeMap= getAllPossibleSpecRelationType();
+ specRelationTypeSterotypeMap= getAllPossibleSpecRelationType(UMLModel);
//get All DataTypeEnumeration
profileEnumeration=new HashMap<String, Enumeration>();
profileEnumeration=getAllPossibleEnumeration(UMLModel);
@@ -644,6 +693,7 @@ public abstract class ReqIFImporter extends ReqIFBaseTransformation {
for(SpecHierarchy specHierarchy : specif.getChildren()) {
importReqIFHyerarchy(specHierarchy, apackage, reqStereotypes);
}
+ importRootUMLPackage = apackage;
}
}
diff --git a/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/ReqTypeProfile.profile.uml b/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/ReqTypeProfile.profile.uml
new file mode 100644
index 00000000000..2b350de386f
--- /dev/null
+++ b/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/ReqTypeProfile.profile.uml
@@ -0,0 +1,255 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Profile xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_sD_kMOUCEeSXGtGTXahmOw" name="ReqTypeProfile" metaclassReference="_sHVME-UCEeSXGtGTXahmOw" metamodelReference="_sHHJoOUCEeSXGtGTXahmOw">
+ <eAnnotations xmi:id="_sH3-oOUCEeSXGtGTXahmOw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <contents xmi:type="ecore:EPackage" xmi:id="_sH3-oeUCEeSXGtGTXahmOw" name="ReqTypeProfile" nsURI="http:///schemas/ReqTypeProfile/_sHzGIOUCEeSXGtGTXahmOw/0" nsPrefix="ReqTypeProfile">
+ <eAnnotations xmi:id="_sH8QFuUCEeSXGtGTXahmOw" source="PapyrusVersion">
+ <details xmi:id="_sH8QF-UCEeSXGtGTXahmOw" key="Version" value="1.0.0"/>
+ <details xmi:id="_sH8QGOUCEeSXGtGTXahmOw" key="Comment" value="generated by Papyrus Req"/>
+ <details xmi:id="_sH8QGeUCEeSXGtGTXahmOw" key="Copyright" value=""/>
+ <details xmi:id="_sH8QGuUCEeSXGtGTXahmOw" key="Date" value="Fri Apr 17 15:07:24 CEST 2015"/>
+ <details xmi:id="_sH8QG-UCEeSXGtGTXahmOw" key="Author" value="Papyrus Req"/>
+ </eAnnotations>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_sH3-ouUCEeSXGtGTXahmOw" name="Importance">
+ <eAnnotations xmi:id="_sH3-o-UCEeSXGtGTXahmOw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_sHT98eUCEeSXGtGTXahmOw"/>
+ <eLiterals xmi:id="_sH3-pOUCEeSXGtGTXahmOw" name="Low"/>
+ <eLiterals xmi:id="_sH3-peUCEeSXGtGTXahmOw" name="Medium" value="1"/>
+ <eLiterals xmi:id="_sH3-puUCEeSXGtGTXahmOw" name="High" value="2"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EEnum" xmi:id="_sH3-p-UCEeSXGtGTXahmOw" name="Maturity">
+ <eAnnotations xmi:id="_sH3-qOUCEeSXGtGTXahmOw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_sHUlA-UCEeSXGtGTXahmOw"/>
+ <eLiterals xmi:id="_sH3-qeUCEeSXGtGTXahmOw" name="Idea"/>
+ <eLiterals xmi:id="_sH3-quUCEeSXGtGTXahmOw" name="Proto" value="1"/>
+ <eLiterals xmi:id="_sH3-q-UCEeSXGtGTXahmOw" name="Advanced" value="2"/>
+ <eLiterals xmi:id="_sH3-rOUCEeSXGtGTXahmOw" name="Specification" value="3"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sH3-reUCEeSXGtGTXahmOw" name="SysMLmodel">
+ <eAnnotations xmi:id="_sH3-ruUCEeSXGtGTXahmOw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_sHVMEeUCEeSXGtGTXahmOw"/>
+ <eSuperTypes href="http://www.eclipse.org/papyrus/0.7.0/SysML#//requirements/Requirement"/>
+ <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_sH3-r-UCEeSXGtGTXahmOw" name="base_Package" ordered="false" lowerBound="1">
+ <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sH3-suUCEeSXGtGTXahmOw" name="Requirement">
+ <eAnnotations xmi:id="_sH3-s-UCEeSXGtGTXahmOw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_sHhZUeUCEeSXGtGTXahmOw"/>
+ <eAnnotations xmi:id="_sH3-tOUCEeSXGtGTXahmOw" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_sH3-teUCEeSXGtGTXahmOw" name="id" ordered="false" unique="false">
+ <eAnnotations xmi:id="_sH3-tuUCEeSXGtGTXahmOw" source="redefines">
+ <references xmi:type="ecore:EAttribute" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//requirements/Requirement/id"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </contents>
+ </eAnnotations>
+ <eSuperTypes href="http://www.eclipse.org/papyrus/0.7.0/SysML#//requirements/Requirement"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sH3-ueUCEeSXGtGTXahmOw" name="ReqType1">
+ <eAnnotations xmi:id="_sH3-uuUCEeSXGtGTXahmOw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_sHinceUCEeSXGtGTXahmOw"/>
+ <eAnnotations xmi:id="_sH3-u-UCEeSXGtGTXahmOw" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_sH3-vOUCEeSXGtGTXahmOw" name="id" ordered="false" unique="false">
+ <eAnnotations xmi:id="_sH3-veUCEeSXGtGTXahmOw" source="redefines">
+ <references xmi:type="ecore:EAttribute" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//requirements/Requirement/id"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </contents>
+ </eAnnotations>
+ <eSuperTypes href="http://www.eclipse.org/papyrus/0.7.0/SysML#//requirements/Requirement"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sH3-v-UCEeSXGtGTXahmOw" name="Attribute1" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sH3-wuUCEeSXGtGTXahmOw" name="ReqType3">
+ <eAnnotations xmi:id="_sH3-w-UCEeSXGtGTXahmOw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_sHineOUCEeSXGtGTXahmOw"/>
+ <eAnnotations xmi:id="_sH3-xOUCEeSXGtGTXahmOw" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_sH3-xeUCEeSXGtGTXahmOw" name="id" ordered="false" unique="false">
+ <eAnnotations xmi:id="_sH3-xuUCEeSXGtGTXahmOw" source="redefines">
+ <references xmi:type="ecore:EAttribute" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//requirements/Requirement/id"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </contents>
+ </eAnnotations>
+ <eSuperTypes href="http://www.eclipse.org/papyrus/0.7.0/SysML#//requirements/Requirement"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sH3-yOUCEeSXGtGTXahmOw" name="Attribute1" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Boolean"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sH3-y-UCEeSXGtGTXahmOw" name="ReqType2">
+ <eAnnotations xmi:id="_sH3-zOUCEeSXGtGTXahmOw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_sHinf-UCEeSXGtGTXahmOw"/>
+ <eAnnotations xmi:id="_sH3-zeUCEeSXGtGTXahmOw" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_sH3-zuUCEeSXGtGTXahmOw" name="id" ordered="false" unique="false">
+ <eAnnotations xmi:id="_sH3-z-UCEeSXGtGTXahmOw" source="redefines">
+ <references xmi:type="ecore:EAttribute" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//requirements/Requirement/id"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </contents>
+ </eAnnotations>
+ <eSuperTypes href="http://www.eclipse.org/papyrus/0.7.0/SysML#//requirements/Requirement"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sH3-0eUCEeSXGtGTXahmOw" name="Attribute1" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Integer"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sH3-1OUCEeSXGtGTXahmOw" name="ReqType5">
+ <eAnnotations xmi:id="_sH3-1eUCEeSXGtGTXahmOw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_sHjOguUCEeSXGtGTXahmOw"/>
+ <eAnnotations xmi:id="_sH3-1uUCEeSXGtGTXahmOw" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_sH3-1-UCEeSXGtGTXahmOw" name="id" ordered="false" unique="false">
+ <eAnnotations xmi:id="_sH3-2OUCEeSXGtGTXahmOw" source="redefines">
+ <references xmi:type="ecore:EAttribute" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//requirements/Requirement/id"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </contents>
+ </eAnnotations>
+ <eSuperTypes href="http://www.eclipse.org/papyrus/0.7.0/SysML#//requirements/Requirement"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sH3-2uUCEeSXGtGTXahmOw" name="Attribute1" ordered="false" eType="_sH3-ouUCEeSXGtGTXahmOw"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sH3-3OUCEeSXGtGTXahmOw" name="Attribute2" ordered="false" eType="_sH3-p-UCEeSXGtGTXahmOw"/>
+ </eClassifiers>
+ <eClassifiers xmi:type="ecore:EClass" xmi:id="_sH3-3-UCEeSXGtGTXahmOw" name="ReqType4">
+ <eAnnotations xmi:id="_sH3-4OUCEeSXGtGTXahmOw" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_sHjOi-UCEeSXGtGTXahmOw"/>
+ <eAnnotations xmi:id="_sH3-4eUCEeSXGtGTXahmOw" source="duplicates">
+ <contents xmi:type="ecore:EAttribute" xmi:id="_sH3-4uUCEeSXGtGTXahmOw" name="id" ordered="false" unique="false">
+ <eAnnotations xmi:id="_sH3-4-UCEeSXGtGTXahmOw" source="redefines">
+ <references xmi:type="ecore:EAttribute" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//requirements/Requirement/id"/>
+ </eAnnotations>
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//String"/>
+ </contents>
+ </eAnnotations>
+ <eSuperTypes href="http://www.eclipse.org/papyrus/0.7.0/SysML#//requirements/Requirement"/>
+ <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_sH3-5eUCEeSXGtGTXahmOw" name="Attribute1" ordered="false">
+ <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/uml2/5.0.0/Types#//Real"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ </contents>
+ </eAnnotations>
+ <ownedComment xmi:id="_sHT98OUCEeSXGtGTXahmOw">
+ <body>This model has been generated Fri Apr 17 15:07:24 CEST 2015 from ReqIF file: specObject_1.reqif.
+generated by Papyrus Requirement from exportSpecObject.umlSysMLmodel</body>
+ </ownedComment>
+ <elementImport xmi:id="_sHVME-UCEeSXGtGTXahmOw">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ </elementImport>
+ <packageImport xmi:id="_sEdeQOUCEeSXGtGTXahmOw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:id="_sHHJoOUCEeSXGtGTXahmOw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:id="_sHHJoeUCEeSXGtGTXahmOw">
+ <importedPackage xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_OOJC4LX8EduFmqQsrNB9lw"/>
+ </packageImport>
+ <packageImport xmi:id="_sHHJouUCEeSXGtGTXahmOw">
+ <importedPackage xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_TZ_nULU5EduiKqCzJMWbGw"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_sHT98eUCEeSXGtGTXahmOw" name="Importance">
+ <ownedLiteral xmi:id="_sHUlAOUCEeSXGtGTXahmOw" name="Low"/>
+ <ownedLiteral xmi:id="_sHUlAeUCEeSXGtGTXahmOw" name="Medium"/>
+ <ownedLiteral xmi:id="_sHUlAuUCEeSXGtGTXahmOw" name="High"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_sHUlA-UCEeSXGtGTXahmOw" name="Maturity">
+ <ownedLiteral xmi:id="_sHUlBOUCEeSXGtGTXahmOw" name="Idea"/>
+ <ownedLiteral xmi:id="_sHUlBeUCEeSXGtGTXahmOw" name="Proto"/>
+ <ownedLiteral xmi:id="_sHUlBuUCEeSXGtGTXahmOw" name="Advanced"/>
+ <ownedLiteral xmi:id="_sHVMEOUCEeSXGtGTXahmOw" name="Specification"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_sHVMEeUCEeSXGtGTXahmOw" name="SysMLmodel">
+ <generalization xmi:id="_sHVMEuUCEeSXGtGTXahmOw">
+ <general xmi:type="uml:Stereotype" href="pathmap://SysML_PROFILES/SysML.profile.uml#_xajygLXqEduHWpAaWjM62w"/>
+ </generalization>
+ <ownedAttribute xmi:id="_sHhZUOUCEeSXGtGTXahmOw" name="base_Package" association="_sHgyQOUCEeSXGtGTXahmOw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_sHgyQOUCEeSXGtGTXahmOw" name="Package_SysMLmodel" memberEnd="_sHgyQeUCEeSXGtGTXahmOw _sHhZUOUCEeSXGtGTXahmOw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_sHgyQeUCEeSXGtGTXahmOw" name="extension_SysMLmodel" type="_sHVMEeUCEeSXGtGTXahmOw" aggregation="composite" association="_sHgyQOUCEeSXGtGTXahmOw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_sHhZUeUCEeSXGtGTXahmOw" name="Requirement">
+ <ownedComment xmi:id="_sHincOUCEeSXGtGTXahmOw">
+ <body>no Description</body>
+ </ownedComment>
+ <generalization xmi:id="_sHhZUuUCEeSXGtGTXahmOw">
+ <general xmi:type="uml:Stereotype" href="pathmap://SysML_PROFILES/SysML.profile.uml#_xajygLXqEduHWpAaWjM62w"/>
+ </generalization>
+ <ownedAttribute xmi:id="_sHhZU-UCEeSXGtGTXahmOw" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sHiAYOUCEeSXGtGTXahmOw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_sHinceUCEeSXGtGTXahmOw" name="ReqType1">
+ <ownedComment xmi:id="_sHind-UCEeSXGtGTXahmOw">
+ <body>no Description</body>
+ </ownedComment>
+ <generalization xmi:id="_sHincuUCEeSXGtGTXahmOw">
+ <general xmi:type="uml:Stereotype" href="pathmap://SysML_PROFILES/SysML.profile.uml#_xajygLXqEduHWpAaWjM62w"/>
+ </generalization>
+ <ownedAttribute xmi:id="_sHinc-UCEeSXGtGTXahmOw" name="Attribute1">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sHindOUCEeSXGtGTXahmOw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_sHindeUCEeSXGtGTXahmOw" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sHinduUCEeSXGtGTXahmOw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_sHineOUCEeSXGtGTXahmOw" name="ReqType3">
+ <ownedComment xmi:id="_sHinfuUCEeSXGtGTXahmOw">
+ <body>no Description</body>
+ </ownedComment>
+ <generalization xmi:id="_sHineeUCEeSXGtGTXahmOw">
+ <general xmi:type="uml:Stereotype" href="pathmap://SysML_PROFILES/SysML.profile.uml#_xajygLXqEduHWpAaWjM62w"/>
+ </generalization>
+ <ownedAttribute xmi:id="_sHineuUCEeSXGtGTXahmOw" name="Attribute1">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sHine-UCEeSXGtGTXahmOw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_sHinfOUCEeSXGtGTXahmOw" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sHinfeUCEeSXGtGTXahmOw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_sHinf-UCEeSXGtGTXahmOw" name="ReqType2">
+ <ownedComment xmi:id="_sHjOgeUCEeSXGtGTXahmOw">
+ <body>no Description</body>
+ </ownedComment>
+ <generalization xmi:id="_sHingOUCEeSXGtGTXahmOw">
+ <general xmi:type="uml:Stereotype" href="pathmap://SysML_PROFILES/SysML.profile.uml#_xajygLXqEduHWpAaWjM62w"/>
+ </generalization>
+ <ownedAttribute xmi:id="_sHingeUCEeSXGtGTXahmOw" name="Attribute1">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sHinguUCEeSXGtGTXahmOw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_sHing-UCEeSXGtGTXahmOw" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sHjOgOUCEeSXGtGTXahmOw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_sHjOguUCEeSXGtGTXahmOw" name="ReqType5">
+ <ownedComment xmi:id="_sHjOiuUCEeSXGtGTXahmOw">
+ <body>no Description</body>
+ </ownedComment>
+ <generalization xmi:id="_sHjOg-UCEeSXGtGTXahmOw">
+ <general xmi:type="uml:Stereotype" href="pathmap://SysML_PROFILES/SysML.profile.uml#_xajygLXqEduHWpAaWjM62w"/>
+ </generalization>
+ <ownedAttribute xmi:id="_sHjOhOUCEeSXGtGTXahmOw" name="Attribute1" type="_sHT98eUCEeSXGtGTXahmOw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sHjOheUCEeSXGtGTXahmOw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_sHjOhuUCEeSXGtGTXahmOw" name="Attribute2" type="_sHUlA-UCEeSXGtGTXahmOw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sHjOh-UCEeSXGtGTXahmOw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_sHjOiOUCEeSXGtGTXahmOw" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sHjOieUCEeSXGtGTXahmOw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_sHjOi-UCEeSXGtGTXahmOw" name="ReqType4">
+ <ownedComment xmi:id="_sHjOkeUCEeSXGtGTXahmOw">
+ <body>no Description</body>
+ </ownedComment>
+ <generalization xmi:id="_sHjOjOUCEeSXGtGTXahmOw">
+ <general xmi:type="uml:Stereotype" href="pathmap://SysML_PROFILES/SysML.profile.uml#_xajygLXqEduHWpAaWjM62w"/>
+ </generalization>
+ <ownedAttribute xmi:id="_sHjOjeUCEeSXGtGTXahmOw" name="Attribute1">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sHjOjuUCEeSXGtGTXahmOw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_sHjOj-UCEeSXGtGTXahmOw" name="id">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sHjOkOUCEeSXGtGTXahmOw"/>
+ </ownedAttribute>
+ </packagedElement>
+</uml:Profile>
diff --git a/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/Result-ReimportSpecObject.di b/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/Result-ReimportSpecObject.di
new file mode 100644
index 00000000000..8634d4c00e0
--- /dev/null
+++ b/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/Result-ReimportSpecObject.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/Result-ReimportSpecObject.notation b/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/Result-ReimportSpecObject.notation
new file mode 100644
index 00000000000..8634d4c00e0
--- /dev/null
+++ b/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/Result-ReimportSpecObject.notation
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/Result-ReimportSpecObject.uml b/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/Result-ReimportSpecObject.uml
new file mode 100644
index 00000000000..f1293db09e4
--- /dev/null
+++ b/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/Result-ReimportSpecObject.uml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ReqTypeProfile="http:///schemas/ReqTypeProfile/_sHzGIOUCEeSXGtGTXahmOw/0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http:///schemas/ReqTypeProfile/_sHzGIOUCEeSXGtGTXahmOw/0 ReqTypeProfile.profile.uml#_sH3-oeUCEeSXGtGTXahmOw">
+ <uml:Model xmi:id="_MIKN0CkSEeS95O5erqgRCw" name="SysMLmodel">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_pg4HMOUCEeSXGtGTXahmOw">
+ <body>This model has been generated Fri Apr 17 15:07:06 CEST 2015 from ReqIF file: specObject_1.reqif.
+generated by Papyrus Requirement from exportSpecObject.umlSysMLmodel</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_CsO8YOUDEeSXGtGTXahmOw">
+ <body>This model has been generated Fri Apr 17 15:09:55 CEST 2015 from ReqIF file: specObject_2.reqif.
+generated by Papyrus Requirement from exportSpecObject.umlSysMLmodel</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Package" xmi:id="_sWm-MOUCEeSXGtGTXahmOw" name="SysMLmodel">
+ <packagedElement xmi:type="uml:Class" xmi:id="_sWxWQOUCEeSXGtGTXahmOw" name="Requirement1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sW8VYOUCEeSXGtGTXahmOw" name="Requirement1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sXCcAOUCEeSXGtGTXahmOw" name="Requirement1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sXGtcOUCEeSXGtGTXahmOw" name="Requirement1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sXK-4OUCEeSXGtGTXahmOw" name="Requirement1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sXPQUOUCEeSXGtGTXahmOw" name="Requirement1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sXS6sOUCEeSXGtGTXahmOw" name="Requirement1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sXXMIOUCEeSXGtGTXahmOw" name="Requirement1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sXd50OUCEeSXGtGTXahmOw" name="Requirement1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sXg9IOUCEeSXGtGTXahmOw" name="Requirement1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_DVMZ0OUDEeSXGtGTXahmOw" name="Requirement1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_DVOPAOUDEeSXGtGTXahmOw" name="Requirement1"/>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_MMCoQCkSEeS95O5erqgRCw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MMDPUCkSEeS95O5erqgRCw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_TZ_nULU5EduiKqCzJMWbGw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_MMEdcCkSEeS95O5erqgRCw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MMEdcSkSEeS95O5erqgRCw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//modelelements"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_Gx8MgLX7EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_MMEdcikSEeS95O5erqgRCw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MMFEgCkSEeS95O5erqgRCw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//blocks"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_fSw28LX7EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_MMFEgSkSEeS95O5erqgRCw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MMFEgikSEeS95O5erqgRCw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//portandflows"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_rpx28LX7EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_MMFEgykSEeS95O5erqgRCw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MMFrkCkSEeS95O5erqgRCw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//constraints"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_5WYJ0LX7EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_MMFrkSkSEeS95O5erqgRCw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MMFrkikSEeS95O5erqgRCw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//activities"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_C2zXMLX8EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_MMFrkykSEeS95O5erqgRCw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MMGSoCkSEeS95O5erqgRCw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//allocations"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_NxdG4LX8EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_MMGSoSkSEeS95O5erqgRCw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MMGSoikSEeS95O5erqgRCw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//requirements"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_OOJC4LX8EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_MMG5sCkSEeS95O5erqgRCw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MMG5sSkSEeS95O5erqgRCw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//interactions"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_meOioLX8EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_MMG5sikSEeS95O5erqgRCw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MMG5sykSEeS95O5erqgRCw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//statemachines"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_nAF5kLX8EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_MMHgwCkSEeS95O5erqgRCw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MMHgwSkSEeS95O5erqgRCw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//usecases"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_neZmMLX8EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_sWS1IOUCEeSXGtGTXahmOw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sWWfgOUCEeSXGtGTXahmOw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="ReqTypeProfile.profile.uml#_sH3-oeUCEeSXGtGTXahmOw"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="ReqTypeProfile.profile.uml#_sD_kMOUCEeSXGtGTXahmOw"/>
+ </profileApplication>
+ </uml:Model>
+ <ReqTypeProfile:SysMLmodel xmi:id="_sWqBgOUCEeSXGtGTXahmOw" base_Package="_sWm-MOUCEeSXGtGTXahmOw"/>
+ <ReqTypeProfile:ReqType5 xmi:id="_sW3c4OUCEeSXGtGTXahmOw" text="The text for req1" id="1" base_Class="_sWxWQOUCEeSXGtGTXahmOw"/>
+ <ReqTypeProfile:ReqType5 xmi:id="_sW_YsOUCEeSXGtGTXahmOw" text="The text for req2" id="2" base_Class="_sW8VYOUCEeSXGtGTXahmOw" Attribute1="Medium"/>
+ <ReqTypeProfile:ReqType5 xmi:id="_sXERMOUCEeSXGtGTXahmOw" text="The text for req3" id="3" base_Class="_sXCcAOUCEeSXGtGTXahmOw" Attribute1="High"/>
+ <ReqTypeProfile:ReqType5 xmi:id="_sXIioOUCEeSXGtGTXahmOw" text="The text for req4" id="4" base_Class="_sXGtcOUCEeSXGtGTXahmOw" Attribute1="Medium" Attribute2="Proto"/>
+ <ReqTypeProfile:ReqType5 xmi:id="_sXM0EOUCEeSXGtGTXahmOw" text="The text for req5" id="5" base_Class="_sXK-4OUCEeSXGtGTXahmOw" Attribute1="High" Attribute2="Specification"/>
+ <ReqTypeProfile:ReqType1 xmi:id="_sXRFgOUCEeSXGtGTXahmOw" text="The text for req6" id="6" base_Class="_sXPQUOUCEeSXGtGTXahmOw" Attribute1="test3"/>
+ <ReqTypeProfile:ReqType1 xmi:id="_sXVW8OUCEeSXGtGTXahmOw" text="The text for req7" id="7" base_Class="_sXS6sOUCEeSXGtGTXahmOw" Attribute1="test1"/>
+ <ReqTypeProfile:ReqType1 xmi:id="_sXZoYOUCEeSXGtGTXahmOw" text="The text for req8" id="8" base_Class="_sXXMIOUCEeSXGtGTXahmOw" Attribute1="test2"/>
+ <ReqTypeProfile:ReqType1 xmi:id="_sXfvAOUCEeSXGtGTXahmOw" text="The text for req9" id="9" base_Class="_sXd50OUCEeSXGtGTXahmOw" Attribute1="test4"/>
+ <ReqTypeProfile:ReqType1 xmi:id="_sXiLQOUCEeSXGtGTXahmOw" text="The text for req10" id="10" base_Class="_sXg9IOUCEeSXGtGTXahmOw" Attribute1="test5"/>
+ <ReqTypeProfile:ReqType1 xmi:id="_DVNn8OUDEeSXGtGTXahmOw" text="Added Req11" id="11" base_Class="_DVMZ0OUDEeSXGtGTXahmOw"/>
+ <ReqTypeProfile:ReqType3 xmi:id="_DVPdIOUDEeSXGtGTXahmOw" text="AddedReq12" id="12" base_Class="_DVOPAOUDEeSXGtGTXahmOw"/>
+</xmi:XMI>
diff --git a/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/importSpecObject.di b/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/importSpecObject.di
new file mode 100644
index 00000000000..8634d4c00e0
--- /dev/null
+++ b/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/importSpecObject.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/importSpecObject.notation b/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/importSpecObject.notation
new file mode 100644
index 00000000000..8634d4c00e0
--- /dev/null
+++ b/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/importSpecObject.notation
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/importSpecObject.uml b/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/importSpecObject.uml
new file mode 100644
index 00000000000..7a28702f20a
--- /dev/null
+++ b/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/importSpecObject.uml
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ReqTypeProfile="http:///schemas/ReqTypeProfile/_sHzGIOUCEeSXGtGTXahmOw/0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http:///schemas/ReqTypeProfile/_sHzGIOUCEeSXGtGTXahmOw/0 ReqTypeProfile.profile.uml#_sH3-oeUCEeSXGtGTXahmOw">
+ <uml:Model xmi:id="_MIKN0CkSEeS95O5erqgRCw" name="SysMLmodel">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_pg4HMOUCEeSXGtGTXahmOw">
+ <body>This model has been generated Fri Apr 17 15:07:06 CEST 2015 from ReqIF file: specObject_1.reqif.
+generated by Papyrus Requirement from exportSpecObject.umlSysMLmodel</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Package" xmi:id="_sWm-MOUCEeSXGtGTXahmOw" name="SysMLmodel">
+ <packagedElement xmi:type="uml:Class" xmi:id="_sWxWQOUCEeSXGtGTXahmOw" name="Requirement1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sW8VYOUCEeSXGtGTXahmOw" name="Requirement1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sXCcAOUCEeSXGtGTXahmOw" name="Requirement1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sXGtcOUCEeSXGtGTXahmOw" name="Requirement1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sXK-4OUCEeSXGtGTXahmOw" name="Requirement1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sXPQUOUCEeSXGtGTXahmOw" name="Requirement1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sXS6sOUCEeSXGtGTXahmOw" name="Requirement1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sXXMIOUCEeSXGtGTXahmOw" name="Requirement1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sXd50OUCEeSXGtGTXahmOw" name="Requirement1"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sXg9IOUCEeSXGtGTXahmOw" name="Requirement1"/>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_MMCoQCkSEeS95O5erqgRCw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MMDPUCkSEeS95O5erqgRCw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_TZ_nULU5EduiKqCzJMWbGw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_MMEdcCkSEeS95O5erqgRCw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MMEdcSkSEeS95O5erqgRCw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//modelelements"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_Gx8MgLX7EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_MMEdcikSEeS95O5erqgRCw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MMFEgCkSEeS95O5erqgRCw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//blocks"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_fSw28LX7EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_MMFEgSkSEeS95O5erqgRCw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MMFEgikSEeS95O5erqgRCw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//portandflows"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_rpx28LX7EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_MMFEgykSEeS95O5erqgRCw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MMFrkCkSEeS95O5erqgRCw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//constraints"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_5WYJ0LX7EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_MMFrkSkSEeS95O5erqgRCw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MMFrkikSEeS95O5erqgRCw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//activities"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_C2zXMLX8EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_MMFrkykSEeS95O5erqgRCw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MMGSoCkSEeS95O5erqgRCw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//allocations"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_NxdG4LX8EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_MMGSoSkSEeS95O5erqgRCw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MMGSoikSEeS95O5erqgRCw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//requirements"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_OOJC4LX8EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_MMG5sCkSEeS95O5erqgRCw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MMG5sSkSEeS95O5erqgRCw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//interactions"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_meOioLX8EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_MMG5sikSEeS95O5erqgRCw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MMG5sykSEeS95O5erqgRCw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//statemachines"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_nAF5kLX8EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_MMHgwCkSEeS95O5erqgRCw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MMHgwSkSEeS95O5erqgRCw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/0.7.0/SysML#//usecases"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML_PROFILES/SysML.profile.uml#_neZmMLX8EduFmqQsrNB9lw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_sWS1IOUCEeSXGtGTXahmOw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sWWfgOUCEeSXGtGTXahmOw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="ReqTypeProfile.profile.uml#_sH3-oeUCEeSXGtGTXahmOw"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="ReqTypeProfile.profile.uml#_sD_kMOUCEeSXGtGTXahmOw"/>
+ </profileApplication>
+ </uml:Model>
+ <ReqTypeProfile:SysMLmodel xmi:id="_sWqBgOUCEeSXGtGTXahmOw" base_Package="_sWm-MOUCEeSXGtGTXahmOw"/>
+ <ReqTypeProfile:ReqType5 xmi:id="_sW3c4OUCEeSXGtGTXahmOw" text="The text for req1" id="1" base_Class="_sWxWQOUCEeSXGtGTXahmOw"/>
+ <ReqTypeProfile:ReqType5 xmi:id="_sW_YsOUCEeSXGtGTXahmOw" text="The text for req2" id="2" base_Class="_sW8VYOUCEeSXGtGTXahmOw" Attribute1="Medium"/>
+ <ReqTypeProfile:ReqType5 xmi:id="_sXERMOUCEeSXGtGTXahmOw" text="The text for req3" id="3" base_Class="_sXCcAOUCEeSXGtGTXahmOw" Attribute1="High"/>
+ <ReqTypeProfile:ReqType5 xmi:id="_sXIioOUCEeSXGtGTXahmOw" text="The text for req4" id="4" base_Class="_sXGtcOUCEeSXGtGTXahmOw" Attribute1="Medium" Attribute2="Proto"/>
+ <ReqTypeProfile:ReqType5 xmi:id="_sXM0EOUCEeSXGtGTXahmOw" text="The text for req5" id="5" base_Class="_sXK-4OUCEeSXGtGTXahmOw" Attribute1="High" Attribute2="Specification"/>
+ <ReqTypeProfile:ReqType1 xmi:id="_sXRFgOUCEeSXGtGTXahmOw" text="The text for req6" id="6" base_Class="_sXPQUOUCEeSXGtGTXahmOw" Attribute1="test3"/>
+ <ReqTypeProfile:ReqType1 xmi:id="_sXVW8OUCEeSXGtGTXahmOw" text="The text for req7" id="7" base_Class="_sXS6sOUCEeSXGtGTXahmOw" Attribute1="test1"/>
+ <ReqTypeProfile:ReqType1 xmi:id="_sXZoYOUCEeSXGtGTXahmOw" text="The text for req8" id="8" base_Class="_sXXMIOUCEeSXGtGTXahmOw" Attribute1="test2"/>
+ <ReqTypeProfile:ReqType1 xmi:id="_sXfvAOUCEeSXGtGTXahmOw" text="The text for req9" id="9" base_Class="_sXd50OUCEeSXGtGTXahmOw" Attribute1="test4"/>
+ <ReqTypeProfile:ReqType1 xmi:id="_sXiLQOUCEeSXGtGTXahmOw" text="The text for req10" id="10" base_Class="_sXg9IOUCEeSXGtGTXahmOw" Attribute1="test5"/>
+</xmi:XMI>
diff --git a/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/specObject_1.reqif b/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/specObject_1.reqif
new file mode 100644
index 00000000000..d1848207055
--- /dev/null
+++ b/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/specObject_1.reqif
@@ -0,0 +1,573 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<REQ-IF xmlns="http://www.omg.org/spec/ReqIF/20110401/reqif.xsd" xmlns:configuration="http://eclipse.org/rmf/pror/toolextensions/1.0">
+ <THE-HEADER>
+ <REQ-IF-HEADER IDENTIFIER="rmf-2f89854f-87fd-46ca-b1d9-0496b8fcce4e">
+ <COMMENT>generated by Papyrus Requirement from exportSpecObject.uml</COMMENT>
+ <CREATION-TIME>2014-08-20T15:13:06.547+02:00</CREATION-TIME>
+ <REQ-IF-TOOL-ID>Papyrus Req</REQ-IF-TOOL-ID>
+ <REQ-IF-VERSION>1.0.1</REQ-IF-VERSION>
+ <SOURCE-TOOL-ID>Papyrus Req</SOURCE-TOOL-ID>
+ <TITLE>SysMLmodel</TITLE>
+ </REQ-IF-HEADER>
+ </THE-HEADER>
+ <CORE-CONTENT>
+ <REQ-IF-CONTENT>
+ <DATATYPES>
+ <DATATYPE-DEFINITION-STRING DESC="String that been written by Papyrus Req" IDENTIFIER="_uWziUChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.548+02:00" LONG-NAME="String" MAX-LENGTH="2147483647"/>
+ <DATATYPE-DEFINITION-BOOLEAN DESC="Boolean that been written by Papyrus Req" IDENTIFIER="_uWziUShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.549+02:00" LONG-NAME="Boolean"/>
+ <DATATYPE-DEFINITION-REAL DESC="Real that been written by Papyrus Req" IDENTIFIER="_uWziUihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.549+02:00" LONG-NAME="Real" ACCURACY="64" MAX="1.7976931348623157E308" MIN="4.9E-324"/>
+ <DATATYPE-DEFINITION-INTEGER DESC="Integer that been written by Papyrus Req" IDENTIFIER="_uWziUyhrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.549+02:00" LONG-NAME="Integer" MAX="2147483647" MIN="-2147483648"/>
+ <DATATYPE-DEFINITION-XHTML DESC="XHTML that been written by Papyrus Req" IDENTIFIER="_uWziVChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.549+02:00" LONG-NAME="XHTML"/>
+ <DATATYPE-DEFINITION-ENUMERATION IDENTIFIER="_uXKHoChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.585+02:00" LONG-NAME="Importance">
+ <SPECIFIED-VALUES>
+ <ENUM-VALUE IDENTIFIER="_uXKHoShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="Low">
+ <PROPERTIES>
+ <EMBEDDED-VALUE KEY="0" OTHER-CONTENT="Importance_Low"/>
+ </PROPERTIES>
+ </ENUM-VALUE>
+ <ENUM-VALUE IDENTIFIER="_uXKHoihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="Medium">
+ <PROPERTIES>
+ <EMBEDDED-VALUE KEY="1" OTHER-CONTENT="Importance_Medium"/>
+ </PROPERTIES>
+ </ENUM-VALUE>
+ <ENUM-VALUE IDENTIFIER="_uXKHoyhrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="High">
+ <PROPERTIES>
+ <EMBEDDED-VALUE KEY="2" OTHER-CONTENT="Importance_High"/>
+ </PROPERTIES>
+ </ENUM-VALUE>
+ </SPECIFIED-VALUES>
+ </DATATYPE-DEFINITION-ENUMERATION>
+ <DATATYPE-DEFINITION-ENUMERATION IDENTIFIER="_uXKHpChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="FlowDirection">
+ <SPECIFIED-VALUES>
+ <ENUM-VALUE IDENTIFIER="_uXKHpShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="in">
+ <PROPERTIES>
+ <EMBEDDED-VALUE KEY="0" OTHER-CONTENT="FlowDirection_in"/>
+ </PROPERTIES>
+ </ENUM-VALUE>
+ <ENUM-VALUE IDENTIFIER="_uXKHpihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="out">
+ <PROPERTIES>
+ <EMBEDDED-VALUE KEY="1" OTHER-CONTENT="FlowDirection_out"/>
+ </PROPERTIES>
+ </ENUM-VALUE>
+ <ENUM-VALUE IDENTIFIER="_uXKHpyhrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="inout">
+ <PROPERTIES>
+ <EMBEDDED-VALUE KEY="2" OTHER-CONTENT="FlowDirection_inout"/>
+ </PROPERTIES>
+ </ENUM-VALUE>
+ </SPECIFIED-VALUES>
+ </DATATYPE-DEFINITION-ENUMERATION>
+ <DATATYPE-DEFINITION-ENUMERATION IDENTIFIER="_uXKHqChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="Maturity">
+ <SPECIFIED-VALUES>
+ <ENUM-VALUE IDENTIFIER="_uXKHqShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="Idea">
+ <PROPERTIES>
+ <EMBEDDED-VALUE KEY="0" OTHER-CONTENT="Maturity_Idea"/>
+ </PROPERTIES>
+ </ENUM-VALUE>
+ <ENUM-VALUE IDENTIFIER="_uXKHqihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="Proto">
+ <PROPERTIES>
+ <EMBEDDED-VALUE KEY="1" OTHER-CONTENT="Maturity_Proto"/>
+ </PROPERTIES>
+ </ENUM-VALUE>
+ <ENUM-VALUE IDENTIFIER="_uXKHqyhrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="Advanced">
+ <PROPERTIES>
+ <EMBEDDED-VALUE KEY="2" OTHER-CONTENT="Maturity_Advanced"/>
+ </PROPERTIES>
+ </ENUM-VALUE>
+ <ENUM-VALUE IDENTIFIER="_uXKHrChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="Specification">
+ <PROPERTIES>
+ <EMBEDDED-VALUE KEY="3" OTHER-CONTENT="Maturity_Specification"/>
+ </PROPERTIES>
+ </ENUM-VALUE>
+ </SPECIFIED-VALUES>
+ </DATATYPE-DEFINITION-ENUMERATION>
+ </DATATYPES>
+ <SPEC-TYPES>
+ <SPEC-OBJECT-TYPE DESC="no Description" IDENTIFIER="_uXKHrShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="Requirement">
+ <SPEC-ATTRIBUTES>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKHrihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="text" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKusChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="id" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ </SPEC-ATTRIBUTES>
+ </SPEC-OBJECT-TYPE>
+ <SPEC-OBJECT-TYPE DESC="no Description" IDENTIFIER="_uXKusShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="ReqType1">
+ <SPEC-ATTRIBUTES>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKusihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="Attribute1" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKusyhrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="text" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKutChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="id" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ </SPEC-ATTRIBUTES>
+ </SPEC-OBJECT-TYPE>
+ <SPEC-OBJECT-TYPE DESC="no Description" IDENTIFIER="_uXKutShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="ReqType3">
+ <SPEC-ATTRIBUTES>
+ <ATTRIBUTE-DEFINITION-BOOLEAN IDENTIFIER="_uXKutihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="Attribute1" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-BOOLEAN-REF>_uWziUShrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-BOOLEAN-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-BOOLEAN>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKutyhrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="text" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKuuChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="id" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ </SPEC-ATTRIBUTES>
+ </SPEC-OBJECT-TYPE>
+ <SPEC-OBJECT-TYPE DESC="no Description" IDENTIFIER="_uXKuuShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="ReqType2">
+ <SPEC-ATTRIBUTES>
+ <ATTRIBUTE-DEFINITION-INTEGER IDENTIFIER="_uXKuuihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="Attribute1" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-INTEGER-REF>_uWziUyhrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-INTEGER-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-INTEGER>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKuuyhrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="text" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKuvChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="id" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ </SPEC-ATTRIBUTES>
+ </SPEC-OBJECT-TYPE>
+ <SPEC-OBJECT-TYPE DESC="no Description" IDENTIFIER="_uXKuvShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="ReqType5">
+ <SPEC-ATTRIBUTES>
+ <ATTRIBUTE-DEFINITION-ENUMERATION IDENTIFIER="_uXKuvihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="Attribute1" IS-EDITABLE="true" MULTI-VALUED="false">
+ <TYPE>
+ <DATATYPE-DEFINITION-ENUMERATION-REF>_uXKHoChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-ENUMERATION-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-ENUMERATION>
+ <ATTRIBUTE-DEFINITION-ENUMERATION IDENTIFIER="_uXKuvyhrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="Attribute2" IS-EDITABLE="true" MULTI-VALUED="false">
+ <TYPE>
+ <DATATYPE-DEFINITION-ENUMERATION-REF>_uXKHqChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-ENUMERATION-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-ENUMERATION>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKuwChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="text" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKuwShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="id" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ </SPEC-ATTRIBUTES>
+ </SPEC-OBJECT-TYPE>
+ <SPEC-OBJECT-TYPE DESC="no Description" IDENTIFIER="_uXKuwihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="ReqType4">
+ <SPEC-ATTRIBUTES>
+ <ATTRIBUTE-DEFINITION-REAL IDENTIFIER="_uXKuwyhrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="Attribute1" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-REAL-REF>_uWziUihrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-REAL-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-REAL>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKuxChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="text" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKuxShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="id" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ </SPEC-ATTRIBUTES>
+ </SPEC-OBJECT-TYPE>
+ <SPECIFICATION-TYPE IDENTIFIER="_uXLVwChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.588+02:00" LONG-NAME="SysMLmodel"/>
+ </SPEC-TYPES>
+ <SPEC-OBJECTS>
+ <SPEC-OBJECT IDENTIFIER="_uXLVwihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.588+02:00" LONG-NAME="Req_0">
+ <VALUES>
+ <ATTRIBUTE-VALUE-ENUMERATION>
+ <VALUES>
+ <ENUM-VALUE-REF>_uXKHoShrEeSMW_x_2UpqNQ</ENUM-VALUE-REF>
+ </VALUES>
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-ENUMERATION-REF>_uXKuvihrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-ENUMERATION-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-ENUMERATION>
+ <ATTRIBUTE-VALUE-ENUMERATION>
+ <VALUES>
+ <ENUM-VALUE-REF>_uXKHqShrEeSMW_x_2UpqNQ</ENUM-VALUE-REF>
+ </VALUES>
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-ENUMERATION-REF>_uXKuvyhrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-ENUMERATION-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-ENUMERATION>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="1">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKuwShrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="The text for req1">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKuwChrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ </VALUES>
+ <TYPE>
+ <SPEC-OBJECT-TYPE-REF>_uXKuvShrEeSMW_x_2UpqNQ</SPEC-OBJECT-TYPE-REF>
+ </TYPE>
+ </SPEC-OBJECT>
+ <SPEC-OBJECT IDENTIFIER="_uXL80ShrEeSMW_x_2UpqNQ" LAST-CHANGE="2015-04-09T15:03:11.716+02:00" LONG-NAME="Req_1">
+ <VALUES>
+ <ATTRIBUTE-VALUE-ENUMERATION>
+ <VALUES>
+ <ENUM-VALUE-REF>_uXKHoihrEeSMW_x_2UpqNQ</ENUM-VALUE-REF>
+ </VALUES>
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-ENUMERATION-REF>_uXKuvihrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-ENUMERATION-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-ENUMERATION>
+ <ATTRIBUTE-VALUE-ENUMERATION>
+ <VALUES>
+ <ENUM-VALUE-REF>_uXKHqShrEeSMW_x_2UpqNQ</ENUM-VALUE-REF>
+ </VALUES>
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-ENUMERATION-REF>_uXKuvyhrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-ENUMERATION-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-ENUMERATION>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="2">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKuwShrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="The text for req2">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKuwChrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ </VALUES>
+ <TYPE>
+ <SPEC-OBJECT-TYPE-REF>_uXKuvShrEeSMW_x_2UpqNQ</SPEC-OBJECT-TYPE-REF>
+ </TYPE>
+ </SPEC-OBJECT>
+ <SPEC-OBJECT IDENTIFIER="_uXL80yhrEeSMW_x_2UpqNQ" LAST-CHANGE="2015-04-09T15:03:15.228+02:00" LONG-NAME="Req_2">
+ <VALUES>
+ <ATTRIBUTE-VALUE-ENUMERATION>
+ <VALUES>
+ <ENUM-VALUE-REF>_uXKHoyhrEeSMW_x_2UpqNQ</ENUM-VALUE-REF>
+ </VALUES>
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-ENUMERATION-REF>_uXKuvihrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-ENUMERATION-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-ENUMERATION>
+ <ATTRIBUTE-VALUE-ENUMERATION>
+ <VALUES>
+ <ENUM-VALUE-REF>_uXKHqShrEeSMW_x_2UpqNQ</ENUM-VALUE-REF>
+ </VALUES>
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-ENUMERATION-REF>_uXKuvyhrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-ENUMERATION-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-ENUMERATION>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="3">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKuwShrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="The text for req3">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKuwChrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ </VALUES>
+ <TYPE>
+ <SPEC-OBJECT-TYPE-REF>_uXKuvShrEeSMW_x_2UpqNQ</SPEC-OBJECT-TYPE-REF>
+ </TYPE>
+ </SPEC-OBJECT>
+ <SPEC-OBJECT IDENTIFIER="_uXL81ShrEeSMW_x_2UpqNQ" LAST-CHANGE="2015-04-09T15:03:18.504+02:00" LONG-NAME="Req_3">
+ <VALUES>
+ <ATTRIBUTE-VALUE-ENUMERATION>
+ <VALUES>
+ <ENUM-VALUE-REF>_uXKHoihrEeSMW_x_2UpqNQ</ENUM-VALUE-REF>
+ </VALUES>
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-ENUMERATION-REF>_uXKuvihrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-ENUMERATION-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-ENUMERATION>
+ <ATTRIBUTE-VALUE-ENUMERATION>
+ <VALUES>
+ <ENUM-VALUE-REF>_uXKHqihrEeSMW_x_2UpqNQ</ENUM-VALUE-REF>
+ </VALUES>
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-ENUMERATION-REF>_uXKuvyhrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-ENUMERATION-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-ENUMERATION>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="4">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKuwShrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="The text for req4">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKuwChrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ </VALUES>
+ <TYPE>
+ <SPEC-OBJECT-TYPE-REF>_uXKuvShrEeSMW_x_2UpqNQ</SPEC-OBJECT-TYPE-REF>
+ </TYPE>
+ </SPEC-OBJECT>
+ <SPEC-OBJECT IDENTIFIER="_uXMj4ShrEeSMW_x_2UpqNQ" LAST-CHANGE="2015-04-09T15:03:22.265+02:00" LONG-NAME="Req_4">
+ <VALUES>
+ <ATTRIBUTE-VALUE-ENUMERATION>
+ <VALUES>
+ <ENUM-VALUE-REF>_uXKHoyhrEeSMW_x_2UpqNQ</ENUM-VALUE-REF>
+ </VALUES>
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-ENUMERATION-REF>_uXKuvihrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-ENUMERATION-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-ENUMERATION>
+ <ATTRIBUTE-VALUE-ENUMERATION>
+ <VALUES>
+ <ENUM-VALUE-REF>_uXKHrChrEeSMW_x_2UpqNQ</ENUM-VALUE-REF>
+ </VALUES>
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-ENUMERATION-REF>_uXKuvyhrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-ENUMERATION-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-ENUMERATION>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="5">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKuwShrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="The text for req5">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKuwChrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ </VALUES>
+ <TYPE>
+ <SPEC-OBJECT-TYPE-REF>_uXKuvShrEeSMW_x_2UpqNQ</SPEC-OBJECT-TYPE-REF>
+ </TYPE>
+ </SPEC-OBJECT>
+ <SPEC-OBJECT IDENTIFIER="_uXMj4yhrEeSMW_x_2UpqNQ" LAST-CHANGE="2015-04-09T15:03:27.008+02:00" LONG-NAME="Req_5">
+ <VALUES>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="test3">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKusihrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="6">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKutChrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="The text for req6">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKusyhrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ </VALUES>
+ <TYPE>
+ <SPEC-OBJECT-TYPE-REF>_uXKusShrEeSMW_x_2UpqNQ</SPEC-OBJECT-TYPE-REF>
+ </TYPE>
+ </SPEC-OBJECT>
+ <SPEC-OBJECT IDENTIFIER="_uXMj5ShrEeSMW_x_2UpqNQ" LAST-CHANGE="2015-04-09T15:03:30.378+02:00" LONG-NAME="Req_6">
+ <VALUES>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="test1">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKusihrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="7">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKutChrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="The text for req7">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKusyhrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ </VALUES>
+ <TYPE>
+ <SPEC-OBJECT-TYPE-REF>_uXKusShrEeSMW_x_2UpqNQ</SPEC-OBJECT-TYPE-REF>
+ </TYPE>
+ </SPEC-OBJECT>
+ <SPEC-OBJECT IDENTIFIER="_uXMj5yhrEeSMW_x_2UpqNQ" LAST-CHANGE="2015-04-09T15:03:33.966+02:00" LONG-NAME="Req_7">
+ <VALUES>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="test2">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKusihrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="8">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKutChrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="The text for req8">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKusyhrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ </VALUES>
+ <TYPE>
+ <SPEC-OBJECT-TYPE-REF>_uXKusShrEeSMW_x_2UpqNQ</SPEC-OBJECT-TYPE-REF>
+ </TYPE>
+ </SPEC-OBJECT>
+ <SPEC-OBJECT IDENTIFIER="_uXMj6ShrEeSMW_x_2UpqNQ" LAST-CHANGE="2015-04-09T15:03:38.864+02:00" LONG-NAME="Req_8">
+ <VALUES>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="test4">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKusihrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="9">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKutChrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="The text for req9">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKusyhrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ </VALUES>
+ <TYPE>
+ <SPEC-OBJECT-TYPE-REF>_uXKusShrEeSMW_x_2UpqNQ</SPEC-OBJECT-TYPE-REF>
+ </TYPE>
+ </SPEC-OBJECT>
+ <SPEC-OBJECT IDENTIFIER="_uXNK8ShrEeSMW_x_2UpqNQ" LAST-CHANGE="2015-04-09T15:03:42.100+02:00" LONG-NAME="Req_9">
+ <VALUES>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="test5">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKusihrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="10">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKutChrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="The text for req10">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKusyhrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ </VALUES>
+ <TYPE>
+ <SPEC-OBJECT-TYPE-REF>_uXKusShrEeSMW_x_2UpqNQ</SPEC-OBJECT-TYPE-REF>
+ </TYPE>
+ </SPEC-OBJECT>
+ </SPEC-OBJECTS>
+ <SPECIFICATIONS>
+ <SPECIFICATION IDENTIFIER="_uXLVwShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.588+02:00" LONG-NAME="SysMLmodel">
+ <TYPE>
+ <SPECIFICATION-TYPE-REF>_uXLVwChrEeSMW_x_2UpqNQ</SPECIFICATION-TYPE-REF>
+ </TYPE>
+ <CHILDREN>
+ <SPEC-HIERARCHY IDENTIFIER="_uXL80ChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.588+02:00">
+ <OBJECT>
+ <SPEC-OBJECT-REF>_uXLVwihrEeSMW_x_2UpqNQ</SPEC-OBJECT-REF>
+ </OBJECT>
+ </SPEC-HIERARCHY>
+ <SPEC-HIERARCHY IDENTIFIER="_uXL80ihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.589+02:00">
+ <OBJECT>
+ <SPEC-OBJECT-REF>_uXL80ShrEeSMW_x_2UpqNQ</SPEC-OBJECT-REF>
+ </OBJECT>
+ </SPEC-HIERARCHY>
+ <SPEC-HIERARCHY IDENTIFIER="_uXL81ChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.589+02:00">
+ <OBJECT>
+ <SPEC-OBJECT-REF>_uXL80yhrEeSMW_x_2UpqNQ</SPEC-OBJECT-REF>
+ </OBJECT>
+ </SPEC-HIERARCHY>
+ <SPEC-HIERARCHY IDENTIFIER="_uXMj4ChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.589+02:00">
+ <OBJECT>
+ <SPEC-OBJECT-REF>_uXL81ShrEeSMW_x_2UpqNQ</SPEC-OBJECT-REF>
+ </OBJECT>
+ </SPEC-HIERARCHY>
+ <SPEC-HIERARCHY IDENTIFIER="_uXMj4ihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.590+02:00">
+ <OBJECT>
+ <SPEC-OBJECT-REF>_uXMj4ShrEeSMW_x_2UpqNQ</SPEC-OBJECT-REF>
+ </OBJECT>
+ </SPEC-HIERARCHY>
+ <SPEC-HIERARCHY IDENTIFIER="_uXMj5ChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.590+02:00">
+ <OBJECT>
+ <SPEC-OBJECT-REF>_uXMj4yhrEeSMW_x_2UpqNQ</SPEC-OBJECT-REF>
+ </OBJECT>
+ </SPEC-HIERARCHY>
+ <SPEC-HIERARCHY IDENTIFIER="_uXMj5ihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.590+02:00">
+ <OBJECT>
+ <SPEC-OBJECT-REF>_uXMj5ShrEeSMW_x_2UpqNQ</SPEC-OBJECT-REF>
+ </OBJECT>
+ </SPEC-HIERARCHY>
+ <SPEC-HIERARCHY IDENTIFIER="_uXMj6ChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.590+02:00">
+ <OBJECT>
+ <SPEC-OBJECT-REF>_uXMj5yhrEeSMW_x_2UpqNQ</SPEC-OBJECT-REF>
+ </OBJECT>
+ </SPEC-HIERARCHY>
+ <SPEC-HIERARCHY IDENTIFIER="_uXNK8ChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.590+02:00">
+ <OBJECT>
+ <SPEC-OBJECT-REF>_uXMj6ShrEeSMW_x_2UpqNQ</SPEC-OBJECT-REF>
+ </OBJECT>
+ </SPEC-HIERARCHY>
+ <SPEC-HIERARCHY IDENTIFIER="_uXNK8ihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.591+02:00">
+ <OBJECT>
+ <SPEC-OBJECT-REF>_uXNK8ShrEeSMW_x_2UpqNQ</SPEC-OBJECT-REF>
+ </OBJECT>
+ </SPEC-HIERARCHY>
+ </CHILDREN>
+ </SPECIFICATION>
+ </SPECIFICATIONS>
+ </REQ-IF-CONTENT>
+ </CORE-CONTENT>
+ <TOOL-EXTENSIONS>
+ <REQ-IF-TOOL-EXTENSION>
+ <configuration:ProrToolExtension>
+ <configuration:specViewConfigurations>
+ <configuration:ProrSpecViewConfiguration specification="_uXLVwShrEeSMW_x_2UpqNQ">
+ <configuration:columns>
+ <configuration:Column label="Attribute2" width="100"/>
+ <configuration:Column label="Attribute1" width="100"/>
+ <configuration:Column label="text" width="100"/>
+ <configuration:Column label="id" width="100"/>
+ </configuration:columns>
+ <configuration:leftHeaderColumn>
+ <configuration:Column label="Lead Header Column" width="30"/>
+ </configuration:leftHeaderColumn>
+ </configuration:ProrSpecViewConfiguration>
+ </configuration:specViewConfigurations>
+ <configuration:generalConfiguration>
+ <configuration:ProrGeneralConfiguration>
+ <configuration:labelConfiguration>
+ <configuration:LabelConfiguration>
+ <defaultLabel>ReqIF.ChapterNumber</defaultLabel>
+ <defaultLabel>ReqIF.ChapterName</defaultLabel>
+ <defaultLabel>ReqIF.Name</defaultLabel>
+ <defaultLabel>ReqIF.Text</defaultLabel>
+ <defaultLabel>ID</defaultLabel>
+ <defaultLabel>Name</defaultLabel>
+ <defaultLabel>Description</defaultLabel>
+ </configuration:LabelConfiguration>
+ </configuration:labelConfiguration>
+ </configuration:ProrGeneralConfiguration>
+ </configuration:generalConfiguration>
+ </configuration:ProrToolExtension>
+ </REQ-IF-TOOL-EXTENSION>
+ </TOOL-EXTENSIONS>
+</REQ-IF>
diff --git a/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/specObject_2.reqif b/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/specObject_2.reqif
new file mode 100644
index 00000000000..4074163057f
--- /dev/null
+++ b/tests/recipes/extraplugins/uml/org.eclipse.papyrus.req.reqif.test/models/re-import/addedSubReq/specObject_2.reqif
@@ -0,0 +1,626 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<REQ-IF xmlns="http://www.omg.org/spec/ReqIF/20110401/reqif.xsd" xmlns:configuration="http://eclipse.org/rmf/pror/toolextensions/1.0">
+ <THE-HEADER>
+ <REQ-IF-HEADER IDENTIFIER="rmf-679c76df-5b8e-4e29-8351-099ff8ba0afe">
+ <COMMENT>generated by Papyrus Requirement from exportSpecObject.uml</COMMENT>
+ <CREATION-TIME>2014-08-20T15:13:06.547+02:00</CREATION-TIME>
+ <REQ-IF-TOOL-ID>Papyrus Req</REQ-IF-TOOL-ID>
+ <REQ-IF-VERSION>1.0.1</REQ-IF-VERSION>
+ <SOURCE-TOOL-ID>Papyrus Req</SOURCE-TOOL-ID>
+ <TITLE>SysMLmodel</TITLE>
+ </REQ-IF-HEADER>
+ </THE-HEADER>
+ <CORE-CONTENT>
+ <REQ-IF-CONTENT>
+ <DATATYPES>
+ <DATATYPE-DEFINITION-STRING DESC="String that been written by Papyrus Req" IDENTIFIER="_uWziUChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.548+02:00" LONG-NAME="String" MAX-LENGTH="2147483647"/>
+ <DATATYPE-DEFINITION-BOOLEAN DESC="Boolean that been written by Papyrus Req" IDENTIFIER="_uWziUShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.549+02:00" LONG-NAME="Boolean"/>
+ <DATATYPE-DEFINITION-REAL DESC="Real that been written by Papyrus Req" IDENTIFIER="_uWziUihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.549+02:00" LONG-NAME="Real" ACCURACY="64" MAX="1.7976931348623157E308" MIN="4.9E-324"/>
+ <DATATYPE-DEFINITION-INTEGER DESC="Integer that been written by Papyrus Req" IDENTIFIER="_uWziUyhrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.549+02:00" LONG-NAME="Integer" MAX="2147483647" MIN="-2147483648"/>
+ <DATATYPE-DEFINITION-XHTML DESC="XHTML that been written by Papyrus Req" IDENTIFIER="_uWziVChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.549+02:00" LONG-NAME="XHTML"/>
+ <DATATYPE-DEFINITION-ENUMERATION IDENTIFIER="_uXKHoChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.585+02:00" LONG-NAME="Importance">
+ <SPECIFIED-VALUES>
+ <ENUM-VALUE IDENTIFIER="_uXKHoShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="Low">
+ <PROPERTIES>
+ <EMBEDDED-VALUE KEY="0" OTHER-CONTENT="Importance_Low"/>
+ </PROPERTIES>
+ </ENUM-VALUE>
+ <ENUM-VALUE IDENTIFIER="_uXKHoihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="Medium">
+ <PROPERTIES>
+ <EMBEDDED-VALUE KEY="1" OTHER-CONTENT="Importance_Medium"/>
+ </PROPERTIES>
+ </ENUM-VALUE>
+ <ENUM-VALUE IDENTIFIER="_uXKHoyhrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="High">
+ <PROPERTIES>
+ <EMBEDDED-VALUE KEY="2" OTHER-CONTENT="Importance_High"/>
+ </PROPERTIES>
+ </ENUM-VALUE>
+ </SPECIFIED-VALUES>
+ </DATATYPE-DEFINITION-ENUMERATION>
+ <DATATYPE-DEFINITION-ENUMERATION IDENTIFIER="_uXKHpChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="FlowDirection">
+ <SPECIFIED-VALUES>
+ <ENUM-VALUE IDENTIFIER="_uXKHpShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="in">
+ <PROPERTIES>
+ <EMBEDDED-VALUE KEY="0" OTHER-CONTENT="FlowDirection_in"/>
+ </PROPERTIES>
+ </ENUM-VALUE>
+ <ENUM-VALUE IDENTIFIER="_uXKHpihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="out">
+ <PROPERTIES>
+ <EMBEDDED-VALUE KEY="1" OTHER-CONTENT="FlowDirection_out"/>
+ </PROPERTIES>
+ </ENUM-VALUE>
+ <ENUM-VALUE IDENTIFIER="_uXKHpyhrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="inout">
+ <PROPERTIES>
+ <EMBEDDED-VALUE KEY="2" OTHER-CONTENT="FlowDirection_inout"/>
+ </PROPERTIES>
+ </ENUM-VALUE>
+ </SPECIFIED-VALUES>
+ </DATATYPE-DEFINITION-ENUMERATION>
+ <DATATYPE-DEFINITION-ENUMERATION IDENTIFIER="_uXKHqChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="Maturity">
+ <SPECIFIED-VALUES>
+ <ENUM-VALUE IDENTIFIER="_uXKHqShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="Idea">
+ <PROPERTIES>
+ <EMBEDDED-VALUE KEY="0" OTHER-CONTENT="Maturity_Idea"/>
+ </PROPERTIES>
+ </ENUM-VALUE>
+ <ENUM-VALUE IDENTIFIER="_uXKHqihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="Proto">
+ <PROPERTIES>
+ <EMBEDDED-VALUE KEY="1" OTHER-CONTENT="Maturity_Proto"/>
+ </PROPERTIES>
+ </ENUM-VALUE>
+ <ENUM-VALUE IDENTIFIER="_uXKHqyhrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="Advanced">
+ <PROPERTIES>
+ <EMBEDDED-VALUE KEY="2" OTHER-CONTENT="Maturity_Advanced"/>
+ </PROPERTIES>
+ </ENUM-VALUE>
+ <ENUM-VALUE IDENTIFIER="_uXKHrChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="Specification">
+ <PROPERTIES>
+ <EMBEDDED-VALUE KEY="3" OTHER-CONTENT="Maturity_Specification"/>
+ </PROPERTIES>
+ </ENUM-VALUE>
+ </SPECIFIED-VALUES>
+ </DATATYPE-DEFINITION-ENUMERATION>
+ </DATATYPES>
+ <SPEC-TYPES>
+ <SPEC-OBJECT-TYPE DESC="no Description" IDENTIFIER="_uXKHrShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="Requirement">
+ <SPEC-ATTRIBUTES>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKHrihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="text" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKusChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.586+02:00" LONG-NAME="id" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ </SPEC-ATTRIBUTES>
+ </SPEC-OBJECT-TYPE>
+ <SPEC-OBJECT-TYPE DESC="no Description" IDENTIFIER="_uXKusShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="ReqType1">
+ <SPEC-ATTRIBUTES>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKusihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="Attribute1" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKusyhrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="text" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKutChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="id" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ </SPEC-ATTRIBUTES>
+ </SPEC-OBJECT-TYPE>
+ <SPEC-OBJECT-TYPE DESC="no Description" IDENTIFIER="_uXKutShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="ReqType3">
+ <SPEC-ATTRIBUTES>
+ <ATTRIBUTE-DEFINITION-BOOLEAN IDENTIFIER="_uXKutihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="Attribute1" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-BOOLEAN-REF>_uWziUShrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-BOOLEAN-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-BOOLEAN>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKutyhrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="text" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKuuChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="id" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ </SPEC-ATTRIBUTES>
+ </SPEC-OBJECT-TYPE>
+ <SPEC-OBJECT-TYPE DESC="no Description" IDENTIFIER="_uXKuuShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="ReqType2">
+ <SPEC-ATTRIBUTES>
+ <ATTRIBUTE-DEFINITION-INTEGER IDENTIFIER="_uXKuuihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="Attribute1" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-INTEGER-REF>_uWziUyhrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-INTEGER-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-INTEGER>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKuuyhrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="text" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKuvChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="id" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ </SPEC-ATTRIBUTES>
+ </SPEC-OBJECT-TYPE>
+ <SPEC-OBJECT-TYPE DESC="no Description" IDENTIFIER="_uXKuvShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="ReqType5">
+ <SPEC-ATTRIBUTES>
+ <ATTRIBUTE-DEFINITION-ENUMERATION IDENTIFIER="_uXKuvihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="Attribute1" IS-EDITABLE="true" MULTI-VALUED="false">
+ <TYPE>
+ <DATATYPE-DEFINITION-ENUMERATION-REF>_uXKHoChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-ENUMERATION-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-ENUMERATION>
+ <ATTRIBUTE-DEFINITION-ENUMERATION IDENTIFIER="_uXKuvyhrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="Attribute2" IS-EDITABLE="true" MULTI-VALUED="false">
+ <TYPE>
+ <DATATYPE-DEFINITION-ENUMERATION-REF>_uXKHqChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-ENUMERATION-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-ENUMERATION>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKuwChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="text" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKuwShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="id" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ </SPEC-ATTRIBUTES>
+ </SPEC-OBJECT-TYPE>
+ <SPEC-OBJECT-TYPE DESC="no Description" IDENTIFIER="_uXKuwihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="ReqType4">
+ <SPEC-ATTRIBUTES>
+ <ATTRIBUTE-DEFINITION-REAL IDENTIFIER="_uXKuwyhrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="Attribute1" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-REAL-REF>_uWziUihrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-REAL-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-REAL>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKuxChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="text" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ <ATTRIBUTE-DEFINITION-STRING IDENTIFIER="_uXKuxShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.587+02:00" LONG-NAME="id" IS-EDITABLE="true">
+ <TYPE>
+ <DATATYPE-DEFINITION-STRING-REF>_uWziUChrEeSMW_x_2UpqNQ</DATATYPE-DEFINITION-STRING-REF>
+ </TYPE>
+ </ATTRIBUTE-DEFINITION-STRING>
+ </SPEC-ATTRIBUTES>
+ </SPEC-OBJECT-TYPE>
+ <SPECIFICATION-TYPE IDENTIFIER="_uXLVwChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.588+02:00" LONG-NAME="SysMLmodel"/>
+ </SPEC-TYPES>
+ <SPEC-OBJECTS>
+ <SPEC-OBJECT IDENTIFIER="_uXLVwihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.588+02:00" LONG-NAME="Req_0">
+ <VALUES>
+ <ATTRIBUTE-VALUE-ENUMERATION>
+ <VALUES>
+ <ENUM-VALUE-REF>_uXKHoShrEeSMW_x_2UpqNQ</ENUM-VALUE-REF>
+ </VALUES>
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-ENUMERATION-REF>_uXKuvihrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-ENUMERATION-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-ENUMERATION>
+ <ATTRIBUTE-VALUE-ENUMERATION>
+ <VALUES>
+ <ENUM-VALUE-REF>_uXKHqShrEeSMW_x_2UpqNQ</ENUM-VALUE-REF>
+ </VALUES>
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-ENUMERATION-REF>_uXKuvyhrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-ENUMERATION-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-ENUMERATION>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="1">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKuwShrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="The text for req1">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKuwChrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ </VALUES>
+ <TYPE>
+ <SPEC-OBJECT-TYPE-REF>_uXKuvShrEeSMW_x_2UpqNQ</SPEC-OBJECT-TYPE-REF>
+ </TYPE>
+ </SPEC-OBJECT>
+ <SPEC-OBJECT IDENTIFIER="_uXL80ShrEeSMW_x_2UpqNQ" LAST-CHANGE="2015-04-09T15:03:11.716+02:00" LONG-NAME="Req_1">
+ <VALUES>
+ <ATTRIBUTE-VALUE-ENUMERATION>
+ <VALUES>
+ <ENUM-VALUE-REF>_uXKHoihrEeSMW_x_2UpqNQ</ENUM-VALUE-REF>
+ </VALUES>
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-ENUMERATION-REF>_uXKuvihrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-ENUMERATION-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-ENUMERATION>
+ <ATTRIBUTE-VALUE-ENUMERATION>
+ <VALUES>
+ <ENUM-VALUE-REF>_uXKHqShrEeSMW_x_2UpqNQ</ENUM-VALUE-REF>
+ </VALUES>
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-ENUMERATION-REF>_uXKuvyhrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-ENUMERATION-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-ENUMERATION>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="2">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKuwShrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="The text for req2">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKuwChrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ </VALUES>
+ <TYPE>
+ <SPEC-OBJECT-TYPE-REF>_uXKuvShrEeSMW_x_2UpqNQ</SPEC-OBJECT-TYPE-REF>
+ </TYPE>
+ </SPEC-OBJECT>
+ <SPEC-OBJECT IDENTIFIER="_uXL80yhrEeSMW_x_2UpqNQ" LAST-CHANGE="2015-04-09T15:03:15.228+02:00" LONG-NAME="Req_2">
+ <VALUES>
+ <ATTRIBUTE-VALUE-ENUMERATION>
+ <VALUES>
+ <ENUM-VALUE-REF>_uXKHoyhrEeSMW_x_2UpqNQ</ENUM-VALUE-REF>
+ </VALUES>
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-ENUMERATION-REF>_uXKuvihrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-ENUMERATION-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-ENUMERATION>
+ <ATTRIBUTE-VALUE-ENUMERATION>
+ <VALUES>
+ <ENUM-VALUE-REF>_uXKHqShrEeSMW_x_2UpqNQ</ENUM-VALUE-REF>
+ </VALUES>
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-ENUMERATION-REF>_uXKuvyhrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-ENUMERATION-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-ENUMERATION>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="3">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKuwShrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="The text for req3">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKuwChrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ </VALUES>
+ <TYPE>
+ <SPEC-OBJECT-TYPE-REF>_uXKuvShrEeSMW_x_2UpqNQ</SPEC-OBJECT-TYPE-REF>
+ </TYPE>
+ </SPEC-OBJECT>
+ <SPEC-OBJECT IDENTIFIER="_uXL81ShrEeSMW_x_2UpqNQ" LAST-CHANGE="2015-04-09T15:03:18.504+02:00" LONG-NAME="Req_3">
+ <VALUES>
+ <ATTRIBUTE-VALUE-ENUMERATION>
+ <VALUES>
+ <ENUM-VALUE-REF>_uXKHoihrEeSMW_x_2UpqNQ</ENUM-VALUE-REF>
+ </VALUES>
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-ENUMERATION-REF>_uXKuvihrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-ENUMERATION-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-ENUMERATION>
+ <ATTRIBUTE-VALUE-ENUMERATION>
+ <VALUES>
+ <ENUM-VALUE-REF>_uXKHqihrEeSMW_x_2UpqNQ</ENUM-VALUE-REF>
+ </VALUES>
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-ENUMERATION-REF>_uXKuvyhrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-ENUMERATION-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-ENUMERATION>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="4">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKuwShrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="The text for req4">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKuwChrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ </VALUES>
+ <TYPE>
+ <SPEC-OBJECT-TYPE-REF>_uXKuvShrEeSMW_x_2UpqNQ</SPEC-OBJECT-TYPE-REF>
+ </TYPE>
+ </SPEC-OBJECT>
+ <SPEC-OBJECT IDENTIFIER="_uXMj4ShrEeSMW_x_2UpqNQ" LAST-CHANGE="2015-04-09T15:03:22.265+02:00" LONG-NAME="Req_4">
+ <VALUES>
+ <ATTRIBUTE-VALUE-ENUMERATION>
+ <VALUES>
+ <ENUM-VALUE-REF>_uXKHoyhrEeSMW_x_2UpqNQ</ENUM-VALUE-REF>
+ </VALUES>
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-ENUMERATION-REF>_uXKuvihrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-ENUMERATION-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-ENUMERATION>
+ <ATTRIBUTE-VALUE-ENUMERATION>
+ <VALUES>
+ <ENUM-VALUE-REF>_uXKHrChrEeSMW_x_2UpqNQ</ENUM-VALUE-REF>
+ </VALUES>
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-ENUMERATION-REF>_uXKuvyhrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-ENUMERATION-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-ENUMERATION>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="5">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKuwShrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="The text for req5">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKuwChrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ </VALUES>
+ <TYPE>
+ <SPEC-OBJECT-TYPE-REF>_uXKuvShrEeSMW_x_2UpqNQ</SPEC-OBJECT-TYPE-REF>
+ </TYPE>
+ </SPEC-OBJECT>
+ <SPEC-OBJECT IDENTIFIER="_uXMj4yhrEeSMW_x_2UpqNQ" LAST-CHANGE="2015-04-09T15:03:27.008+02:00" LONG-NAME="Req_5">
+ <VALUES>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="test3">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKusihrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="6">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKutChrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="The text for req6">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKusyhrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ </VALUES>
+ <TYPE>
+ <SPEC-OBJECT-TYPE-REF>_uXKusShrEeSMW_x_2UpqNQ</SPEC-OBJECT-TYPE-REF>
+ </TYPE>
+ </SPEC-OBJECT>
+ <SPEC-OBJECT IDENTIFIER="_uXMj5ShrEeSMW_x_2UpqNQ" LAST-CHANGE="2015-04-09T15:03:30.378+02:00" LONG-NAME="Req_6">
+ <VALUES>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="test1">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKusihrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="7">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKutChrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="The text for req7">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKusyhrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ </VALUES>
+ <TYPE>
+ <SPEC-OBJECT-TYPE-REF>_uXKusShrEeSMW_x_2UpqNQ</SPEC-OBJECT-TYPE-REF>
+ </TYPE>
+ </SPEC-OBJECT>
+ <SPEC-OBJECT IDENTIFIER="_uXMj5yhrEeSMW_x_2UpqNQ" LAST-CHANGE="2015-04-09T15:03:33.966+02:00" LONG-NAME="Req_7">
+ <VALUES>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="test2">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKusihrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="8">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKutChrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="The text for req8">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKusyhrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ </VALUES>
+ <TYPE>
+ <SPEC-OBJECT-TYPE-REF>_uXKusShrEeSMW_x_2UpqNQ</SPEC-OBJECT-TYPE-REF>
+ </TYPE>
+ </SPEC-OBJECT>
+ <SPEC-OBJECT IDENTIFIER="_uXMj6ShrEeSMW_x_2UpqNQ" LAST-CHANGE="2015-04-09T15:03:38.864+02:00" LONG-NAME="Req_8">
+ <VALUES>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="test4">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKusihrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="9">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKutChrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="The text for req9">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKusyhrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ </VALUES>
+ <TYPE>
+ <SPEC-OBJECT-TYPE-REF>_uXKusShrEeSMW_x_2UpqNQ</SPEC-OBJECT-TYPE-REF>
+ </TYPE>
+ </SPEC-OBJECT>
+ <SPEC-OBJECT IDENTIFIER="_uXNK8ShrEeSMW_x_2UpqNQ" LAST-CHANGE="2015-04-09T15:03:42.100+02:00" LONG-NAME="Req_9">
+ <VALUES>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="test5">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKusihrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="10">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKutChrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="The text for req10">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKusyhrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ </VALUES>
+ <TYPE>
+ <SPEC-OBJECT-TYPE-REF>_uXKusShrEeSMW_x_2UpqNQ</SPEC-OBJECT-TYPE-REF>
+ </TYPE>
+ </SPEC-OBJECT>
+ <SPEC-OBJECT IDENTIFIER="_6DILIN64EeSfwsq8Y4ULIQ" LAST-CHANGE="2015-04-09T15:04:04.599+02:00">
+ <VALUES>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="11">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKutChrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="Added Req11">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKusyhrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ </VALUES>
+ <TYPE>
+ <SPEC-OBJECT-TYPE-REF>_uXKusShrEeSMW_x_2UpqNQ</SPEC-OBJECT-TYPE-REF>
+ </TYPE>
+ </SPEC-OBJECT>
+ <SPEC-OBJECT IDENTIFIER="_92w00N64EeSfwsq8Y4ULIQ" LAST-CHANGE="2015-04-09T15:04:50.121+02:00">
+ <VALUES>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="AddedReq12">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKutyhrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-STRING THE-VALUE="12">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-STRING-REF>_uXKuuChrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-STRING-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-STRING>
+ <ATTRIBUTE-VALUE-BOOLEAN THE-VALUE="false">
+ <DEFINITION>
+ <ATTRIBUTE-DEFINITION-BOOLEAN-REF>_uXKutihrEeSMW_x_2UpqNQ</ATTRIBUTE-DEFINITION-BOOLEAN-REF>
+ </DEFINITION>
+ </ATTRIBUTE-VALUE-BOOLEAN>
+ </VALUES>
+ <TYPE>
+ <SPEC-OBJECT-TYPE-REF>_uXKutShrEeSMW_x_2UpqNQ</SPEC-OBJECT-TYPE-REF>
+ </TYPE>
+ </SPEC-OBJECT>
+ </SPEC-OBJECTS>
+ <SPECIFICATIONS>
+ <SPECIFICATION IDENTIFIER="_uXLVwShrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.588+02:00" LONG-NAME="SysMLmodel">
+ <TYPE>
+ <SPECIFICATION-TYPE-REF>_uXLVwChrEeSMW_x_2UpqNQ</SPECIFICATION-TYPE-REF>
+ </TYPE>
+ <CHILDREN>
+ <SPEC-HIERARCHY IDENTIFIER="_uXL80ChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.588+02:00">
+ <OBJECT>
+ <SPEC-OBJECT-REF>_uXLVwihrEeSMW_x_2UpqNQ</SPEC-OBJECT-REF>
+ </OBJECT>
+ <CHILDREN>
+ <SPEC-HIERARCHY IDENTIFIER="_6EBjAN64EeSfwsq8Y4ULIQ" LAST-CHANGE="2015-05-19T16:03:59.046+02:00">
+ <OBJECT>
+ <SPEC-OBJECT-REF>_6DILIN64EeSfwsq8Y4ULIQ</SPEC-OBJECT-REF>
+ </OBJECT>
+ </SPEC-HIERARCHY>
+ </CHILDREN>
+ </SPEC-HIERARCHY>
+ <SPEC-HIERARCHY IDENTIFIER="_uXL80ihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.589+02:00">
+ <OBJECT>
+ <SPEC-OBJECT-REF>_uXL80ShrEeSMW_x_2UpqNQ</SPEC-OBJECT-REF>
+ </OBJECT>
+ <CHILDREN>
+ <SPEC-HIERARCHY IDENTIFIER="_93gbsN64EeSfwsq8Y4ULIQ" LAST-CHANGE="2015-05-19T16:04:03.533+02:00">
+ <OBJECT>
+ <SPEC-OBJECT-REF>_92w00N64EeSfwsq8Y4ULIQ</SPEC-OBJECT-REF>
+ </OBJECT>
+ </SPEC-HIERARCHY>
+ </CHILDREN>
+ </SPEC-HIERARCHY>
+ <SPEC-HIERARCHY IDENTIFIER="_uXL81ChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.589+02:00">
+ <OBJECT>
+ <SPEC-OBJECT-REF>_uXL80yhrEeSMW_x_2UpqNQ</SPEC-OBJECT-REF>
+ </OBJECT>
+ </SPEC-HIERARCHY>
+ <SPEC-HIERARCHY IDENTIFIER="_uXMj4ChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.589+02:00">
+ <OBJECT>
+ <SPEC-OBJECT-REF>_uXL81ShrEeSMW_x_2UpqNQ</SPEC-OBJECT-REF>
+ </OBJECT>
+ </SPEC-HIERARCHY>
+ <SPEC-HIERARCHY IDENTIFIER="_uXMj4ihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.590+02:00">
+ <OBJECT>
+ <SPEC-OBJECT-REF>_uXMj4ShrEeSMW_x_2UpqNQ</SPEC-OBJECT-REF>
+ </OBJECT>
+ </SPEC-HIERARCHY>
+ <SPEC-HIERARCHY IDENTIFIER="_uXMj5ChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.590+02:00">
+ <OBJECT>
+ <SPEC-OBJECT-REF>_uXMj4yhrEeSMW_x_2UpqNQ</SPEC-OBJECT-REF>
+ </OBJECT>
+ </SPEC-HIERARCHY>
+ <SPEC-HIERARCHY IDENTIFIER="_uXMj5ihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.590+02:00">
+ <OBJECT>
+ <SPEC-OBJECT-REF>_uXMj5ShrEeSMW_x_2UpqNQ</SPEC-OBJECT-REF>
+ </OBJECT>
+ </SPEC-HIERARCHY>
+ <SPEC-HIERARCHY IDENTIFIER="_uXMj6ChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.590+02:00">
+ <OBJECT>
+ <SPEC-OBJECT-REF>_uXMj5yhrEeSMW_x_2UpqNQ</SPEC-OBJECT-REF>
+ </OBJECT>
+ </SPEC-HIERARCHY>
+ <SPEC-HIERARCHY IDENTIFIER="_uXNK8ChrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.590+02:00">
+ <OBJECT>
+ <SPEC-OBJECT-REF>_uXMj6ShrEeSMW_x_2UpqNQ</SPEC-OBJECT-REF>
+ </OBJECT>
+ </SPEC-HIERARCHY>
+ <SPEC-HIERARCHY IDENTIFIER="_uXNK8ihrEeSMW_x_2UpqNQ" LAST-CHANGE="2014-08-20T15:13:06.591+02:00">
+ <OBJECT>
+ <SPEC-OBJECT-REF>_uXNK8ShrEeSMW_x_2UpqNQ</SPEC-OBJECT-REF>
+ </OBJECT>
+ </SPEC-HIERARCHY>
+ </CHILDREN>
+ </SPECIFICATION>
+ </SPECIFICATIONS>
+ </REQ-IF-CONTENT>
+ </CORE-CONTENT>
+ <TOOL-EXTENSIONS>
+ <REQ-IF-TOOL-EXTENSION>
+ <configuration:ProrToolExtension>
+ <configuration:specViewConfigurations>
+ <configuration:ProrSpecViewConfiguration specification="_uXLVwShrEeSMW_x_2UpqNQ">
+ <configuration:columns>
+ <configuration:Column label="Attribute2" width="100"/>
+ <configuration:Column label="Attribute1" width="100"/>
+ <configuration:Column label="text" width="100"/>
+ <configuration:Column label="id" width="100"/>
+ </configuration:columns>
+ <configuration:leftHeaderColumn>
+ <configuration:Column label="Lead Header Column" width="30"/>
+ </configuration:leftHeaderColumn>
+ </configuration:ProrSpecViewConfiguration>
+ </configuration:specViewConfigurations>
+ <configuration:generalConfiguration>
+ <configuration:ProrGeneralConfiguration>
+ <configuration:labelConfiguration>
+ <configuration:LabelConfiguration>
+ <defaultLabel>ReqIF.ChapterNumber</defaultLabel>
+ <defaultLabel>ReqIF.ChapterName</defaultLabel>
+ <defaultLabel>ReqIF.Name</defaultLabel>
+ <defaultLabel>ReqIF.Text</defaultLabel>
+ <defaultLabel>ID</defaultLabel>
+ <defaultLabel>Name</defaultLabel>
+ <defaultLabel>Description</defaultLabel>
+ </configuration:LabelConfiguration>
+ </configuration:labelConfiguration>
+ </configuration:ProrGeneralConfiguration>
+ </configuration:generalConfiguration>
+ </configuration:ProrToolExtension>
+ </REQ-IF-TOOL-EXTENSION>
+ </TOOL-EXTENSIONS>
+</REQ-IF>

Back to the top