Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorptessier2014-10-20 09:18:05 +0000
committerptessier2014-10-20 09:18:05 +0000
commit1d4de2dc971c8e6e614fc75d78369bda020b5f4a (patch)
treebaf445adf10c0252810670c13a027d616e8e572b
parent61498f10f78c137b5fa0cc3bee4e0390850cfdab (diff)
downloadorg.eclipse.papyrus-1d4de2dc971c8e6e614fc75d78369bda020b5f4a.tar.gz
org.eclipse.papyrus-1d4de2dc971c8e6e614fc75d78369bda020b5f4a.tar.xz
org.eclipse.papyrus-1d4de2dc971c8e6e614fc75d78369bda020b5f4a.zip
447870: [Papyrus Req] Papyrus shall import or export reqIF file
https://bugs.eclipse.org/bugs/show_bug.cgi?id=447870 Change-Id: I014566bb9b9a442301239d73e1c20a8d27eca7e3
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/.classpath7
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/.gitignore1
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/.project28
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/META-INF/MANIFEST.MF39
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/about.html28
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/build.properties6
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/DeveloperDoc.html1
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/default.css61
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/ActivityDiagram.pngbin0 -> 47397 bytes
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/Architecture_of_ReqIF_Import-Export.pngbin0 -> 45319 bytes
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/ClassDiagram.pngbin0 -> 45319 bytes
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/Export4.pngbin0 -> 46831 bytes
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/Export_Activity.pngbin0 -> 23313 bytes
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/Import_Activity.pngbin0 -> 47397 bytes
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/UseCaseDiagram.pngbin0 -> 52499 bytes
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/UseCases_Diagram.pngbin0 -> 62764 bytes
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/export1.pngbin0 -> 307095 bytes
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/export2.pngbin0 -> 44727 bytes
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/export3.pngbin0 -> 48880 bytes
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/export5.pngbin0 -> 48880 bytes
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import7.pngbin0 -> 157544 bytes
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_1.pngbin0 -> 8124 bytes
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_2.pngbin0 -> 34577 bytes
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_3.pngbin0 -> 31838 bytes
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_4.pngbin0 -> 45633 bytes
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_5.pngbin0 -> 41184 bytes
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_6.pngbin0 -> 39834 bytes
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/model/ReqifForDarwin.di2
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/model/ReqifForDarwin.notation1765
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/doc/model/ReqifForDarwin.uml928
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/img/Darwin_logo_16x16.bmpbin0 -> 822 bytes
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/plugin.pdoc4
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/plugin.properties12
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/plugin.xml33
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/pom.xml14
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/Activator.java63
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/I_SysMLStereotype.java249
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/assistant/CreateOrSelectProfilDialog.java291
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/assistant/ReqIFNewFilePage.java102
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/assistant/ReqIFSelectionPage.java136
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/assistant/AbstractWizardForPapyrus.java135
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/assistant/ChooseReqIFTypeDialog.java62
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/assistant/ReqIFExportWizard.java59
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/assistant/ReqIFImportWizard.java80
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/command/DefineProfileCommand.java260
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/transformation/ReqIFImporterServiceEdit.java140
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/ReqIFBaseTransformation.java274
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/ReqIFExporter.java634
-rw-r--r--extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/ReqIFImporter.java767
-rw-r--r--extraplugins/revision/org.eclipse.papyrus.revisiontool/doc/DeveloperDoc.html1
51 files changed, 6188 insertions, 1 deletions
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/.classpath b/extraplugins/req/org.eclipse.papyrus.req.reqif/.classpath
new file mode 100644
index 00000000000..b1dabee3829
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/.gitignore b/extraplugins/req/org.eclipse.papyrus.req.reqif/.gitignore
new file mode 100644
index 00000000000..ae3c1726048
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/.project b/extraplugins/req/org.eclipse.papyrus.req.reqif/.project
new file mode 100644
index 00000000000..6dd2c6ada61
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.req.reqif</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/.settings/org.eclipse.jdt.core.prefs b/extraplugins/req/org.eclipse.papyrus.req.reqif/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..11f6e462df7
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/META-INF/MANIFEST.MF b/extraplugins/req/org.eclipse.papyrus.req.reqif/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..a4978d5bc6f
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/META-INF/MANIFEST.MF
@@ -0,0 +1,39 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.req.reqif;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.eclipse.papyrus.req.reqif.Activator
+Bundle-Vendor: %providerName
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.papyrus.infra.core,
+ org.eclipse.emf.common,
+ org.eclipse.emf.ecore,
+ org.eclipse.rmf.reqif10;bundle-version="0.10.0",
+ org.eclipse.core.resources;bundle-version="3.9.0",
+ org.eclipse.emf.transaction,
+ org.eclipse.uml2.uml;bundle-version="5.0.0",
+ org.eclipse.papyrus.uml.tools;bundle-version="1.0.0",
+ org.eclipse.gmf.runtime.diagram.ui,
+ org.eclipse.papyrus.editor,
+ org.eclipse.papyrus.infra.emf,
+ org.eclipse.papyrus.infra.widgets;bundle-version="1.0.0",
+ org.eclipse.emf.edit.ui,
+ org.eclipse.rmf.reqif10.edit;bundle-version="0.10.0",
+ org.eclipse.papyrus.uml.extensionpoints,
+ org.eclipse.emf.compare;bundle-version="3.1.0",
+ org.eclipse.papyrus.uml.diagram.profile,
+ org.eclipse.papyrus.uml.profile,
+ org.eclipse.papyrus.sysml.service.types;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.services.edit,
+ org.eclipse.papyrus.infra.gmfdiag.commands,
+ org.eclipse.rmf.reqif10.common,
+ org.eclipse.papyrus.uml.service.types;bundle-version="1.0.0",
+ org.eclipse.ui.ide,
+ org.eclipse.rmf.reqif10.xhtml;bundle-version="0.10.0",
+ org.eclipse.rmf.reqif10.pror;bundle-version="0.10.0",
+ org.eclipse.rmf.reqif10.pror.edit;bundle-version="0.10.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.papyrus.req.reqif.assistant
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/about.html b/extraplugins/req/org.eclipse.papyrus.req.reqif/about.html
new file mode 100644
index 00000000000..82d49bf5f81
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/build.properties b/extraplugins/req/org.eclipse.papyrus.req.reqif/build.properties
new file mode 100644
index 00000000000..7691ef79cf6
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ img/
+
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/DeveloperDoc.html b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/DeveloperDoc.html
new file mode 100644
index 00000000000..97af470bb7a
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/DeveloperDoc.html
@@ -0,0 +1 @@
+<html><link rel="stylesheet" href="default.css" type="text/css"><H1>Import Export of ReqIF elements into Papyrus</H1><pre>This model explains the functionality in Papyrus Req in order to import or export ReqIF files into Papyrus (OMG Document Number: formal/2013-10-01 Standard document URL: http://www.omg.org/spec/ReqIF/1.1) <BR/></pre><H2>Requirements</H2><pre>- ReqIfImport (id=Req_001): <BR/> Darwin shall allow importation of Reqif elements to SysML Model</pre><pre>- ReqIFExport (id=Req_002): <BR/> Darwin shall enable export of SysML requirement to ReqIF Model</pre><pre>- ControlMode (id=Req_003): <BR/> The managment with ReqIf must support Control Mode</pre><pre>- WihtoutUI (id=Req_004): <BR/> The export can be done programmatically, without GUI, in order to test it, or to be enable to pilot it programmatically</pre><pre>- Re-Export (id=Req_005): <BR/> Papyrus shall re-export requirements in existing reqIF file</pre><pre>- Re-Import (id=Req_006): <BR/> Papyrus shall re-Import requirement from a ReqIF file</pre><H2>Use Cases</H2><P align="middle"><img src=C:/git/darwin/com.cea.darwin.reqif/doc/imgDOC/UseCases_Diagram.png alt=UseCases Diagram ></P><P align="middle">UseCases Diagram</P></BR><H3>Import ReqIF file</H3><pre>In order to import ReqFile into UMLModel, first analysis will be done: <BR/>- All existing SpecObjectTypes will be listed. From the list, the user chooses interesting Types. (In fact types may be purely information as title, chapter...) <BR/>- All stereotypes from applied profiles will be also listed. <BR/>Because each SpecType becomes a stereotype based on Requirement, if the two lists are equals no stereotypes will be created. </pre><P align="middle"><img src=C:/git/darwin/com.cea.darwin.reqif/doc/imgDOC/Import_Activity.png alt=Import Activity ></P><P align="middle">Import Activity</P></BR><pre>If stereotypes need to be created, a dialog is opened in order to ask to the user if a profile must be created. <BR/>After importing types, elements of ReqIF file are imported <BR/></pre><H4>How to</H4><pre>First the User must have a SysML model. Select the package where ReqIF elements will be imported. <BR/></pre><P align="middle"><img src=C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_1.png alt=Import SysMLModel ></P><P align="middle">Import SysMLModel</P></BR><pre>Select the menu Import of Eclipse.</pre><P align="middle"><img src=C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_2.png alt=Select import Menu of Eclipse ></P><P align="middle">Select import Menu of Eclipse</P></BR><pre>Select the menu Import ReqIF from Papyrus Categories</pre><P align="middle"><img src=C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_3.png alt=Import ReqIF ></P><P align="middle">Import ReqIF</P></BR><pre>Select the ReqIF file to import</pre><P align="middle"><img src=C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_4.png alt=ReqIF file Selection ></P><P align="middle">ReqIF file Selection</P></BR><pre>Select Types of ReqIFElement that you want to import</pre><P align="middle"><img src=C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_5.png alt=SpecObject Type selection ></P><P align="middle">SpecObject Type selection</P></BR><pre>Types in ReqIF become stereotypes in profile, select or create the profile that will contain imported types</pre><P align="middle"><img src=C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_6.png alt=Create or select Profile ></P><P align="middle">Create or select Profile</P></BR><pre>The model has now imported requirements with relations. Note that a comment explains the origin of the import.</pre><P align="middle"><img src=C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import7.png alt=C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import7.png ></P><P align="middle">C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import7.png</P></BR><H3>Import DataType Enumeration</H3><pre>Each Datatype Definition Enumeration in a ReqFIle is transformed to UML Eneumeration in a profile. <BR/></pre><H3>Import SpecTypes</H3><pre>Each SpecObjectType choosen in the ReqIFile is transformed to stereotype that inherits of SysML Requirement in a profile. <BR/>Each SpecRelationType of the ReqIF file is transformed in to Stereotype based on dependency Metaclass. <BR/>Each attribute is transformed to equivalent attribute in Stereotype. Only XTML attributes are transformed into String typed attributes in profile. <BR/></pre><H3>Import SpecObjects</H3><pre>Each SpecObjectNode is transformed to class with a corresponded applied stereotype. During the creation, SpecHierarchy ared used in order to structure the SysML files. <BR/>Each Specification becomes a package. <BR/>Each SpecRelation becomes a stereotyped dependency. if the souce or target of this object are not created, the spec relation will be not imported. <BR/></pre><H3>Export UML Model to ReqIF File</H3><pre>The goal is to export all requirements and links into ReqIF. <BR/>To do that, the tool lists all applied stereotypes that inherits of SysML::Requirement and that inherits of dependencies. <BR/>From this list, the tool constructs, in ReqIF File, correponding specObjects Tyoes and SpecRelationsTypes <BR/>Then from all stereotyped elements, it constructs the corresponding hierarchy. <BR/> <BR/></pre><P align="middle"><img src=C:/git/darwin/com.cea.darwin.reqif/doc/imgDOC/Export_Activity.png alt=Export Activity ></P><P align="middle">Export Activity</P></BR><H4>How to</H4><pre>Select the SysML that you want to export <BR/></pre><P align="middle"><img src=C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\export1.png alt=SysML Model ></P><P align="middle">SysML Model</P></BR><pre>Select the export Menu from Eclipse menu.</pre><P align="middle"><img src=C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_2.png alt=Export Menu ></P><P align="middle">Export Menu</P></BR><pre>Select the menu export ReqIF form the papyrus Category</pre><P align="middle"><img src=C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_3.png alt=Import ReqIF file ></P><P align="middle">Import ReqIF file</P></BR><pre>Choose the name of the reqif file.</pre><P align="middle"><img src=C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\export5.png alt=Choose ReqIF File name ></P><P align="middle">Choose ReqIF File name</P></BR><pre>At the end, a reqFile is generated. The header has an information that explain that the result comes from UML file. <BR/></pre><P align="middle"><img src=C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\Export4.png alt=Result in the ReqIf file ></P><P align="middle">Result in the ReqIf file</P></BR><H3>export DataType</H3><pre>In a reqFile, all basic types must be created; that is why data type definition string, integer, Real, boolean and XHTML are created. <BR/>Moreover, all Enumerations in applied profiles become DataTypeDefinitionEnumerations in the ReqIF file. <BR/></pre><H3>Export Stereotypes</H3><pre>From all stereotypes, all SpecObject Types and all SpecRelationTypes will be created. If an attribute of a stereotype is typed by a primitiveType named XHTML, the attribute of the SpecObjecType will be XHTML. </pre><H3>Export Stereotyped Elements</H3><pre>From all packages that contains Requirements, a specification will be created. Then a hierarchy will be created by taking in account the structure of requirements. Finally SpecObject and SpecRelation are created. <BR/></pre><H3>Re-Import</H3><pre>When a ReqIfile has been already imported, Papyrus shall update contents during Re-import <BR/></pre><H3>Re-Export</H3><pre>When a UML model has been already exported, PapyrusReq must only update the content of the file. <BR/></pre><H2>Design</H2><P align="middle"><img src=C:/git/darwin/com.cea.darwin.reqif/doc/imgDOC/Architecture_of_ReqIF_Import-Export.png alt=Architecture of ReqIF Import-Export ></P><P align="middle">Architecture of ReqIF Import-Export</P></BR><pre>The architecture is quite simple. There are wizard for import and export, two classes to realize the job and differents assistants or dialogs. <BR/>Nevertheless, two layers can be distinguished in the code: <BR/> - one layer independent of the papyrus <BR/> - one layer called integration dependent of papyrus. <BR/>Efforts have been made to be more independant of papyurs in order to facilitate the maintenance of the algorithm for import export. <BR/>The layer integration contains specializations to create elements by using service edit or use some facilities as advanced dialog. <BR/> <BR/></pre><H2>Tests</H2><H3>TestImport</H3><pre>The goal is to test the import of a reIF file <BR/></pre><H3>ImportEnumeration</H3><pre>All dataType Definition Enumeration must become UML Enumeration into a profile <BR/></pre><H3>ImportSpecObjectTypes</H3><pre>All SelectedSpecObjects types must be stereotypes that specialize Requirement of SysML. <BR/>All attributes must also generated. <BR/></pre><H3>ImportSpecRelationTypes</H3><pre>All SpecRelationTypes must be imported as Stereotypes that extends dependency. <BR/></pre><H3>ImportSpecObject</H3><pre>All SpecObject with the selected SpecObjectTypes must be imported as class with corresponded applied stereotype. <BR/></pre><H3>ImportSpecRelation</H3><pre>All specRelation must be imported as stereotyped dependency. <BR/></pre><H3>ImportSpecObject_XHTML</H3><pre>if an attribute of a specObjectType is XHTML, the attribute in UML is typed by String</pre><H3>BadBuildReqIFFile</H3><pre>Not Tested, to implement <BR/></pre><H3>EmptyFile</H3><pre>Not Tested, to implement <BR/></pre><H3>TestExport</H3><H3>ExportEnumeration</H3><pre>All Enumeration from appliedProfile must become a datatypeDefinitionEnumeration In ReqIF File <BR/></pre><H3>ExportSpecObjectTypes</H3><pre>All stereotypes that inherits of SysML Requirement must become a SpecObjectType. <BR/></pre><H3>ExportSpecRelationTypes</H3><pre>All stereotypes that inherits of dependency become SpecRelationType</pre><H3>ExportSpecObject</H3><pre>All object stereotyped by a stereotype that has an equivalent in the list of SpecObjectType become a SpecObject in the ReqIfFile. <BR/></pre><H3>ExportSpecRelation</H3><pre>All dependencies that are stereotyped by a stereotype that has an equivalence in the list of SpecRelation is imported as SpecObjectRelation.</pre><H3>ExportSpecObject_XHTML</H3><pre>If an attribute of a stereotype is typed by a primitive type XHTML, a datatype definition XHTML is created? <BR/></pre><H3>EmptyUMLFile</H3><pre>Not Tested, to implement <BR/></pre></html> \ No newline at end of file
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/default.css b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/default.css
new file mode 100644
index 00000000000..23fe5fd5fbb
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/default.css
@@ -0,0 +1,61 @@
+/*
+ * Style sheet for the CSS2 specification
+ */
+
+body {
+ padding: 2em 1em 2em 70px;
+ margin: 0;
+ font-family: sans-serif;
+ color: black;
+ background: white;
+ background-position: top left;
+ background-attachment: fixed;
+ background-repeat: no-repeat;
+}
+pre{
+ font-family: sans-serif;
+}
+
+p {
+ margin-top: 0.6em;
+ margin-bottom: 0.6em;
+ margin-left: 2em;
+}
+
+h1, h2, h3, h4, h5, h6 { text-align: left }
+
+
+h1, h2, h3 { color: #005A9C; background: white }
+h1 { font: 170% sans-serif }
+h2 { font: 140% sans-serif }
+h3 { font: 120% sans-serif }
+h4 { font: bold 100% sans-serif }
+h5 { font: italic 100% sans-serif }
+h6 { font: small-caps 100% sans-serif }
+
+body{counter-reset: h1 h2 h3;}
+
+
+h2:before {
+ content: counter(h2) " ";
+ counter-increment: h2;
+}
+h3:before {
+ content: counter(h2) "." counter(h3) " ";
+ counter-increment: h3;
+}
+h1 {
+ counter-reset: h2;
+}
+h2 {
+ counter-reset: h3;
+}
+h1.unnumbered, h2.unnumbered {
+ counter-reset: none;
+}
+h1.unnumbered:before,
+h2.unnumbered:before,
+h3.unnumbered:before{
+ content: none;
+ counter-increment: none;
+}
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/ActivityDiagram.png b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/ActivityDiagram.png
new file mode 100644
index 00000000000..83f93dce02f
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/ActivityDiagram.png
Binary files differ
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/Architecture_of_ReqIF_Import-Export.png b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/Architecture_of_ReqIF_Import-Export.png
new file mode 100644
index 00000000000..f7a862a4aca
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/Architecture_of_ReqIF_Import-Export.png
Binary files differ
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/ClassDiagram.png b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/ClassDiagram.png
new file mode 100644
index 00000000000..f7a862a4aca
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/ClassDiagram.png
Binary files differ
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/Export4.png b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/Export4.png
new file mode 100644
index 00000000000..3e1ce645c9b
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/Export4.png
Binary files differ
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/Export_Activity.png b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/Export_Activity.png
new file mode 100644
index 00000000000..af755263c65
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/Export_Activity.png
Binary files differ
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/Import_Activity.png b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/Import_Activity.png
new file mode 100644
index 00000000000..83f93dce02f
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/Import_Activity.png
Binary files differ
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/UseCaseDiagram.png b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/UseCaseDiagram.png
new file mode 100644
index 00000000000..566521d1065
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/UseCaseDiagram.png
Binary files differ
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/UseCases_Diagram.png b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/UseCases_Diagram.png
new file mode 100644
index 00000000000..0a6d6ce9209
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/UseCases_Diagram.png
Binary files differ
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/export1.png b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/export1.png
new file mode 100644
index 00000000000..e2c94205722
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/export1.png
Binary files differ
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/export2.png b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/export2.png
new file mode 100644
index 00000000000..23e146579a5
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/export2.png
Binary files differ
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/export3.png b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/export3.png
new file mode 100644
index 00000000000..ce1ac09917a
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/export3.png
Binary files differ
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/export5.png b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/export5.png
new file mode 100644
index 00000000000..ce1ac09917a
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/export5.png
Binary files differ
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import7.png b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import7.png
new file mode 100644
index 00000000000..dbe4a7e8dd9
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import7.png
Binary files differ
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_1.png b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_1.png
new file mode 100644
index 00000000000..5e1326c147d
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_1.png
Binary files differ
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_2.png b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_2.png
new file mode 100644
index 00000000000..0e93c1807ce
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_2.png
Binary files differ
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_3.png b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_3.png
new file mode 100644
index 00000000000..7bc74271c1d
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_3.png
Binary files differ
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_4.png b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_4.png
new file mode 100644
index 00000000000..8715d79fd7c
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_4.png
Binary files differ
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_5.png b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_5.png
new file mode 100644
index 00000000000..c4bfc2781a1
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_5.png
Binary files differ
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_6.png b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_6.png
new file mode 100644
index 00000000000..947e6f80c85
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/imgDOC/import_6.png
Binary files differ
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/model/ReqifForDarwin.di b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/model/ReqifForDarwin.di
new file mode 100644
index 00000000000..8634d4c00e0
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/model/ReqifForDarwin.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/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/model/ReqifForDarwin.notation b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/model/ReqifForDarwin.notation
new file mode 100644
index 00000000000..c71cc0be8a7
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/model/ReqifForDarwin.notation
@@ -0,0 +1,1765 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:configuration="http://www.eclipse.org/papyrus/infra/viewpoints/configuration" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:nattable="http://www.eclipse.org/papyrus/nattable/model" xmlns:nattableaxis="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxis" xmlns:nattableaxisconfiguration="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisconfiguration" xmlns:nattableaxisprovider="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisprovider" xmlns:nattableconfiguration="http://www.eclipse.org/papyrus/nattable/model/nattableconfiguration" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/nattable/model/table/nattableaxis http://www.eclipse.org/papyrus/nattable/model#//nattableaxis http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisconfiguration http://www.eclipse.org/papyrus/nattable/model#//nattableaxisconfiguration http://www.eclipse.org/papyrus/nattable/model/table/nattableaxisprovider http://www.eclipse.org/papyrus/nattable/model#//nattableaxisprovider http://www.eclipse.org/papyrus/nattable/model/nattableconfiguration http://www.eclipse.org/papyrus/nattable/model#//nattableconfiguration">
+ <notation:Diagram xmi:id="_M7kQsA2HEeSkbsvlP0s7pA" type="PapyrusUMLClassDiagram" name="Overview" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_M7kQsQ2HEeSkbsvlP0s7pA" type="2005">
+ <children xmi:type="notation:DecorationNode" xmi:id="_M7kQsg2HEeSkbsvlP0s7pA" type="5020"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M7kQsw2HEeSkbsvlP0s7pA" type="7009">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M7kQtA2HEeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M7kQtQ2HEeSkbsvlP0s7pA"/>
+ </children>
+ <element xmi:type="uml:Model" href="ReqifForDarwin.uml#_M7ibgg2HEeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M7kQtg2HEeSkbsvlP0s7pA" x="201" y="38"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M7kQtw2HEeSkbsvlP0s7pA" type="2005">
+ <children xmi:type="notation:DecorationNode" xmi:id="_M7kQuA2HEeSkbsvlP0s7pA" type="5020"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M7kQuQ2HEeSkbsvlP0s7pA" type="7009">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M7kQug2HEeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M7kQuw2HEeSkbsvlP0s7pA"/>
+ </children>
+ <element xmi:type="uml:Model" href="ReqifForDarwin.uml#_M7ibgw2HEeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M7kQvA2HEeSkbsvlP0s7pA" x="204" y="173"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M7kQvQ2HEeSkbsvlP0s7pA" type="2005">
+ <children xmi:type="notation:DecorationNode" xmi:id="_M7kQvg2HEeSkbsvlP0s7pA" type="5020"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M7kQvw2HEeSkbsvlP0s7pA" type="7009">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M7kQwA2HEeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M7kQwQ2HEeSkbsvlP0s7pA"/>
+ </children>
+ <element xmi:type="uml:Model" href="ReqifForDarwin.uml#_M7ibhg2HEeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M7kQwg2HEeSkbsvlP0s7pA" x="206" y="329"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M7kQww2HEeSkbsvlP0s7pA" type="2005">
+ <children xmi:type="notation:DecorationNode" xmi:id="_M7kQxA2HEeSkbsvlP0s7pA" type="5020"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M7kQxQ2HEeSkbsvlP0s7pA" type="7009">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_M7kQxg2HEeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M7kQxw2HEeSkbsvlP0s7pA"/>
+ </children>
+ <element xmi:type="uml:Model" href="ReqifForDarwin.uml#_M7ibiA2HEeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M7kQyA2HEeSkbsvlP0s7pA" x="635" y="324"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_M7kQyQ2HEeSkbsvlP0s7pA"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_M7kQyg2HEeSkbsvlP0s7pA">
+ <owner xmi:type="uml:Model" href="ReqifForDarwin.uml#_M7ibgA2HEeSkbsvlP0s7pA"/>
+ <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrus.infra.viewpoints.policy/builtin/default.configuration#_7wLmpNxhEeOqHvRyiN87hA"/>
+ </styles>
+ <element xmi:type="uml:Model" href="ReqifForDarwin.uml#_M7ibgA2HEeSkbsvlP0s7pA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_M7kQyw2HEeSkbsvlP0s7pA" type="4006" source="_M7kQtw2HEeSkbsvlP0s7pA" target="_M7kQsQ2HEeSkbsvlP0s7pA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_M7kQzA2HEeSkbsvlP0s7pA" visible="false" type="6014">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M7kQzQ2HEeSkbsvlP0s7pA" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M7kQzg2HEeSkbsvlP0s7pA" visible="false" type="6015">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M7kQzw2HEeSkbsvlP0s7pA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_M7kQ0A2HEeSkbsvlP0s7pA"/>
+ <element xmi:type="uml:Abstraction" href="ReqifForDarwin.uml#_M7ibhA2HEeSkbsvlP0s7pA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M7kQ0Q2HEeSkbsvlP0s7pA" points="[-2, -10, 8, 48]$[-27, -45, -17, 13]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M7kQ0g2HEeSkbsvlP0s7pA" id="(0.305,0.1)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M7kQ0w2HEeSkbsvlP0s7pA" id="(0.27,0.87)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M7kQ1A2HEeSkbsvlP0s7pA" type="4006" source="_M7kQvQ2HEeSkbsvlP0s7pA" target="_M7kQtw2HEeSkbsvlP0s7pA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_M7kQ1Q2HEeSkbsvlP0s7pA" visible="false" type="6014">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M7kQ1g2HEeSkbsvlP0s7pA" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M7kQ1w2HEeSkbsvlP0s7pA" visible="false" type="6015">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M7kQ2A2HEeSkbsvlP0s7pA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_M7kQ2Q2HEeSkbsvlP0s7pA"/>
+ <element xmi:type="uml:Abstraction" href="ReqifForDarwin.uml#_M7ibhw2HEeSkbsvlP0s7pA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M7kQ2g2HEeSkbsvlP0s7pA" points="[-9, -16, 0, 67]$[-24, -72, -15, 11]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M7kQ2w2HEeSkbsvlP0s7pA" id="(0.27,0.16)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M7kQ3A2HEeSkbsvlP0s7pA" id="(0.235,0.89)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M7kQ3Q2HEeSkbsvlP0s7pA" type="4008" source="_M7kQww2HEeSkbsvlP0s7pA" target="_M7kQtw2HEeSkbsvlP0s7pA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_M7kQ3g2HEeSkbsvlP0s7pA" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M7kQ3w2HEeSkbsvlP0s7pA" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M7kQ4A2HEeSkbsvlP0s7pA" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M7kQ4Q2HEeSkbsvlP0s7pA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_M7kQ4g2HEeSkbsvlP0s7pA"/>
+ <element xmi:type="uml:Dependency" href="ReqifForDarwin.uml#_M7ibiQ2HEeSkbsvlP0s7pA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M7kQ4w2HEeSkbsvlP0s7pA" points="[-46, -20, 265, 113]$[-275, -135, 36, -2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M7kQ5A2HEeSkbsvlP0s7pA" id="(0.0,0.24)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M7kQ5Q2HEeSkbsvlP0s7pA" id="(1.0,0.65)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_M7kQ5g2HEeSkbsvlP0s7pA" type="4008" source="_M7kQww2HEeSkbsvlP0s7pA" target="_M7kQvQ2HEeSkbsvlP0s7pA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_M7kQ5w2HEeSkbsvlP0s7pA" visible="false" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M7kQ6A2HEeSkbsvlP0s7pA" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M7kQ6Q2HEeSkbsvlP0s7pA" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M7kQ6g2HEeSkbsvlP0s7pA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_M7kQ6w2HEeSkbsvlP0s7pA"/>
+ <element xmi:type="uml:Dependency" href="ReqifForDarwin.uml#_M7ibig2HEeSkbsvlP0s7pA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M7kQ7A2HEeSkbsvlP0s7pA" points="[-40, 1, 262, -12]$[-267, 20, 35, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M7kQ7Q2HEeSkbsvlP0s7pA" id="(0.0,0.69)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M7kQ7g2HEeSkbsvlP0s7pA" id="(1.0,0.64)"/>
+ </edges>
+ </notation:Diagram>
+ <nattable:Table xmi:id="_TmtTAA2HEeSkbsvlP0s7pA" name="RequirementTable0" currentRowAxisProvider="_Tmt6FA2HEeSkbsvlP0s7pA" currentColumnAxisProvider="_Tmt6EA2HEeSkbsvlP0s7pA">
+ <context xmi:type="uml:Model" href="ReqifForDarwin.uml#_M7ibgg2HEeSkbsvlP0s7pA"/>
+ <owner xmi:type="uml:Model" href="ReqifForDarwin.uml#_M7ibgg2HEeSkbsvlP0s7pA"/>
+ <prototype xmi:type="configuration:PapyrusSyncTable" href="platform:/plugin/org.eclipse.papyrus.infra.viewpoints.policy/builtin/default.configuration#_7wNb3txhEeOqHvRyiN87hA"/>
+ <tableConfiguration xmi:type="nattableconfiguration:TableConfiguration" href="platform:/plugin/org.eclipse.papyrus.sysml.nattable.requirement.config/configs/requirement.nattableconfiguration#/"/>
+ <columnAxisProvidersHistory xmi:type="nattableaxisprovider:SlaveObjectAxisProvider" xmi:id="_Tmt6EA2HEeSkbsvlP0s7pA" description="Provides the columns of the tables with a default configuration" name="Requirements Feature Columns Provider">
+ <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_Tmt6EQ2HEeSkbsvlP0s7pA" element="property_of_stereotype:/SysML::Requirements::Requirement::id">
+ <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.sysml.nattable.requirement.config/configs/requirement.nattableconfiguration#//@columnHeaderAxisConfiguration/@axisManagers.1"/>
+ </axis>
+ <axis xmi:type="nattableaxis:EStructuralFeatureAxis" xmi:id="_Tmt6Eg2HEeSkbsvlP0s7pA">
+ <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.sysml.nattable.requirement.config/configs/requirement.nattableconfiguration#//@columnHeaderAxisConfiguration/@axisManagers.0"/>
+ <element xmi:type="ecore:EAttribute" href="http://www.eclipse.org/uml2/5.0.0/UML#//NamedElement/name"/>
+ </axis>
+ <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_Tmt6Ew2HEeSkbsvlP0s7pA" element="property_of_stereotype:/SysML::Requirements::Requirement::text">
+ <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.sysml.nattable.requirement.config/configs/requirement.nattableconfiguration#//@columnHeaderAxisConfiguration/@axisManagers.1"/>
+ </axis>
+ <axis xmi:type="nattableaxis:FeatureIdAxis" xmi:id="_b5o4YC6KEeSaMrdXMag_Yg" element="property_of_stereotype:/SysML::Requirements::Requirement::satisfiedBy">
+ <manager xmi:type="nattableaxisconfiguration:AxisManagerRepresentation" href="platform:/plugin/org.eclipse.papyrus.sysml.nattable.requirement.config/configs/requirement.nattableconfiguration#//@columnHeaderAxisConfiguration/@axisManagers.1"/>
+ </axis>
+ </columnAxisProvidersHistory>
+ <rowAxisProvidersHistory xmi:type="nattableaxisprovider:MasterObjectAxisProvider" xmi:id="_Tmt6FA2HEeSkbsvlP0s7pA" description="Provides the requirements directly owned by the context of the table" name="Requirement Axis Provider" disconnectSlave="true"/>
+ </nattable:Table>
+ <notation:Diagram xmi:id="_PTTHoA2IEeSkbsvlP0s7pA" type="UseCase" name="UseCases Diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_Qa63AA2IEeSkbsvlP0s7pA" type="2015">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QbI5cA2IEeSkbsvlP0s7pA" type="5019"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QbI5cQ2IEeSkbsvlP0s7pA" type="7011">
+ <children xmi:type="notation:Shape" xmi:id="_RrtJcA2IEeSkbsvlP0s7pA" type="3009">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DkngUC0AEeS1XdXKGPJRfg" source="PapyrusHyperLink_Page" references="_DwOo0BM1EeSkbsvlP0s7pA">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DkngUS0AEeS1XdXKGPJRfg" key="tooltip_text" value="ImportProcess"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DkngUi0AEeS1XdXKGPJRfg" key="pageName" value="PapyrusHyperLink_Page"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DkngUy0AEeS1XdXKGPJRfg" key="is_default_navigation" value="false"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RrtwgA2IEeSkbsvlP0s7pA" type="5018"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RrtwgQ2IEeSkbsvlP0s7pA" type="7012">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Rrtwgg2IEeSkbsvlP0s7pA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Rrtwgw2IEeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RrtwhA2IEeSkbsvlP0s7pA"/>
+ </children>
+ <element xmi:type="uml:UseCase" href="ReqifForDarwin.uml#_RrUH4A2IEeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RrtJcQ2IEeSkbsvlP0s7pA" x="30" y="6"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UBNoQA2IEeSkbsvlP0s7pA" type="3009">
+ <children xmi:type="notation:DecorationNode" xmi:id="_UBOPUA2IEeSkbsvlP0s7pA" type="5018"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UBOPUQ2IEeSkbsvlP0s7pA" type="7012">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_UBOPUg2IEeSkbsvlP0s7pA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_UBOPUw2IEeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UBOPVA2IEeSkbsvlP0s7pA"/>
+ </children>
+ <element xmi:type="uml:UseCase" href="ReqifForDarwin.uml#_UBKk8A2IEeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UBNoQQ2IEeSkbsvlP0s7pA" x="30" y="186"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6UhAoCeeEeSjdJiE6np9EA" type="3009">
+ <children xmi:type="notation:DecorationNode" xmi:id="_6UhnsCeeEeSjdJiE6np9EA" type="5018"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6UhnsSeeEeSjdJiE6np9EA" type="7012">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6UhnsieeEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6UhnsyeeEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6UhntCeeEeSjdJiE6np9EA"/>
+ </children>
+ <element xmi:type="uml:UseCase" href="ReqifForDarwin.uml#_6UJ0QCeeEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6UhAoSeeEeSjdJiE6np9EA" x="350" y="6" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_APbf4CefEeSjdJiE6np9EA" type="3009">
+ <children xmi:type="notation:DecorationNode" xmi:id="_APcG8CefEeSjdJiE6np9EA" type="5018"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_APcG8SefEeSjdJiE6np9EA" type="7012">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_APcG8iefEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_APcG8yefEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_APcG9CefEeSjdJiE6np9EA"/>
+ </children>
+ <element xmi:type="uml:UseCase" href="ReqifForDarwin.uml#_APZDoCefEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_APbf4SefEeSjdJiE6np9EA" x="350" y="186" width="241" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_J-OHICekEeSjdJiE6np9EA" type="3009">
+ <children xmi:type="notation:DecorationNode" xmi:id="_J-OHIiekEeSjdJiE6np9EA" type="5018"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_J-OuMCekEeSjdJiE6np9EA" type="7012">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_J-OuMSekEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_J-OuMiekEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-OuMyekEeSjdJiE6np9EA"/>
+ </children>
+ <element xmi:type="uml:UseCase" href="ReqifForDarwin.uml#_J-LD0CekEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J-OHISekEeSjdJiE6np9EA" x="350" y="246" width="241" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OQ6rYCekEeSjdJiE6np9EA" type="3009">
+ <children xmi:type="notation:DecorationNode" xmi:id="_OQ7ScCekEeSjdJiE6np9EA" type="5018"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OQ7ScSekEeSjdJiE6np9EA" type="7012">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OQ7SciekEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OQ7ScyekEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OQ7SdCekEeSjdJiE6np9EA"/>
+ </children>
+ <element xmi:type="uml:UseCase" href="ReqifForDarwin.uml#_OQz9sCekEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OQ6rYSekEeSjdJiE6np9EA" x="350" y="306" width="241" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_H7dkwC0AEeS1XdXKGPJRfg" type="3009">
+ <children xmi:type="notation:DecorationNode" xmi:id="_H71_QC0AEeS1XdXKGPJRfg" type="5018"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_H71_QS0AEeS1XdXKGPJRfg" type="7012">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_H71_Qi0AEeS1XdXKGPJRfg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_H71_Qy0AEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H71_RC0AEeS1XdXKGPJRfg"/>
+ </children>
+ <element xmi:type="uml:UseCase" href="ReqifForDarwin.uml#_H53pUC0AEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H7dkwS0AEeS1XdXKGPJRfg" x="350" y="66" width="241" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KAeJcC0AEeS1XdXKGPJRfg" type="3009">
+ <children xmi:type="notation:DecorationNode" xmi:id="_KAewgC0AEeS1XdXKGPJRfg" type="5018"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_KAewgS0AEeS1XdXKGPJRfg" type="7012">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KAewgi0AEeS1XdXKGPJRfg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KAewgy0AEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KAewhC0AEeS1XdXKGPJRfg"/>
+ </children>
+ <element xmi:type="uml:UseCase" href="ReqifForDarwin.uml#_KAbGIC0AEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KAeJcS0AEeS1XdXKGPJRfg" x="350" y="126" width="241" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7EtxIC6GEeSaMrdXMag_Yg" type="3009" fillColor="8047085">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DCHFgC6HEeSaMrdXMag_Yg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DCHskC6HEeSaMrdXMag_Yg" key="gradient" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7Eu_QC6GEeSaMrdXMag_Yg" type="5018"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7Eu_QS6GEeSaMrdXMag_Yg" type="7012">
+ <children xmi:type="notation:Shape" xmi:id="_-4dvkC6GEeSaMrdXMag_Yg" type="3007">
+ <element xmi:type="uml:ExtensionPoint" href="ReqifForDarwin.uml#_-4HxUC6GEeSaMrdXMag_Yg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-4dvkS6GEeSaMrdXMag_Yg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7Eu_Qi6GEeSaMrdXMag_Yg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7Eu_Qy6GEeSaMrdXMag_Yg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7Eu_RC6GEeSaMrdXMag_Yg"/>
+ </children>
+ <element xmi:type="uml:UseCase" href="ReqifForDarwin.uml#_7DBvEC6GEeSaMrdXMag_Yg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7EtxIS6GEeSaMrdXMag_Yg" x="30" y="106"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Dx2gYC6HEeSaMrdXMag_Yg" type="3009" fillColor="8047085">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_F-9RIC6HEeSaMrdXMag_Yg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_F_5sUC6HEeSaMrdXMag_Yg" key="gradient" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Dx3HcC6HEeSaMrdXMag_Yg" type="5018"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Dx3HcS6HEeSaMrdXMag_Yg" type="7012">
+ <children xmi:type="notation:Shape" xmi:id="_FAtgMC6HEeSaMrdXMag_Yg" type="3007">
+ <element xmi:type="uml:ExtensionPoint" href="ReqifForDarwin.uml#_FAqc4C6HEeSaMrdXMag_Yg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FAtgMS6HEeSaMrdXMag_Yg"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Dx3ugC6HEeSaMrdXMag_Yg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Dx3ugS6HEeSaMrdXMag_Yg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Dx3ugi6HEeSaMrdXMag_Yg"/>
+ </children>
+ <element xmi:type="uml:UseCase" href="ReqifForDarwin.uml#_Dxy2AC6HEeSaMrdXMag_Yg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Dx2gYS6HEeSaMrdXMag_Yg" x="30" y="286"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QbI5cg2IEeSkbsvlP0s7pA"/>
+ </children>
+ <element xmi:type="uml:Component" href="ReqifForDarwin.uml#_M7ibhQ2HEeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qa63AQ2IEeSkbsvlP0s7pA" x="205" y="66" width="676" height="395"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VgFaAA2IEeSkbsvlP0s7pA" type="2011">
+ <children xmi:type="notation:DecorationNode" xmi:id="_VgGBEA2IEeSkbsvlP0s7pA" type="5014">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VgGBEQ2IEeSkbsvlP0s7pA" x="20" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VgGoIA2IEeSkbsvlP0s7pA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VgGoIQ2IEeSkbsvlP0s7pA" x="20" y="100"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VgHPMA2IEeSkbsvlP0s7pA" type="6037">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VgH2QA2IEeSkbsvlP0s7pA" x="20" y="80"/>
+ </children>
+ <element xmi:type="uml:Actor" href="ReqifForDarwin.uml#_Vfnf8A2IEeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VgFaAQ2IEeSkbsvlP0s7pA" x="19" y="215"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_PTTHoQ2IEeSkbsvlP0s7pA" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_PTTHog2IEeSkbsvlP0s7pA"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_PTTHow2IEeSkbsvlP0s7pA">
+ <owner xmi:type="uml:Model" href="ReqifForDarwin.uml#_M7ibgw2HEeSkbsvlP0s7pA"/>
+ </styles>
+ <element xmi:type="uml:Model" href="ReqifForDarwin.uml#_M7ibgw2HEeSkbsvlP0s7pA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_WyYvYA2IEeSkbsvlP0s7pA" type="4011" source="_RrtJcA2IEeSkbsvlP0s7pA" target="_VgFaAA2IEeSkbsvlP0s7pA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_WyZWcA2IEeSkbsvlP0s7pA" visible="false" type="6008">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WyZWcQ2IEeSkbsvlP0s7pA" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_WyZWcg2IEeSkbsvlP0s7pA" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WyZ9gA2IEeSkbsvlP0s7pA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_WyYvYQ2IEeSkbsvlP0s7pA"/>
+ <element xmi:type="uml:Association" href="ReqifForDarwin.uml#_WwkKcA2IEeSkbsvlP0s7pA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WyYvYg2IEeSkbsvlP0s7pA" points="[-20, 4, 304, -73]$[-318, 52, 6, -25]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WzY08A2IEeSkbsvlP0s7pA" id="(0.0,0.65)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1IwtcCeeEeSjdJiE6np9EA" id="(1.0,0.44)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XVxJQA2IEeSkbsvlP0s7pA" type="4011" source="_VgFaAA2IEeSkbsvlP0s7pA" target="_UBNoQA2IEeSkbsvlP0s7pA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_XVxwUA2IEeSkbsvlP0s7pA" visible="false" type="6008">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XVyXYA2IEeSkbsvlP0s7pA" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XVyXYQ2IEeSkbsvlP0s7pA" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XVy-cA2IEeSkbsvlP0s7pA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_XVxJQQ2IEeSkbsvlP0s7pA"/>
+ <element xmi:type="uml:Association" href="ReqifForDarwin.uml#_XVutAA2IEeSkbsvlP0s7pA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XVxJQg2IEeSkbsvlP0s7pA" points="[15, 4, -392, -106]$[398, 139, -9, 29]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1Ix7kCeeEeSjdJiE6np9EA" id="(1.0,0.56)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1Ix7kSeeEeSjdJiE6np9EA" id="(0.0,0.26666666666666666)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__Us9ACeeEeSjdJiE6np9EA" type="4008" source="_RrtJcA2IEeSkbsvlP0s7pA" target="_6UhAoCeeEeSjdJiE6np9EA">
+ <children xmi:type="notation:DecorationNode" xmi:id="__UtkECeeEeSjdJiE6np9EA" type="6006">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__UtkESeeEeSjdJiE6np9EA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="__UuLICeeEeSjdJiE6np9EA" type="6030">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__UuLISeeEeSjdJiE6np9EA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__Us9ASeeEeSjdJiE6np9EA"/>
+ <element xmi:type="uml:Include" href="ReqifForDarwin.uml#__UdFYCeeEeSjdJiE6np9EA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__Us9AieeEeSjdJiE6np9EA" points="[17, -5, -197, 0]$[197, -7, -17, -2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__U5KQCeeEeSjdJiE6np9EA" id="(0.8657718120805369,0.45)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__U5KQSeeEeSjdJiE6np9EA" id="(0.09465020576131687,0.36666666666666664)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_DFsiYCefEeSjdJiE6np9EA" type="4008" source="_UBNoQA2IEeSkbsvlP0s7pA" target="_APbf4CefEeSjdJiE6np9EA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_DFtJcCefEeSjdJiE6np9EA" type="6006">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DFtwgCefEeSjdJiE6np9EA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DFtwgSefEeSjdJiE6np9EA" type="6030">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DFuXkCefEeSjdJiE6np9EA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_DFsiYSefEeSjdJiE6np9EA"/>
+ <element xmi:type="uml:Include" href="ReqifForDarwin.uml#_DFqtMCefEeSjdJiE6np9EA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DFsiYiefEeSjdJiE6np9EA" points="[21, 1, -213, -10]$[216, 9, -18, -2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DFz3ICefEeSjdJiE6np9EA" id="(0.8445945945945946,0.5833333333333334)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DF0eMCefEeSjdJiE6np9EA" id="(0.1130952380952381,0.43333333333333335)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_MpjsACekEeSjdJiE6np9EA" type="4008" source="_UBNoQA2IEeSkbsvlP0s7pA" target="_J-OHICekEeSjdJiE6np9EA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MpkTECekEeSjdJiE6np9EA" type="6006">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MpkTESekEeSjdJiE6np9EA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Mpk6ICekEeSjdJiE6np9EA" type="6030">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Mpk6ISekEeSjdJiE6np9EA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_MpjsASekEeSjdJiE6np9EA"/>
+ <element xmi:type="uml:Include" href="ReqifForDarwin.uml#_Mph20CekEeSjdJiE6np9EA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MpjsAiekEeSjdJiE6np9EA" points="[16, 5, -226, -72]$[214, 78, -28, 1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MprAwCekEeSjdJiE6np9EA" id="(0.8513513513513513,0.6)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MprAwSekEeSjdJiE6np9EA" id="(0.17391304347826086,0.55)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Rk8A4CekEeSjdJiE6np9EA" type="4008" source="_UBNoQA2IEeSkbsvlP0s7pA" target="_OQ6rYCekEeSjdJiE6np9EA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Rk8A4yekEeSjdJiE6np9EA" type="6006">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Rk8n8CekEeSjdJiE6np9EA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Rk8n8SekEeSjdJiE6np9EA" type="6030">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Rk8n8iekEeSjdJiE6np9EA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Rk8A4SekEeSjdJiE6np9EA"/>
+ <element xmi:type="uml:Include" href="ReqifForDarwin.uml#_Rk6LsCekEeSjdJiE6np9EA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Rk8A4iekEeSjdJiE6np9EA" points="[48, 22, -258, -123]$[269, 148, -37, 3]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RlCHgCekEeSjdJiE6np9EA" id="(0.22598870056497175,0.5833333333333334)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Nsl14C0AEeS1XdXKGPJRfg" type="4008" source="_RrtJcA2IEeSkbsvlP0s7pA" target="_H7dkwC0AEeS1XdXKGPJRfg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Nsmc8C0AEeS1XdXKGPJRfg" type="6006">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Nsmc8S0AEeS1XdXKGPJRfg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NsnEAC0AEeS1XdXKGPJRfg" type="6030">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NsnEAS0AEeS1XdXKGPJRfg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Nsl14S0AEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:Include" href="ReqifForDarwin.uml#_NshkcC0AEeS1XdXKGPJRfg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Nsl14i0AEeS1XdXKGPJRfg" points="[23, 6, -259, -57]$[206, 70, -76, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NstKoC0AEeS1XdXKGPJRfg" id="(0.8187919463087249,0.55)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_OMYwQC0AEeS1XdXKGPJRfg" type="4008" source="_RrtJcA2IEeSkbsvlP0s7pA" target="_KAeJcC0AEeS1XdXKGPJRfg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_OMZXUC0AEeS1XdXKGPJRfg" type="6006">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OMZXUS0AEeS1XdXKGPJRfg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_OMZ-YC0AEeS1XdXKGPJRfg" type="6030">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OMZ-YS0AEeS1XdXKGPJRfg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_OMYwQS0AEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:Include" href="ReqifForDarwin.uml#_OMW7EC0AEeS1XdXKGPJRfg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OMYwQi0AEeS1XdXKGPJRfg" points="[50, 22, -286, -126]$[311, 152, -25, 4]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OMfd8C0AEeS1XdXKGPJRfg" id="(0.1896551724137931,0.65)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-18AAC6GEeSaMrdXMag_Yg" type="4009" source="_RrtJcA2IEeSkbsvlP0s7pA" target="_7EtxIC6GEeSaMrdXMag_Yg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-18nEC6GEeSaMrdXMag_Yg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-18nES6GEeSaMrdXMag_Yg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-19OIC6GEeSaMrdXMag_Yg" type="6031">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-19OIS6GEeSaMrdXMag_Yg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_-18AAS6GEeSaMrdXMag_Yg"/>
+ <element xmi:type="uml:Extend" href="ReqifForDarwin.uml#_-13ukC6GEeSaMrdXMag_Yg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-18AAi6GEeSaMrdXMag_Yg" points="[-5, 29, -1, -71]$[-74, 100, -70, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_FAgr4C6HEeSaMrdXMag_Yg" type="4009" source="_UBNoQA2IEeSkbsvlP0s7pA" target="_Dx2gYC6HEeSaMrdXMag_Yg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_FAhS8C6HEeSaMrdXMag_Yg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FAhS8S6HEeSaMrdXMag_Yg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FAh6AC6HEeSaMrdXMag_Yg" type="6031">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FAh6AS6HEeSaMrdXMag_Yg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FAgr4S6HEeSaMrdXMag_Yg"/>
+ <element xmi:type="uml:Extend" href="ReqifForDarwin.uml#_FAePoC6HEeSaMrdXMag_Yg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FAgr4i6HEeSaMrdXMag_Yg" points="[-16, 29, 43, -71]$[-53, 129, 6, 29]"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_DwOo0BM1EeSkbsvlP0s7pA" type="PapyrusUMLActivityDiagram" name="Import Activity" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_DwOo0RM1EeSkbsvlP0s7pA" type="2001">
+ <children xmi:type="notation:DecorationNode" xmi:id="_DwOo0hM1EeSkbsvlP0s7pA" type="5001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DwOo1BM1EeSkbsvlP0s7pA" type="7001">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DwOo1RM1EeSkbsvlP0s7pA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DwOo1hM1EeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DwOo1xM1EeSkbsvlP0s7pA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DwOo2BM1EeSkbsvlP0s7pA" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DwOo2RM1EeSkbsvlP0s7pA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DwOo2hM1EeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DwOo2xM1EeSkbsvlP0s7pA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DwOo3BM1EeSkbsvlP0s7pA" type="7003">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DwOo3RM1EeSkbsvlP0s7pA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DwOo3hM1EeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DwOo3xM1EeSkbsvlP0s7pA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DwOo4BM1EeSkbsvlP0s7pA" type="7004">
+ <children xmi:type="notation:Shape" xmi:id="_EwsnUBM1EeSkbsvlP0s7pA" type="3004">
+ <children xmi:type="notation:DecorationNode" xmi:id="_EwsnUxM1EeSkbsvlP0s7pA" type="5080">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EwtOYBM1EeSkbsvlP0s7pA" y="5"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_EwsnURM1EeSkbsvlP0s7pA"/>
+ <element xmi:type="uml:InitialNode" href="ReqifForDarwin.uml#_Ewo88BM1EeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EwsnUhM1EeSkbsvlP0s7pA" x="191" y="14"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FwvvEBM1EeSkbsvlP0s7pA" type="3007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_FwvvExM1EeSkbsvlP0s7pA" type="5003"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_FwvvERM1EeSkbsvlP0s7pA"/>
+ <element xmi:type="uml:OpaqueAction" href="ReqifForDarwin.uml#_FwfQYBM1EeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FwvvEhM1EeSkbsvlP0s7pA" x="35" y="114" width="342"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QTi_cBM1EeSkbsvlP0s7pA" type="3007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QTjmgBM1EeSkbsvlP0s7pA" type="5003"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_QTi_cRM1EeSkbsvlP0s7pA"/>
+ <element xmi:type="uml:OpaqueAction" href="ReqifForDarwin.uml#_QThKQBM1EeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QTi_chM1EeSkbsvlP0s7pA" x="35" y="54" width="341"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fOKkoBM1EeSkbsvlP0s7pA" type="3038">
+ <children xmi:type="notation:DecorationNode" xmi:id="_fOLLsBM1EeSkbsvlP0s7pA" type="5043">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fOLLsRM1EeSkbsvlP0s7pA" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fOLywBM1EeSkbsvlP0s7pA" type="5098">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fOLywRM1EeSkbsvlP0s7pA" y="5"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_fOKkoRM1EeSkbsvlP0s7pA"/>
+ <element xmi:type="uml:DecisionNode" href="ReqifForDarwin.uml#_fOIvcBM1EeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fOKkohM1EeSkbsvlP0s7pA" x="195" y="194"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gh1zABM1EeSkbsvlP0s7pA" type="3080">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gh2aEBM1EeSkbsvlP0s7pA" type="5138"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_gh0k4BM1EeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gh1zARM1EeSkbsvlP0s7pA" x="255" y="174" height="35"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ocJ-MBM1EeSkbsvlP0s7pA" type="3007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ocKlQBM1EeSkbsvlP0s7pA" type="5003"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_ocJ-MRM1EeSkbsvlP0s7pA"/>
+ <element xmi:type="uml:OpaqueAction" href="ReqifForDarwin.uml#_ocIJABM1EeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ocJ-MhM1EeSkbsvlP0s7pA" x="235" y="394" width="201"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CefesBM2EeSkbsvlP0s7pA" type="3039">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CegFwBM2EeSkbsvlP0s7pA" type="5099">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CegFwRM2EeSkbsvlP0s7pA" y="5"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_CefesRM2EeSkbsvlP0s7pA"/>
+ <element xmi:type="uml:MergeNode" href="ReqifForDarwin.uml#_CedpgBM2EeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CefeshM2EeSkbsvlP0s7pA" x="195" y="534"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HJWrUBM2EeSkbsvlP0s7pA" type="3007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_HJWrUxM2EeSkbsvlP0s7pA" type="5003"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_HJWrURM2EeSkbsvlP0s7pA"/>
+ <element xmi:type="uml:OpaqueAction" href="ReqifForDarwin.uml#_HJUPEBM2EeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HJWrUhM2EeSkbsvlP0s7pA" x="35" y="594" width="341"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MJar4BM2EeSkbsvlP0s7pA" type="3005">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MJar4xM2EeSkbsvlP0s7pA" type="5081">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MJbS8BM2EeSkbsvlP0s7pA" y="5"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_MJar4RM2EeSkbsvlP0s7pA"/>
+ <element xmi:type="uml:ActivityFinalNode" href="ReqifForDarwin.uml#_MJYPoBM2EeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MJar4hM2EeSkbsvlP0s7pA" x="195" y="654"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_e4-jIBfoEeSufZ1epFirrQ" type="3038">
+ <children xmi:type="notation:DecorationNode" xmi:id="_e4_xQBfoEeSufZ1epFirrQ" type="5043">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_e4_xQRfoEeSufZ1epFirrQ" y="5"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_e5AYUBfoEeSufZ1epFirrQ" type="5098">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_e5A_YBfoEeSufZ1epFirrQ" y="5"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_e4-jIRfoEeSufZ1epFirrQ"/>
+ <element xmi:type="uml:DecisionNode" href="ReqifForDarwin.uml#_e4vSkBfoEeSufZ1epFirrQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e4-jIhfoEeSufZ1epFirrQ" x="435" y="334"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fkhagBfoEeSufZ1epFirrQ" type="3080">
+ <children xmi:type="notation:DecorationNode" xmi:id="_fkiBkBfoEeSufZ1epFirrQ" type="5138"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_fkflUBfoEeSufZ1epFirrQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fkhagRfoEeSufZ1epFirrQ" x="495" y="314" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9feyYBfoEeSufZ1epFirrQ" type="3007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9fgAgBfoEeSufZ1epFirrQ" type="5003"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_9ffZcBfoEeSufZ1epFirrQ"/>
+ <element xmi:type="uml:OpaqueAction" href="ReqifForDarwin.uml#_9fcWIBfoEeSufZ1epFirrQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9ffZcRfoEeSufZ1epFirrQ" x="475" y="394" width="201"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KKg6kBfpEeSufZ1epFirrQ" type="3007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_KKhhoBfpEeSufZ1epFirrQ" type="5003"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_KKg6kRfpEeSufZ1epFirrQ"/>
+ <element xmi:type="uml:OpaqueAction" href="ReqifForDarwin.uml#_KKeeUBfpEeSufZ1epFirrQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KKg6khfpEeSufZ1epFirrQ" x="471" y="474" width="201"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dz0qMBfuEeSufZ1epFirrQ" type="3007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dz1RQBfuEeSufZ1epFirrQ" type="5003"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_dz0qMRfuEeSufZ1epFirrQ"/>
+ <element xmi:type="uml:OpaqueAction" href="ReqifForDarwin.uml#_dzy1ABfuEeSufZ1epFirrQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dz0qMhfuEeSufZ1epFirrQ" x="275" y="254"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DwOo4RM1EeSkbsvlP0s7pA"/>
+ </children>
+ <element xmi:type="uml:Activity" href="ReqifForDarwin.uml#_CouOMBM1EeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DwOo4hM1EeSkbsvlP0s7pA"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_DwOo4xM1EeSkbsvlP0s7pA" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_DwOo5BM1EeSkbsvlP0s7pA"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_DwOo5RM1EeSkbsvlP0s7pA">
+ <owner xmi:type="uml:Activity" href="ReqifForDarwin.uml#_CouOMBM1EeSkbsvlP0s7pA"/>
+ </styles>
+ <element xmi:type="uml:Activity" href="ReqifForDarwin.uml#_CouOMBM1EeSkbsvlP0s7pA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Ni75ABM1EeSkbsvlP0s7pA" type="4004" source="_QTi_cBM1EeSkbsvlP0s7pA" target="_FwvvEBM1EeSkbsvlP0s7pA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ni8gEBM1EeSkbsvlP0s7pA" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ni8gERM1EeSkbsvlP0s7pA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ni9HIBM1EeSkbsvlP0s7pA" visible="false" type="6004">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ni9HIRM1EeSkbsvlP0s7pA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ni9HIhM1EeSkbsvlP0s7pA" visible="false" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ni9uMBM1EeSkbsvlP0s7pA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ni9uMRM1EeSkbsvlP0s7pA" visible="false" type="6011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ni9uMhM1EeSkbsvlP0s7pA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Ni75ARM1EeSkbsvlP0s7pA"/>
+ <element xmi:type="uml:ControlFlow" href="ReqifForDarwin.uml#_Ni4OoBM1EeSkbsvlP0s7pA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Ni75AhM1EeSkbsvlP0s7pA" points="[-8, 6, -47, -59]$[-132, 65, -171, 0]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lgMuwBfoEeSufZ1epFirrQ" id="(0.4853801169590643,0.1)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_XeVyMBM1EeSkbsvlP0s7pA" type="4004" source="_EwsnUBM1EeSkbsvlP0s7pA" target="_QTi_cBM1EeSkbsvlP0s7pA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_XeVyMxM1EeSkbsvlP0s7pA" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XeWZQBM1EeSkbsvlP0s7pA" x="-13" y="66"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XeWZQRM1EeSkbsvlP0s7pA" visible="false" type="6004">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XeXAUBM1EeSkbsvlP0s7pA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XeXAURM1EeSkbsvlP0s7pA" visible="false" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XeXAUhM1EeSkbsvlP0s7pA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XeXnYBM1EeSkbsvlP0s7pA" visible="false" type="6011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XeXnYRM1EeSkbsvlP0s7pA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_XeVyMRM1EeSkbsvlP0s7pA"/>
+ <element xmi:type="uml:ControlFlow" href="ReqifForDarwin.uml#_XeSu4BM1EeSkbsvlP0s7pA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XeVyMhM1EeSkbsvlP0s7pA" points="[0, 10, 0, -50]$[0, 60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M3S3oBfuEeSufZ1epFirrQ" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Thoa8BfpEeSufZ1epFirrQ" id="(0.46920821114369504,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_md0pQBM1EeSkbsvlP0s7pA" type="4006" source="_gh1zABM1EeSkbsvlP0s7pA" target="_fOKkoBM1EeSkbsvlP0s7pA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_md0pQRM1EeSkbsvlP0s7pA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_md0pQhM1EeSkbsvlP0s7pA" points="[-22, -4, 161, -1]$[-182, -17, 1, -14]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_meJZYBM1EeSkbsvlP0s7pA" id="(0.0672782874617737,0.45714285714285713)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_nM2ScBM1EeSkbsvlP0s7pA" type="4004" source="_FwvvEBM1EeSkbsvlP0s7pA" target="_fOKkoBM1EeSkbsvlP0s7pA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nM25gBM1EeSkbsvlP0s7pA" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nM25gRM1EeSkbsvlP0s7pA" x="-8" y="77"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nM3gkBM1EeSkbsvlP0s7pA" visible="false" type="6004">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nM3gkRM1EeSkbsvlP0s7pA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nM4HoBM1EeSkbsvlP0s7pA" visible="false" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nM4HoRM1EeSkbsvlP0s7pA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nM4HohM1EeSkbsvlP0s7pA" visible="false" type="6011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nM4usBM1EeSkbsvlP0s7pA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_nM2ScRM1EeSkbsvlP0s7pA"/>
+ <element xmi:type="uml:ControlFlow" href="ReqifForDarwin.uml#_nMz2MBM1EeSkbsvlP0s7pA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nM2SchM1EeSkbsvlP0s7pA" points="[0, 20, 0, -55]$[0, 60, 0, -15]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_t5ES0BM1EeSkbsvlP0s7pA" type="4004" source="_fOKkoBM1EeSkbsvlP0s7pA" target="_dz0qMBfuEeSufZ1epFirrQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_t5E54BM1EeSkbsvlP0s7pA" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t5E54RM1EeSkbsvlP0s7pA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t5Fg8BM1EeSkbsvlP0s7pA" visible="false" type="6004">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t5Fg8RM1EeSkbsvlP0s7pA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t5Fg8hM1EeSkbsvlP0s7pA" type="6009">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6v0i0BM1EeSkbsvlP0s7pA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6v0i0RM1EeSkbsvlP0s7pA" key="visible" value="true"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t5GIABM1EeSkbsvlP0s7pA" x="196" y="-34"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t5GIARM1EeSkbsvlP0s7pA" visible="false" type="6011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t5GvEBM1EeSkbsvlP0s7pA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_t5ES0RM1EeSkbsvlP0s7pA"/>
+ <element xmi:type="uml:ControlFlow" href="ReqifForDarwin.uml#_t5AocBM1EeSkbsvlP0s7pA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_t5ES0hM1EeSkbsvlP0s7pA" points="[8, 2, -113, -32]$[115, 32, -6, -2]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BwJ9YBfpEeSufZ1epFirrQ" id="(0.5015673981191222,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_DmCVkBM2EeSkbsvlP0s7pA" type="4004" source="_ocJ-MBM1EeSkbsvlP0s7pA" target="_CefesBM2EeSkbsvlP0s7pA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_DmC8oBM2EeSkbsvlP0s7pA" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DmC8oRM2EeSkbsvlP0s7pA" x="-59" y="-35"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DmC8ohM2EeSkbsvlP0s7pA" visible="false" type="6004">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DmDjsBM2EeSkbsvlP0s7pA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DmDjsRM2EeSkbsvlP0s7pA" visible="false" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DmDjshM2EeSkbsvlP0s7pA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DmEKwBM2EeSkbsvlP0s7pA" visible="false" type="6011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DmEKwRM2EeSkbsvlP0s7pA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_DmCVkRM2EeSkbsvlP0s7pA"/>
+ <element xmi:type="uml:ControlFlow" href="ReqifForDarwin.uml#_Dl_5UBM2EeSkbsvlP0s7pA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DmCVkhM2EeSkbsvlP0s7pA" points="[-13, 14, 38, -46]$[-52, 46, -1, -14]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DmMtoBM2EeSkbsvlP0s7pA" id="(0.4975124378109453,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_E0EO8BM2EeSkbsvlP0s7pA" type="4004" source="_fOKkoBM1EeSkbsvlP0s7pA" target="_CefesBM2EeSkbsvlP0s7pA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_E0E2ABM2EeSkbsvlP0s7pA" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_E0E2ARM2EeSkbsvlP0s7pA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_E0FdEBM2EeSkbsvlP0s7pA" visible="false" type="6004">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_E0FdERM2EeSkbsvlP0s7pA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_E0FdEhM2EeSkbsvlP0s7pA" type="6009">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4zAmwBfpEeSufZ1epFirrQ" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4zBN0BfpEeSufZ1epFirrQ" key="visible" value="true"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_E0FdExM2EeSkbsvlP0s7pA" x="-44" y="85"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_E0GEIBM2EeSkbsvlP0s7pA" visible="false" type="6011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_E0GEIRM2EeSkbsvlP0s7pA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_E0EO8RM2EeSkbsvlP0s7pA"/>
+ <element xmi:type="uml:ControlFlow" href="ReqifForDarwin.uml#_E0BysBM2EeSkbsvlP0s7pA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_E0EO8hM2EeSkbsvlP0s7pA" points="[-2, 12, 13, -114]$[-18, 136, -3, 10]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_LIwgIBM2EeSkbsvlP0s7pA" type="4004" source="_CefesBM2EeSkbsvlP0s7pA" target="_HJWrUBM2EeSkbsvlP0s7pA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LIxHMBM2EeSkbsvlP0s7pA" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LIxHMRM2EeSkbsvlP0s7pA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LIxHMhM2EeSkbsvlP0s7pA" visible="false" type="6004">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LIxHMxM2EeSkbsvlP0s7pA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LIxuQBM2EeSkbsvlP0s7pA" visible="false" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LIxuQRM2EeSkbsvlP0s7pA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LIyVUBM2EeSkbsvlP0s7pA" visible="false" type="6011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LIyVURM2EeSkbsvlP0s7pA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_LIwgIRM2EeSkbsvlP0s7pA"/>
+ <element xmi:type="uml:ControlFlow" href="ReqifForDarwin.uml#_LIuD4BM2EeSkbsvlP0s7pA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LIwgIhM2EeSkbsvlP0s7pA" points="[0, 5, 0, -51]$[0, 36, 0, -20]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LI64MBM2EeSkbsvlP0s7pA" id="(0.25,0.5666666666666667)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NJPKIBM2EeSkbsvlP0s7pA" type="4004" source="_HJWrUBM2EeSkbsvlP0s7pA" target="_MJar4BM2EeSkbsvlP0s7pA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_NJPKIxM2EeSkbsvlP0s7pA" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NJPxMBM2EeSkbsvlP0s7pA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NJPxMRM2EeSkbsvlP0s7pA" visible="false" type="6004">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NJPxMhM2EeSkbsvlP0s7pA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NJQYQBM2EeSkbsvlP0s7pA" visible="false" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NJQYQRM2EeSkbsvlP0s7pA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NJQ_UBM2EeSkbsvlP0s7pA" visible="false" type="6011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NJQ_URM2EeSkbsvlP0s7pA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_NJPKIRM2EeSkbsvlP0s7pA"/>
+ <element xmi:type="uml:ControlFlow" href="ReqifForDarwin.uml#_NJMt4BM2EeSkbsvlP0s7pA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NJPKIhM2EeSkbsvlP0s7pA" points="[3, 20, -9, -49]$[12, 59, 0, -10]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kugMEBfoEeSufZ1epFirrQ" type="4006" source="_fkhagBfoEeSufZ1epFirrQ" target="_e4-jIBfoEeSufZ1epFirrQ">
+ <styles xmi:type="notation:FontStyle" xmi:id="_kugMERfoEeSufZ1epFirrQ"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kugMEhfoEeSufZ1epFirrQ" points="[-57, -5, 141, -2]$[-198, -18, 0, -15]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kulroBfoEeSufZ1epFirrQ" id="(0.22529644268774704,0.2833333333333333)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_uxBZ4BfoEeSufZ1epFirrQ" type="4004" source="_e4-jIBfoEeSufZ1epFirrQ" target="_9feyYBfoEeSufZ1epFirrQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_uxCoABfoEeSufZ1epFirrQ" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uxCoARfoEeSufZ1epFirrQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uxDPEBfoEeSufZ1epFirrQ" visible="false" type="6004">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uxDPERfoEeSufZ1epFirrQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uxD2IBfoEeSufZ1epFirrQ" type="6009">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FSx6IBfqEeSufZ1epFirrQ" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FSx6IRfqEeSufZ1epFirrQ" key="visible" value="true"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uxEdMBfoEeSufZ1epFirrQ" x="133" y="-39"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uxFEQBfoEeSufZ1epFirrQ" visible="false" type="6011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uxFEQRfoEeSufZ1epFirrQ" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_uxBZ4RfoEeSufZ1epFirrQ"/>
+ <element xmi:type="uml:ControlFlow" href="ReqifForDarwin.uml#_uw76UBfoEeSufZ1epFirrQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uxBZ4hfoEeSufZ1epFirrQ" points="[-6, -4, 361, 232]$[-336, -216, 31, 20]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vC5NABfoEeSufZ1epFirrQ" id="(0.3,0.5666666666666667)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_FiUncBfpEeSufZ1epFirrQ" type="4004" source="_e4-jIBfoEeSufZ1epFirrQ" target="_ocJ-MBM1EeSkbsvlP0s7pA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_FiVOgBfpEeSufZ1epFirrQ" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FiVOgRfpEeSufZ1epFirrQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FiV1kBfpEeSufZ1epFirrQ" visible="false" type="6004">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FiWcoBfpEeSufZ1epFirrQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FiWcoRfpEeSufZ1epFirrQ" type="6009">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FSyhMBfqEeSufZ1epFirrQ" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FSzIQBfqEeSufZ1epFirrQ" key="visible" value="true"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FiXDsBfpEeSufZ1epFirrQ" x="87" y="49"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FiXqwBfpEeSufZ1epFirrQ" visible="false" type="6011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FiXqwRfpEeSufZ1epFirrQ" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_FiUncRfpEeSufZ1epFirrQ"/>
+ <element xmi:type="uml:ControlFlow" href="ReqifForDarwin.uml#_FiRkIBfpEeSufZ1epFirrQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FiUnchfpEeSufZ1epFirrQ" points="[-3, 3, 64, -105]$[-62, 88, 5, -20]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FiiC0BfpEeSufZ1epFirrQ" id="(0.2,0.4666666666666667)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NJmh4BfpEeSufZ1epFirrQ" type="4004" source="_9feyYBfoEeSufZ1epFirrQ" target="_KKg6kBfpEeSufZ1epFirrQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_NJnI8BfpEeSufZ1epFirrQ" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NJnI8RfpEeSufZ1epFirrQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NJnwABfpEeSufZ1epFirrQ" visible="false" type="6004">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NJoXEBfpEeSufZ1epFirrQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NJoXERfpEeSufZ1epFirrQ" visible="false" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NJo-IBfpEeSufZ1epFirrQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NJplMBfpEeSufZ1epFirrQ" visible="false" type="6011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NJplMRfpEeSufZ1epFirrQ" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_NJmh4RfpEeSufZ1epFirrQ"/>
+ <element xmi:type="uml:ControlFlow" href="ReqifForDarwin.uml#_NJi3gBfpEeSufZ1epFirrQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NJmh4hfpEeSufZ1epFirrQ" points="[-4, 20, 20, -42]$[43, 64, 67, 2]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NqUCQBfpEeSufZ1epFirrQ" type="4004" source="_KKg6kBfpEeSufZ1epFirrQ" target="_CefesBM2EeSkbsvlP0s7pA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_NqUpUBfpEeSufZ1epFirrQ" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NqUpURfpEeSufZ1epFirrQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NqVQYBfpEeSufZ1epFirrQ" visible="false" type="6004">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NqVQYRfpEeSufZ1epFirrQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NqV3cBfpEeSufZ1epFirrQ" visible="false" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NqWegBfpEeSufZ1epFirrQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NqXFkBfpEeSufZ1epFirrQ" visible="false" type="6011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NqXFkRfpEeSufZ1epFirrQ" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_NqUCQRfpEeSufZ1epFirrQ"/>
+ <element xmi:type="uml:ControlFlow" href="ReqifForDarwin.uml#_NqQX4BfpEeSufZ1epFirrQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NqUCQhfpEeSufZ1epFirrQ" points="[-32, -3, 322, 30]$[-358, -32, -4, 1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NqgPgBfpEeSufZ1epFirrQ" id="(0.4975124378109453,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NqgPgRfpEeSufZ1epFirrQ" id="(0.3,0.5666666666666667)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_wgtAEBfuEeSufZ1epFirrQ" type="4004" source="_dz0qMBfuEeSufZ1epFirrQ" target="_e4-jIBfoEeSufZ1epFirrQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wgtnIBfuEeSufZ1epFirrQ" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wguOMBfuEeSufZ1epFirrQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wgu1QBfuEeSufZ1epFirrQ" visible="false" type="6004">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wgu1QRfuEeSufZ1epFirrQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wgvcUBfuEeSufZ1epFirrQ" visible="false" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wgvcURfuEeSufZ1epFirrQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wgwDYBfuEeSufZ1epFirrQ" visible="false" type="6011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wgwDYRfuEeSufZ1epFirrQ" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wgtAERfuEeSufZ1epFirrQ"/>
+ <element xmi:type="uml:ControlFlow" href="ReqifForDarwin.uml#_wgpVsBfuEeSufZ1epFirrQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wgtAEhfuEeSufZ1epFirrQ" points="[-3, 8, 0, -57]$[-6, 66, -3, 1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wg4mQBfuEeSufZ1epFirrQ" id="(0.5266457680250783,0.8)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wg4mQRfuEeSufZ1epFirrQ" id="(0.25,0.5666666666666667)"/>
+ </edges>
+ </notation:Diagram>
+ <css:ModelStyleSheets xmi:id="_PKv6QBfpEeSufZ1epFirrQ"/>
+ <notation:Diagram xmi:id="_jhdxYCazEeSjdJiE6np9EA" type="PapyrusUMLClassDiagram" name="Architecture of ReqIF Import-Export" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_lUJ3ACazEeSjdJiE6np9EA" type="2007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_lULFICazEeSjdJiE6np9EA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lULFISazEeSjdJiE6np9EA" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_6GEmgCw0EeSjdJiE6np9EA" type="3009">
+ <children xmi:type="notation:DecorationNode" xmi:id="_6GFNkCw0EeSjdJiE6np9EA" type="5017"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6GFNkSw0EeSjdJiE6np9EA" type="7010">
+ <children xmi:type="notation:Shape" xmi:id="_De13QCw2EeSjdJiE6np9EA" type="3010" fillColor="8047085">
+ <children xmi:type="notation:DecorationNode" xmi:id="_De13Qiw2EeSjdJiE6np9EA" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_De2eUCw2EeSjdJiE6np9EA" visible="false" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_De2eUSw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_De2eUiw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_De2eUyw2EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_De2eVCw2EeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_De2eVSw2EeSjdJiE6np9EA" visible="false" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_De2eViw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_De2eVyw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_De2eWCw2EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_De2eWSw2EeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_De2eWiw2EeSjdJiE6np9EA" visible="false" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_De2eWyw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_De2eXCw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_De2eXSw2EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_De2eXiw2EeSjdJiE6np9EA"/>
+ </children>
+ <element xmi:type="uml:Class" href="ReqifForDarwin.uml#_De0CECw2EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_De13QSw2EeSjdJiE6np9EA" x="15" y="76" width="141" height="21"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LYU8ACw2EeSjdJiE6np9EA" type="3010" fillColor="8047085">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LYU8Aiw2EeSjdJiE6np9EA" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LYU8Ayw2EeSjdJiE6np9EA" visible="false" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LYU8BCw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LYU8BSw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LYU8Biw2EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LYU8Byw2EeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LYVjECw2EeSjdJiE6np9EA" visible="false" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LYVjESw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LYVjEiw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LYVjEyw2EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LYVjFCw2EeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LYVjFSw2EeSjdJiE6np9EA" visible="false" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LYVjFiw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LYVjFyw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LYVjGCw2EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LYVjGSw2EeSjdJiE6np9EA"/>
+ </children>
+ <element xmi:type="uml:Class" href="ReqifForDarwin.uml#_LYTG0Cw2EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LYU8ASw2EeSjdJiE6np9EA" x="175" y="76" width="141" height="21"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iP80ACw2EeSjdJiE6np9EA" type="3010" fillColor="8047085">
+ <children xmi:type="notation:DecorationNode" xmi:id="_iP80Aiw2EeSjdJiE6np9EA" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iP80Ayw2EeSjdJiE6np9EA" visible="false" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iP80BCw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iP80BSw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iP80Biw2EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iP80Byw2EeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iP9bECw2EeSjdJiE6np9EA" visible="false" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iP9bESw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iP9bEiw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iP9bEyw2EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iP9bFCw2EeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iP9bFSw2EeSjdJiE6np9EA" visible="false" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iP9bFiw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iP9bFyw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iP9bGCw2EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iP9bGSw2EeSjdJiE6np9EA"/>
+ </children>
+ <element xmi:type="uml:Class" href="ReqifForDarwin.uml#_iP7l4Cw2EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iP80ASw2EeSjdJiE6np9EA" x="15" y="20" width="201" height="21"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6GFNkiw0EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6GFNkyw0EeSjdJiE6np9EA"/>
+ </children>
+ <element xmi:type="uml:Package" href="ReqifForDarwin.uml#_6GCKQCw0EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6GEmgSw0EeSjdJiE6np9EA" x="420" y="20" width="381" height="141"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_72bw4Cw0EeSjdJiE6np9EA" type="3009">
+ <children xmi:type="notation:DecorationNode" xmi:id="_72cX8Cw0EeSjdJiE6np9EA" type="5017"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_72cX8Sw0EeSjdJiE6np9EA" type="7010">
+ <children xmi:type="notation:Shape" xmi:id="_X5WnECxLEeSjdJiE6np9EA" type="3009">
+ <children xmi:type="notation:DecorationNode" xmi:id="_X5WnEixLEeSjdJiE6np9EA" type="5017"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_X5WnEyxLEeSjdJiE6np9EA" type="7010">
+ <children xmi:type="notation:Shape" xmi:id="_YWIrsCw1EeSjdJiE6np9EA" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_YWJSwCw1EeSjdJiE6np9EA" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YWJSwSw1EeSjdJiE6np9EA" visible="false" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YWJSwiw1EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YWJSwyw1EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YWJSxCw1EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YWJSxSw1EeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YWJ50Cw1EeSjdJiE6np9EA" visible="false" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YWJ50Sw1EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YWJ50iw1EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YWJ50yw1EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YWJ51Cw1EeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YWJ51Sw1EeSjdJiE6np9EA" visible="false" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YWJ51iw1EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YWJ51yw1EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YWJ52Cw1EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YWJ52Sw1EeSjdJiE6np9EA"/>
+ </children>
+ <element xmi:type="uml:Class" href="ReqifForDarwin.uml#_YWHdkCw1EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YWIrsSw1EeSjdJiE6np9EA" x="40" y="51" width="181" height="21"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YGoaoCw2EeSjdJiE6np9EA" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_YGoaoiw2EeSjdJiE6np9EA" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YGpBsCw2EeSjdJiE6np9EA" visible="false" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YGpBsSw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YGpBsiw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YGpBsyw2EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YGpBtCw2EeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YGpBtSw2EeSjdJiE6np9EA" visible="false" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YGpBtiw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YGpBtyw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YGpBuCw2EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YGpBuSw2EeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YGpBuiw2EeSjdJiE6np9EA" visible="false" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_YGpBuyw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_YGpBvCw2EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_YGpBvSw2EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YGpBviw2EeSjdJiE6np9EA"/>
+ </children>
+ <element xmi:type="uml:Class" href="ReqifForDarwin.uml#_YGnMgCw2EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YGoaoSw2EeSjdJiE6np9EA" x="40" y="11" width="181" height="25"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2CqmACw1EeSjdJiE6np9EA" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_2CqmAiw1EeSjdJiE6np9EA" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2CrNECw1EeSjdJiE6np9EA" visible="false" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2CrNESw1EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2CrNEiw1EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2CrNEyw1EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2CrNFCw1EeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2CrNFSw1EeSjdJiE6np9EA" visible="false" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2CrNFiw1EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2CrNFyw1EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2CrNGCw1EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2CrNGSw1EeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2CrNGiw1EeSjdJiE6np9EA" visible="false" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2CrNGyw1EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2CrNHCw1EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2CrNHSw1EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2CrNHiw1EeSjdJiE6np9EA"/>
+ </children>
+ <element xmi:type="uml:Class" href="ReqifForDarwin.uml#_2Cow0Cw1EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2CqmASw1EeSjdJiE6np9EA" x="175" y="112" width="141" height="25"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_q1Uj0Cw1EeSjdJiE6np9EA" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_q1Uj0iw1EeSjdJiE6np9EA" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_q1VK4Cw1EeSjdJiE6np9EA" visible="false" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_q1VK4Sw1EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_q1VK4iw1EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_q1VK4yw1EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q1VK5Cw1EeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_q1VK5Sw1EeSjdJiE6np9EA" visible="false" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_q1VK5iw1EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_q1VK5yw1EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_q1VK6Cw1EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q1VK6Sw1EeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_q1VK6iw1EeSjdJiE6np9EA" visible="false" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_q1VK6yw1EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_q1VK7Cw1EeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_q1VK7Sw1EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q1VK7iw1EeSjdJiE6np9EA"/>
+ </children>
+ <element xmi:type="uml:Class" href="ReqifForDarwin.uml#_q1TVsCw1EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q1Uj0Sw1EeSjdJiE6np9EA" x="15" y="112" width="141" height="21"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_X5WnFCxLEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X5WnFSxLEeSjdJiE6np9EA"/>
+ </children>
+ <element xmi:type="uml:Package" href="ReqifForDarwin.uml#_X5UK0CxLEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X5WnESxLEeSjdJiE6np9EA" x="255" y="12" width="341" height="181"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_4JzhkCxJEeSjdJiE6np9EA" type="3009">
+ <children xmi:type="notation:DecorationNode" xmi:id="_4J0IoCxJEeSjdJiE6np9EA" type="5017"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4J0IoSxJEeSjdJiE6np9EA" type="7010">
+ <children xmi:type="notation:Shape" xmi:id="_iice8CxGEeSjdJiE6np9EA" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_iidGACxGEeSjdJiE6np9EA" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iidGASxGEeSjdJiE6np9EA" visible="false" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iidGAixGEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iidGAyxGEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iidGBCxGEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iidGBSxGEeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iidtECxGEeSjdJiE6np9EA" type="7012">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6g3DECxKEeSjdJiE6np9EA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6g3DESxKEeSjdJiE6np9EA" key="visible" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_7ScRACxKEeSjdJiE6np9EA" type="3013">
+ <element xmi:type="uml:Operation" href="ReqifForDarwin.uml#_7SZ0wCxKEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7ScRASxKEeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__YzpcCxKEeSjdJiE6np9EA" type="3013">
+ <element xmi:type="uml:Operation" href="ReqifForDarwin.uml#__YybUCxKEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__YzpcSxKEeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CTnNsCxLEeSjdJiE6np9EA" type="3013">
+ <element xmi:type="uml:Operation" href="ReqifForDarwin.uml#_CTkKYCxLEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CTnNsSxLEeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Pyvk8CxOEeSjdJiE6np9EA" type="3013">
+ <element xmi:type="uml:Operation" href="ReqifForDarwin.uml#_Pyr6kCxOEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Pyvk8SxOEeSjdJiE6np9EA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iidtESxGEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iidtEixGEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iidtEyxGEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iidtFCxGEeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iidtFSxGEeSjdJiE6np9EA" visible="false" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iidtFixGEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iidtFyxGEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iidtGCxGEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iidtGSxGEeSjdJiE6np9EA"/>
+ </children>
+ <element xmi:type="uml:Class" href="ReqifForDarwin.uml#_iiaCsCxGEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iice8SxGEeSjdJiE6np9EA" x="15" y="12" width="181" height="101"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4J0IoixJEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4J0IoyxJEeSjdJiE6np9EA"/>
+ </children>
+ <element xmi:type="uml:Package" href="ReqifForDarwin.uml#_4JxFUCxJEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4JzhkSxJEeSjdJiE6np9EA" x="15" y="12" width="221" height="161"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_k2gIECxNEeSjdJiE6np9EA" type="3009">
+ <children xmi:type="notation:DecorationNode" xmi:id="_k2gvICxNEeSjdJiE6np9EA" type="5017"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_k2gvISxNEeSjdJiE6np9EA" type="7010">
+ <children xmi:type="notation:Shape" xmi:id="_nBpxACxNEeSjdJiE6np9EA" type="3010">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nBqYECxNEeSjdJiE6np9EA" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nBqYESxNEeSjdJiE6np9EA" visible="false" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nBqYEixNEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nBqYEyxNEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nBqYFCxNEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nBqYFSxNEeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nBqYFixNEeSjdJiE6np9EA" visible="false" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nBqYFyxNEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nBqYGCxNEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nBqYGSxNEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nBqYGixNEeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nBq_ICxNEeSjdJiE6np9EA" visible="false" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nBq_ISxNEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nBq_IixNEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nBq_IyxNEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nBq_JCxNEeSjdJiE6np9EA"/>
+ </children>
+ <element xmi:type="uml:Class" href="ReqifForDarwin.uml#_nBoi4CxNEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nBpxASxNEeSjdJiE6np9EA" x="15" y="12" width="161" height="21"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k2gvIixNEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k2gvIyxNEeSjdJiE6np9EA"/>
+ </children>
+ <element xmi:type="uml:Package" href="ReqifForDarwin.uml#_k2eS4CxNEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k2gIESxNEeSjdJiE6np9EA" x="615" y="12" height="81"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_72cX8iw0EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_72cX8yw0EeSjdJiE6np9EA"/>
+ </children>
+ <element xmi:type="uml:Package" href="ReqifForDarwin.uml#_72Z7sCw0EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_72bw4Sw0EeSjdJiE6np9EA" x="35" y="232" width="846" height="241"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ID4lMCw1EeSjdJiE6np9EA" type="3009">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ID4lMiw1EeSjdJiE6np9EA" type="5017"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ID4lMyw1EeSjdJiE6np9EA" type="7010">
+ <children xmi:type="notation:Shape" xmi:id="_o364sCazEeSjdJiE6np9EA" type="3010" fillColor="8047085">
+ <children xmi:type="notation:DecorationNode" xmi:id="_o37fwCazEeSjdJiE6np9EA" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_o37fwSazEeSjdJiE6np9EA" visible="false" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_o37fwiazEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_o37fwyazEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_o37fxCazEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o37fxSazEeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_o37fxiazEeSjdJiE6np9EA" type="7012">
+ <children xmi:type="notation:Shape" xmi:id="_sFV28CazEeSjdJiE6np9EA" type="3013" fillColor="8047085">
+ <element xmi:type="uml:Operation" href="ReqifForDarwin.uml#_sFUBwCazEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sFWeACazEeSjdJiE6np9EA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_o37fxyazEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_o37fyCazEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_o37fySazEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o37fyiazEeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_o37fyyazEeSjdJiE6np9EA" visible="false" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_o37fzCazEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_o37fzSazEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_o37fziazEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o37fzyazEeSjdJiE6np9EA"/>
+ </children>
+ <element xmi:type="uml:Class" href="ReqifForDarwin.uml#_o1kIQCazEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_o364sSazEeSjdJiE6np9EA" x="15" y="92" height="56"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_n9Um4CeeEeSjdJiE6np9EA" type="3010" fillColor="8047085">
+ <children xmi:type="notation:DecorationNode" xmi:id="_n9VN8CeeEeSjdJiE6np9EA" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_n9VN8SeeEeSjdJiE6np9EA" visible="false" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_n9VN8ieeEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_n9VN8yeeEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_n9VN9CeeEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n9VN9SeeEeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_n9VN9ieeEeSjdJiE6np9EA" visible="false" type="7012">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_n9VN9yeeEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_n9VN-CeeEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_n9VN-SeeEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n9VN-ieeEeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_n9V1ACeeEeSjdJiE6np9EA" visible="false" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_n9V1ASeeEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_n9V1AieeEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_n9V1AyeeEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n9V1BCeeEeSjdJiE6np9EA"/>
+ </children>
+ <element xmi:type="uml:Class" href="ReqifForDarwin.uml#_n9SxsCeeEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n9Um4SeeEeSjdJiE6np9EA" x="115" y="12" width="161" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZIzpsCeeEeSjdJiE6np9EA" type="3010" fillColor="8047085">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZI0QwCeeEeSjdJiE6np9EA" type="5014"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZI0QwSeeEeSjdJiE6np9EA" visible="false" type="7011">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZI0QwieeEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZI0QwyeeEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZI0QxCeeEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZI0QxSeeEeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZI0QxieeEeSjdJiE6np9EA" type="7012">
+ <children xmi:type="notation:Shape" xmi:id="_d-8SMCeeEeSjdJiE6np9EA" type="3013">
+ <element xmi:type="uml:Operation" href="ReqifForDarwin.uml#_d-6dACeeEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_d-8SMSeeEeSjdJiE6np9EA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZI0QxyeeEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZI0QyCeeEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZI0QySeeEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZI0QyieeEeSjdJiE6np9EA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZI0QyyeeEeSjdJiE6np9EA" visible="false" type="7013">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZI0QzCeeEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZI0QzSeeEeSjdJiE6np9EA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZI0QzieeEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZI0QzyeeEeSjdJiE6np9EA"/>
+ </children>
+ <element xmi:type="uml:Class" href="ReqifForDarwin.uml#_ZIxNcCeeEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZIzpsSeeEeSjdJiE6np9EA" x="195" y="92" height="58"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ID4lNCw1EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ID4lNSw1EeSjdJiE6np9EA"/>
+ </children>
+ <element xmi:type="uml:Package" href="ReqifForDarwin.uml#_ID2I8Cw1EeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ID4lMSw1EeSjdJiE6np9EA" x="35" y="12" width="366" height="189"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cW2lwCxOEeSjdJiE6np9EA" type="3028" fontHeight="10">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fOGfsCxOEeSjdJiE6np9EA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fOKxICxOEeSjdJiE6np9EA" key="fontColor" value="true"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gDrc0CxOEeSjdJiE6np9EA" key="bold" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cW3M0CxOEeSjdJiE6np9EA" type="5063"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_cWRW8CxOEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cW2lwSxOEeSjdJiE6np9EA" x="475" y="172" height="41"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lULFIiazEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lULFIyazEeSjdJiE6np9EA"/>
+ </children>
+ <element xmi:type="uml:Package" href="ReqifForDarwin.uml#_lTqHwCazEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lUKeECazEeSjdJiE6np9EA" x="40" y="20" width="901" height="521"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_jhdxYSazEeSjdJiE6np9EA" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_jhdxYiazEeSjdJiE6np9EA"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_jhdxYyazEeSjdJiE6np9EA">
+ <owner xmi:type="uml:Model" href="ReqifForDarwin.uml#_M7ibhg2HEeSkbsvlP0s7pA"/>
+ </styles>
+ <element xmi:type="uml:Model" href="ReqifForDarwin.uml#_M7ibhg2HEeSkbsvlP0s7pA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_s3dloCeeEeSjdJiE6np9EA" type="4002" source="_ZIzpsCeeEeSjdJiE6np9EA" target="_n9Um4CeeEeSjdJiE6np9EA" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_s3eMsCeeEeSjdJiE6np9EA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s3eMsSeeEeSjdJiE6np9EA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_s3dloSeeEeSjdJiE6np9EA"/>
+ <element xmi:type="uml:Generalization" href="ReqifForDarwin.uml#_s3NG8CeeEeSjdJiE6np9EA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_s3dloieeEeSjdJiE6np9EA" points="[0, 0, 101, 39]$[0, -20, 101, 19]$[-86, -20, 15, 19]$[-86, -39, 15, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_s3y80CeeEeSjdJiE6np9EA" id="(0.5850340136054422,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Tos0wCxMEeSjdJiE6np9EA" id="(0.40372670807453415,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_toy78CeeEeSjdJiE6np9EA" type="4002" source="_o364sCazEeSjdJiE6np9EA" target="_n9Um4CeeEeSjdJiE6np9EA" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tozjACeeEeSjdJiE6np9EA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tozjASeeEeSjdJiE6np9EA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_toy78SeeEeSjdJiE6np9EA"/>
+ <element xmi:type="uml:Generalization" href="ReqifForDarwin.uml#_toxt0CeeEeSjdJiE6np9EA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_toy78ieeEeSjdJiE6np9EA" points="[0, 0, -152, 39]$[0, -20, -152, 19]$[134, -20, -18, 19]$[134, -39, -18, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_to4bgCeeEeSjdJiE6np9EA" id="(0.30666666666666664,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ton8QCxMEeSjdJiE6np9EA" id="(0.6086956521739131,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_wjNTsCw1EeSjdJiE6np9EA" type="4002" source="_q1Uj0Cw1EeSjdJiE6np9EA" target="_YWIrsCw1EeSjdJiE6np9EA" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wjN6wiw1EeSjdJiE6np9EA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wjN6wyw1EeSjdJiE6np9EA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wjN6wCw1EeSjdJiE6np9EA"/>
+ <element xmi:type="uml:Generalization" href="ReqifForDarwin.uml#_wjMFkCw1EeSjdJiE6np9EA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wjN6wSw1EeSjdJiE6np9EA" points="[3, 0, -57, 40]$[3, -20, -57, 20]$[60, -20, 0, 20]$[60, -40, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NQfgECxNEeSjdJiE6np9EA" id="(0.425531914893617,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NQfgESxNEeSjdJiE6np9EA" id="(0.5248618784530387,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__d044Cw1EeSjdJiE6np9EA" type="4002" source="_2CqmACw1EeSjdJiE6np9EA" target="_YWIrsCw1EeSjdJiE6np9EA" routing="Tree">
+ <children xmi:type="notation:DecorationNode" xmi:id="__d044yw1EeSjdJiE6np9EA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__d1f8Cw1EeSjdJiE6np9EA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__d044Sw1EeSjdJiE6np9EA"/>
+ <element xmi:type="uml:Generalization" href="ReqifForDarwin.uml#__dzDsCw1EeSjdJiE6np9EA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__d044iw1EeSjdJiE6np9EA" points="[0, 0, 120, 40]$[0, -20, 120, 20]$[-120, -20, 0, 20]$[-120, -40, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__d6YcCw1EeSjdJiE6np9EA" id="(0.5673758865248227,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_N1qCoCxNEeSjdJiE6np9EA" id="(0.5248618784530387,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_n2HYACxGEeSjdJiE6np9EA" type="4002" source="_iice8CxGEeSjdJiE6np9EA" target="_o364sCazEeSjdJiE6np9EA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_n2HYAyxGEeSjdJiE6np9EA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_n2H_ECxGEeSjdJiE6np9EA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_n2HYASxGEeSjdJiE6np9EA"/>
+ <element xmi:type="uml:Generalization" href="ReqifForDarwin.uml#_n2Fi0CxGEeSjdJiE6np9EA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_n2HYAixGEeSjdJiE6np9EA" points="[-22, -16, 183, 138]$[-172, -147, 33, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n2MQgCxGEeSjdJiE6np9EA" id="(0.5524861878453039,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n2M3kCxGEeSjdJiE6np9EA" id="(0.8333333333333334,0.8571428571428571)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_GwJDYCxLEeSjdJiE6np9EA" type="4007" source="_iice8CxGEeSjdJiE6np9EA" target="_YGoaoCw2EeSjdJiE6np9EA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GwJqcCxLEeSjdJiE6np9EA" type="6016">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GwJqcSxLEeSjdJiE6np9EA" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GwKRgCxLEeSjdJiE6np9EA" type="6017">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GwKRgSxLEeSjdJiE6np9EA" x="4" y="21"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_GwJDYSxLEeSjdJiE6np9EA"/>
+ <element xmi:type="uml:Usage" href="ReqifForDarwin.uml#_GwGnICxLEeSjdJiE6np9EA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GwJDYixLEeSjdJiE6np9EA" points="[25, -6, -155, 0]$[164, -6, -16, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Gw87sCxLEeSjdJiE6np9EA" id="(0.9116022099447514,0.2345679012345679)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Gw87sSxLEeSjdJiE6np9EA" id="(0.0,0.52)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_lHc4sCxOEeSjdJiE6np9EA" type="4013" source="_cW2lwCxOEeSjdJiE6np9EA" target="_6GEmgCw0EeSjdJiE6np9EA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_lHc4sSxOEeSjdJiE6np9EA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lHc4sixOEeSjdJiE6np9EA" points="[-11, -20, 16, 32]$[-48, -39, -21, 13]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_q7D2ECxOEeSjdJiE6np9EA" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lHulgCxOEeSjdJiE6np9EA" id="(0.3228346456692913,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_mJchMCxOEeSjdJiE6np9EA" type="4013" source="_cW2lwCxOEeSjdJiE6np9EA" target="_ID4lMCw1EeSjdJiE6np9EA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_mJchMSxOEeSjdJiE6np9EA"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mJchMixOEeSjdJiE6np9EA" points="[-19, -7, 94, 0]$[-98, 0, 15, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mJe9cCxOEeSjdJiE6np9EA" id="(0.0,0.4634146341463415)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mJe9cSxOEeSjdJiE6np9EA" id="(1.0,0.9470899470899471)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_ma2C4C0BEeS1XdXKGPJRfg" type="UseCase" name="Import UseCase Diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_nxnokC0BEeS1XdXKGPJRfg" type="2013">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nxnoki0BEeS1XdXKGPJRfg" type="5016"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nxoPoC0BEeS1XdXKGPJRfg" type="7009">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nxoPoS0BEeS1XdXKGPJRfg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nxoPoi0BEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nxoPoy0BEeS1XdXKGPJRfg"/>
+ </children>
+ <element xmi:type="uml:UseCase" href="ReqifForDarwin.uml#_RrUH4A2IEeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nxnokS0BEeS1XdXKGPJRfg" x="20" y="20" width="201"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_pXlg0C0BEeS1XdXKGPJRfg" type="2018">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YTUSEC0CEeS1XdXKGPJRfg" source="PapyrusHyperLink_Page" references="_DwOo0BM1EeSkbsvlP0s7pA">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YTUSES0CEeS1XdXKGPJRfg" key="tooltip_text" value="import Activity"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YTUSEi0CEeS1XdXKGPJRfg" key="pageName" value="PapyrusHyperLink_Page"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YTUSEy0CEeS1XdXKGPJRfg" key="is_default_navigation" value="false"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pXmH4i0BEeS1XdXKGPJRfg" type="5027"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_pXmH4C0BEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_o9NR8C0BEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pXmH4S0BEeS1XdXKGPJRfg" x="247" y="12" width="970"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Hcf9kC0QEeS1XdXKGPJRfg" type="2018">
+ <children xmi:type="notation:DecorationNode" xmi:id="_HchywC0QEeS1XdXKGPJRfg" type="5027"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_Hcf9kS0QEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_HAk2kC0QEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hcf9ki0QEeS1XdXKGPJRfg" x="252" y="105" width="965" height="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ltnysC0QEeS1XdXKGPJRfg" type="2013">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ltoZwC0QEeS1XdXKGPJRfg" type="5016"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ltpA0C0QEeS1XdXKGPJRfg" type="7009">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ltpA0S0QEeS1XdXKGPJRfg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ltpA0i0QEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ltpA0y0QEeS1XdXKGPJRfg"/>
+ </children>
+ <element xmi:type="uml:UseCase" href="ReqifForDarwin.uml#_6UJ0QCeeEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ltnysS0QEeS1XdXKGPJRfg" x="20" y="180" width="261" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_pTcC0C0QEeS1XdXKGPJRfg" type="2018">
+ <children xmi:type="notation:DecorationNode" xmi:id="_pTcp4C0QEeS1XdXKGPJRfg" type="5027"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_pTcC0S0QEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_lMie4C0QEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pTcC0i0QEeS1XdXKGPJRfg" x="300" y="180" width="921" height="21"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0g3kkC0QEeS1XdXKGPJRfg" type="2013">
+ <children xmi:type="notation:DecorationNode" xmi:id="_0g4LoC0QEeS1XdXKGPJRfg" type="5016"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0g4LoS0QEeS1XdXKGPJRfg" type="7009">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0g4Loi0QEeS1XdXKGPJRfg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0g4Loy0QEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0g4LpC0QEeS1XdXKGPJRfg"/>
+ </children>
+ <element xmi:type="uml:UseCase" href="ReqifForDarwin.uml#_H53pUC0AEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0g3kkS0QEeS1XdXKGPJRfg" x="20" y="240" width="261" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_126xgC0QEeS1XdXKGPJRfg" type="2018">
+ <children xmi:type="notation:DecorationNode" xmi:id="_127YkC0QEeS1XdXKGPJRfg" type="5027"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_126xgS0QEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_z6_QUC0QEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_126xgi0QEeS1XdXKGPJRfg" x="300" y="240" width="921" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VD_4kC0REeS1XdXKGPJRfg" type="2013">
+ <children xmi:type="notation:DecorationNode" xmi:id="_VEAfoC0REeS1XdXKGPJRfg" type="5016"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VEAfoS0REeS1XdXKGPJRfg" type="7009">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VEAfoi0REeS1XdXKGPJRfg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VEAfoy0REeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VEAfpC0REeS1XdXKGPJRfg"/>
+ </children>
+ <element xmi:type="uml:UseCase" href="ReqifForDarwin.uml#_KAbGIC0AEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VD_4kS0REeS1XdXKGPJRfg" x="20" y="320" width="261" height="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZMc7sC0REeS1XdXKGPJRfg" type="2018">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZMdiwC0REeS1XdXKGPJRfg" type="5027"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_ZMc7sS0REeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_UZQ5gC0REeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZMc7si0REeS1XdXKGPJRfg" x="300" y="320" width="921"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mK2cEC0iEeS1XdXKGPJRfg" type="2018" fillColor="10011046">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JM1isC0kEeS1XdXKGPJRfg" source="PapyrusHyperLink_Document">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JM1isS0kEeS1XdXKGPJRfg" key="tooltip_text" value="Import SysMLModel"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JM1isi0kEeS1XdXKGPJRfg" key="localization" value="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_1.png"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JM1isy0kEeS1XdXKGPJRfg" key="is_default_navigation" value="false"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mK3DIC0iEeS1XdXKGPJRfg" type="5027"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_mK2cES0iEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_bMSusC0gEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mK2cEi0iEeS1XdXKGPJRfg" x="20" y="400" width="1141" height="8"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JutgsC0kEeS1XdXKGPJRfg" type="2018" fillColor="10011046">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_P5zJ8C0kEeS1XdXKGPJRfg" source="PapyrusHyperLink_Document">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_P5zJ8S0kEeS1XdXKGPJRfg" key="tooltip_text" value="Select import Menu of Eclipse"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_P5zJ8i0kEeS1XdXKGPJRfg" key="localization" value="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_2.png"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_P5zJ8y0kEeS1XdXKGPJRfg" key="is_default_navigation" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dZDu8C0lEeS1XdXKGPJRfg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hTPFgC0lEeS1XdXKGPJRfg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hTPFgS0lEeS1XdXKGPJRfg" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hTPskC0lEeS1XdXKGPJRfg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hTPskS0lEeS1XdXKGPJRfg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hTQToC0lEeS1XdXKGPJRfg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JuuHwC0kEeS1XdXKGPJRfg" type="5027"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_JutgsS0kEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_EU4VQC0kEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jutgsi0kEeS1XdXKGPJRfg" x="20" y="460" width="1141" height="21"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dwE9QC0kEeS1XdXKGPJRfg" type="2018" fillColor="10011046">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m3-V4C0kEeS1XdXKGPJRfg" source="PapyrusHyperLink_Document">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m3-V4S0kEeS1XdXKGPJRfg" key="tooltip_text" value="Import ReqIF"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m3-V4i0kEeS1XdXKGPJRfg" key="localization" value="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_3.png"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m3-V4y0kEeS1XdXKGPJRfg" key="is_default_navigation" value="false"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dwE9Qy0kEeS1XdXKGPJRfg" type="5027"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_dwE9QS0kEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_dW9SoC0kEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dwE9Qi0kEeS1XdXKGPJRfg" x="20" y="500" width="1141" height="21"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rmBZYC0kEeS1XdXKGPJRfg" type="2018" fillColor="10011046">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_x874IC0kEeS1XdXKGPJRfg" source="PapyrusHyperLink_Document">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_x874IS0kEeS1XdXKGPJRfg" key="tooltip_text" value="ReqIF file Selection"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_x874Ii0kEeS1XdXKGPJRfg" key="localization" value="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_4.png"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_x874Iy0kEeS1XdXKGPJRfg" key="is_default_navigation" value="false"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rmCAcC0kEeS1XdXKGPJRfg" type="5027"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_rmBZYS0kEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_f2FngC0kEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rmBZYi0kEeS1XdXKGPJRfg" x="20" y="540" width="1141" height="21"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0bQUsC0kEeS1XdXKGPJRfg" type="2018" fillColor="10011046">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7AsXoC0kEeS1XdXKGPJRfg" source="PapyrusHyperLink_Document">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7AsXoS0kEeS1XdXKGPJRfg" key="tooltip_text" value="SpecObject Type selection"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7AsXoi0kEeS1XdXKGPJRfg" key="localization" value="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_5.png"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7AsXoy0kEeS1XdXKGPJRfg" key="is_default_navigation" value="false"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0bQ7wC0kEeS1XdXKGPJRfg" type="5027"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_0bQUsS0kEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_f-fVkC0kEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0bQUsi0kEeS1XdXKGPJRfg" x="20" y="580" width="1141" height="21"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__amXIC0kEeS1XdXKGPJRfg" type="2018" fillColor="10011046">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HUo1gC0lEeS1XdXKGPJRfg" source="PapyrusHyperLink_Document">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HUo1gS0lEeS1XdXKGPJRfg" key="tooltip_text" value="Create or select Profile"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HUo1gi0lEeS1XdXKGPJRfg" key="localization" value="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_6.png"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HUo1gy0lEeS1XdXKGPJRfg" key="is_default_navigation" value="false"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__amXIy0kEeS1XdXKGPJRfg" type="5027"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="__amXIS0kEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_gFMagC0kEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__amXIi0kEeS1XdXKGPJRfg" x="20" y="620" width="1141" height="21"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_A57b4C0lEeS1XdXKGPJRfg" type="2018" fillColor="10011046">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QkmlAC0lEeS1XdXKGPJRfg" source="PapyrusHyperLink_Document">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QkmlAS0lEeS1XdXKGPJRfg" key="tooltip_text" value="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import7.png"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QkmlAi0lEeS1XdXKGPJRfg" key="localization" value="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import7.png"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QkmlAy0lEeS1XdXKGPJRfg" key="is_default_navigation" value="false"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_A58C8C0lEeS1XdXKGPJRfg" type="5027"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_A57b4S0lEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_gK1vgC0kEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A57b4i0lEeS1XdXKGPJRfg" x="20" y="660" width="1141" height="21"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_ma2C4S0BEeS1XdXKGPJRfg" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ma2C4i0BEeS1XdXKGPJRfg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_ma2C4y0BEeS1XdXKGPJRfg">
+ <owner xmi:type="uml:Model" href="ReqifForDarwin.uml#_M7ibgw2HEeSkbsvlP0s7pA"/>
+ </styles>
+ <element xmi:type="uml:Model" href="ReqifForDarwin.uml#_M7ibgw2HEeSkbsvlP0s7pA"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_oe0dEC0SEeS1XdXKGPJRfg" type="PapyrusUMLActivityDiagram" name="Export Activity" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_oe0dES0SEeS1XdXKGPJRfg" type="2001">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dEi0SEeS1XdXKGPJRfg" type="5001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dEy0SEeS1XdXKGPJRfg" type="7001">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_oe0dFC0SEeS1XdXKGPJRfg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_oe0dFS0SEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oe0dFi0SEeS1XdXKGPJRfg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dFy0SEeS1XdXKGPJRfg" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_oe0dGC0SEeS1XdXKGPJRfg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_oe0dGS0SEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oe0dGi0SEeS1XdXKGPJRfg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dGy0SEeS1XdXKGPJRfg" type="7003">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_oe0dHC0SEeS1XdXKGPJRfg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_oe0dHS0SEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oe0dHi0SEeS1XdXKGPJRfg"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dHy0SEeS1XdXKGPJRfg" type="7004">
+ <children xmi:type="notation:Shape" xmi:id="_oe0dIC0SEeS1XdXKGPJRfg" type="3004">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dIS0SEeS1XdXKGPJRfg" type="5080">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe0dIi0SEeS1XdXKGPJRfg" y="5"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_oe0dIy0SEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:InitialNode" href="ReqifForDarwin.uml#_oeyA5C0SEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oe0dJC0SEeS1XdXKGPJRfg" x="202" y="13"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oe0dJS0SEeS1XdXKGPJRfg" type="3007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dJi0SEeS1XdXKGPJRfg" type="5003"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_oe0dJy0SEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:OpaqueAction" href="ReqifForDarwin.uml#_oeyA5S0SEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oe0dKy0SEeS1XdXKGPJRfg" x="40" y="169" width="342"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oe0dLC0SEeS1XdXKGPJRfg" type="3007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dLS0SEeS1XdXKGPJRfg" type="5003"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_oe0dLi0SEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:OpaqueAction" href="ReqifForDarwin.uml#_oeyA5i0SEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oe0dMi0SEeS1XdXKGPJRfg" x="35" y="54" width="341"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oe0dPS0SEeS1XdXKGPJRfg" type="3007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dPi0SEeS1XdXKGPJRfg" type="5003"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_oe0dPy0SEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:OpaqueAction" href="ReqifForDarwin.uml#_oeyA6C0SEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oe0dQy0SEeS1XdXKGPJRfg" x="35" y="113" width="340"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oe0dUC0SEeS1XdXKGPJRfg" type="3005">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dUS0SEeS1XdXKGPJRfg" type="5081">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe0dUi0SEeS1XdXKGPJRfg" y="5"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_oe0dUy0SEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:ActivityFinalNode" href="ReqifForDarwin.uml#_oeyA6y0SEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oe0dVC0SEeS1XdXKGPJRfg" x="208" y="453"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oe0dXy0SEeS1XdXKGPJRfg" type="3007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dYC0SEeS1XdXKGPJRfg" type="5003"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_oe0dYS0SEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:OpaqueAction" href="ReqifForDarwin.uml#_oeyA7S0SEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oe0dZS0SEeS1XdXKGPJRfg" x="37" y="295" width="343"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oe0dZi0SEeS1XdXKGPJRfg" type="3007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dZy0SEeS1XdXKGPJRfg" type="5003"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_oe0daC0SEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:OpaqueAction" href="ReqifForDarwin.uml#_oeyA7i0SEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oe0dbC0SEeS1XdXKGPJRfg" x="37" y="357" width="346"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oe0dbS0SEeS1XdXKGPJRfg" type="3007">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dbi0SEeS1XdXKGPJRfg" type="5003"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_oe0dby0SEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:OpaqueAction" href="ReqifForDarwin.uml#_oeyA7y0SEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oe0dcy0SEeS1XdXKGPJRfg" x="34" y="236" width="344"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oe0ddC0SEeS1XdXKGPJRfg"/>
+ </children>
+ <element xmi:type="uml:Activity" href="ReqifForDarwin.uml#_oeyA0C0SEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oe0deC0SEeS1XdXKGPJRfg" width="446" height="504"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_oe0deS0SEeS1XdXKGPJRfg" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_oe0dei0SEeS1XdXKGPJRfg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_oe0dey0SEeS1XdXKGPJRfg">
+ <owner xmi:type="uml:Activity" href="ReqifForDarwin.uml#_oeyA0C0SEeS1XdXKGPJRfg"/>
+ </styles>
+ <element xmi:type="uml:Activity" href="ReqifForDarwin.uml#_oeyA0C0SEeS1XdXKGPJRfg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_oe0dfC0SEeS1XdXKGPJRfg" type="4004" source="_oe0dLC0SEeS1XdXKGPJRfg" target="_oe0dPS0SEeS1XdXKGPJRfg" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dfS0SEeS1XdXKGPJRfg" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe0dfi0SEeS1XdXKGPJRfg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dfy0SEeS1XdXKGPJRfg" visible="false" type="6004">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe0dgC0SEeS1XdXKGPJRfg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dgS0SEeS1XdXKGPJRfg" visible="false" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe0dgi0SEeS1XdXKGPJRfg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dgy0SEeS1XdXKGPJRfg" visible="false" type="6011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe0dhC0SEeS1XdXKGPJRfg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_oe0dhS0SEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:ControlFlow" href="ReqifForDarwin.uml#_oeyA0y0SEeS1XdXKGPJRfg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oe0dhi0SEeS1XdXKGPJRfg"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_01MucC0TEeS1XdXKGPJRfg" id="(0.533724340175953,0.975)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oe0dhy0SEeS1XdXKGPJRfg" id="(0.5352941176470588,0.025)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_oe0diC0SEeS1XdXKGPJRfg" type="4004" source="_oe0dIC0SEeS1XdXKGPJRfg" target="_oe0dLC0SEeS1XdXKGPJRfg" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0diS0SEeS1XdXKGPJRfg" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe0dii0SEeS1XdXKGPJRfg" x="-13" y="66"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0diy0SEeS1XdXKGPJRfg" visible="false" type="6004">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe0djC0SEeS1XdXKGPJRfg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0djS0SEeS1XdXKGPJRfg" visible="false" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe0dji0SEeS1XdXKGPJRfg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0djy0SEeS1XdXKGPJRfg" visible="false" type="6011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe0dkC0SEeS1XdXKGPJRfg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_oe0dkS0SEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:ControlFlow" href="ReqifForDarwin.uml#_oeyA1C0SEeS1XdXKGPJRfg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oe0dki0SEeS1XdXKGPJRfg" points="[12, 19, 0, -23]$[12, 41, 0, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oe0dky0SEeS1XdXKGPJRfg" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oe0dlC0SEeS1XdXKGPJRfg" id="(0.5249266862170088,0.025)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_oe0dmS0SEeS1XdXKGPJRfg" type="4004" source="_oe0dJS0SEeS1XdXKGPJRfg" target="_oe0dbS0SEeS1XdXKGPJRfg" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dmi0SEeS1XdXKGPJRfg" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe0dmy0SEeS1XdXKGPJRfg" x="-8" y="77"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dnC0SEeS1XdXKGPJRfg" visible="false" type="6004">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe0dnS0SEeS1XdXKGPJRfg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dni0SEeS1XdXKGPJRfg" visible="false" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe0dny0SEeS1XdXKGPJRfg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0doC0SEeS1XdXKGPJRfg" visible="false" type="6011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe0doS0SEeS1XdXKGPJRfg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_oe0doi0SEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:ControlFlow" href="ReqifForDarwin.uml#_oeyA1S0SEeS1XdXKGPJRfg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oe0doy0SEeS1XdXKGPJRfg"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DkWqgC0UEeS1XdXKGPJRfg" id="(0.49122807017543857,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DkXRkC0UEeS1XdXKGPJRfg" id="(0.5261627906976745,0.075)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_oe0dpC0SEeS1XdXKGPJRfg" type="4004" source="_oe0dZi0SEeS1XdXKGPJRfg" target="_oe0dUC0SEeS1XdXKGPJRfg" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dpS0SEeS1XdXKGPJRfg" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe0dpi0SEeS1XdXKGPJRfg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dpy0SEeS1XdXKGPJRfg" visible="false" type="6004">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe0dqC0SEeS1XdXKGPJRfg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dqS0SEeS1XdXKGPJRfg" type="6009">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_oe0dqi0SEeS1XdXKGPJRfg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oe0dqy0SEeS1XdXKGPJRfg" key="visible" value="true"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe0drC0SEeS1XdXKGPJRfg" x="196" y="-34"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0drS0SEeS1XdXKGPJRfg" visible="false" type="6011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe0dri0SEeS1XdXKGPJRfg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_oe0dry0SEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:ControlFlow" href="ReqifForDarwin.uml#_oeyA1i0SEeS1XdXKGPJRfg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oe0dsC0SEeS1XdXKGPJRfg"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wLpwcC0TEeS1XdXKGPJRfg" id="(0.523121387283237,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DkYfsC0UEeS1XdXKGPJRfg" id="(0.5,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_oe0dsi0SEeS1XdXKGPJRfg" type="4004" source="_oe0dPS0SEeS1XdXKGPJRfg" target="_oe0dJS0SEeS1XdXKGPJRfg" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dsy0SEeS1XdXKGPJRfg" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe0dtC0SEeS1XdXKGPJRfg" x="-59" y="-35"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dtS0SEeS1XdXKGPJRfg" visible="false" type="6004">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe0dti0SEeS1XdXKGPJRfg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0dty0SEeS1XdXKGPJRfg" visible="false" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe0duC0SEeS1XdXKGPJRfg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe0duS0SEeS1XdXKGPJRfg" visible="false" type="6011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe0dui0SEeS1XdXKGPJRfg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_oe1EIC0SEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:ControlFlow" href="ReqifForDarwin.uml#_oeyA2C0SEeS1XdXKGPJRfg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oe1EIS0SEeS1XdXKGPJRfg"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oe1EIi0SEeS1XdXKGPJRfg" id="(0.5176470588235295,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DkZGwC0UEeS1XdXKGPJRfg" id="(0.5116959064327485,0.075)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_oe1EZy0SEeS1XdXKGPJRfg" type="4004" source="_oe0dXy0SEeS1XdXKGPJRfg" target="_oe0dZi0SEeS1XdXKGPJRfg" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe1EaC0SEeS1XdXKGPJRfg" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe1EaS0SEeS1XdXKGPJRfg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe1Eai0SEeS1XdXKGPJRfg" visible="false" type="6004">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe1Eay0SEeS1XdXKGPJRfg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe1EbC0SEeS1XdXKGPJRfg" visible="false" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe1EbS0SEeS1XdXKGPJRfg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe1Ebi0SEeS1XdXKGPJRfg" visible="false" type="6011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe1Eby0SEeS1XdXKGPJRfg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_oe1EcC0SEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:ControlFlow" href="ReqifForDarwin.uml#_oeyA4S0SEeS1XdXKGPJRfg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oe1EcS0SEeS1XdXKGPJRfg" points="[0, 0, 0, -22]$[0, 22, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DkZt0C0UEeS1XdXKGPJRfg" id="(0.5102040816326531,0.975)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DkaU4C0UEeS1XdXKGPJRfg" id="(0.5144508670520231,0.1)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_oe1Efy0SEeS1XdXKGPJRfg" type="4004" source="_oe0dbS0SEeS1XdXKGPJRfg" target="_oe0dXy0SEeS1XdXKGPJRfg" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe1EgC0SEeS1XdXKGPJRfg" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe1EgS0SEeS1XdXKGPJRfg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe1Egi0SEeS1XdXKGPJRfg" visible="false" type="6004">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe1Egy0SEeS1XdXKGPJRfg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe1EhC0SEeS1XdXKGPJRfg" visible="false" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe1EhS0SEeS1XdXKGPJRfg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe1Ehi0SEeS1XdXKGPJRfg" visible="false" type="6011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oe1Ehy0SEeS1XdXKGPJRfg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_oe1EiC0SEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:ControlFlow" href="ReqifForDarwin.uml#_oeyA4y0SEeS1XdXKGPJRfg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oe1EiS0SEeS1XdXKGPJRfg"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oe1Eii0SEeS1XdXKGPJRfg" id="(0.5058139534883721,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DkbjAC0UEeS1XdXKGPJRfg" id="(0.5247813411078717,0.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_VcXN4C0UEeS1XdXKGPJRfg" type="UseCase" name="Export UseCase Diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_W9cmIC0UEeS1XdXKGPJRfg" type="2013">
+ <children xmi:type="notation:DecorationNode" xmi:id="_W9dNMC0UEeS1XdXKGPJRfg" type="5016"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_W9dNMS0UEeS1XdXKGPJRfg" type="7009">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_W9d0QC0UEeS1XdXKGPJRfg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_W9d0QS0UEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_W9d0Qi0UEeS1XdXKGPJRfg"/>
+ </children>
+ <element xmi:type="uml:UseCase" href="ReqifForDarwin.uml#_UBKk8A2IEeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_W9cmIS0UEeS1XdXKGPJRfg" x="39" y="21"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YMGxoC0UEeS1XdXKGPJRfg" type="2018">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fqQlQC0UEeS1XdXKGPJRfg" source="PapyrusHyperLink_Page" references="_oe0dEC0SEeS1XdXKGPJRfg">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fqQlQS0UEeS1XdXKGPJRfg" key="tooltip_text" value="Export Activity"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fqQlQi0UEeS1XdXKGPJRfg" key="pageName" value="PapyrusHyperLink_Page"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fqQlQy0UEeS1XdXKGPJRfg" key="is_default_navigation" value="false"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YMHYsC0UEeS1XdXKGPJRfg" type="5027"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_YMGxoS0UEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_Y4R2EA5SEeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YMGxoi0UEeS1XdXKGPJRfg" x="323" y="22" width="790"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Y9J0EC0UEeS1XdXKGPJRfg" type="2013">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Y9KbIC0UEeS1XdXKGPJRfg" type="5016"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Y9KbIS0UEeS1XdXKGPJRfg" type="7009">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Y9KbIi0UEeS1XdXKGPJRfg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Y9KbIy0UEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y9KbJC0UEeS1XdXKGPJRfg"/>
+ </children>
+ <element xmi:type="uml:UseCase" href="ReqifForDarwin.uml#_APZDoCefEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y9J0ES0UEeS1XdXKGPJRfg" x="62" y="121"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Y9P6sC0UEeS1XdXKGPJRfg" type="2013">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Y9QhwC0UEeS1XdXKGPJRfg" type="5016"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Y9QhwS0UEeS1XdXKGPJRfg" type="7009">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Y9Qhwi0UEeS1XdXKGPJRfg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Y9Qhwy0UEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y9QhxC0UEeS1XdXKGPJRfg"/>
+ </children>
+ <element xmi:type="uml:UseCase" href="ReqifForDarwin.uml#_J-LD0CekEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y9P6sS0UEeS1XdXKGPJRfg" x="59" y="217"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Y9UzMC0UEeS1XdXKGPJRfg" type="2013">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Y9VaQC0UEeS1XdXKGPJRfg" type="5016"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Y9VaQS0UEeS1XdXKGPJRfg" type="7009">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Y9VaQi0UEeS1XdXKGPJRfg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Y9VaQy0UEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y9VaRC0UEeS1XdXKGPJRfg"/>
+ </children>
+ <element xmi:type="uml:UseCase" href="ReqifForDarwin.uml#_OQz9sCekEeSjdJiE6np9EA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y9UzMS0UEeS1XdXKGPJRfg" x="39" y="299"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vD8vQC0YEeS1XdXKGPJRfg" type="2018">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vD9WUC0YEeS1XdXKGPJRfg" type="5027"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_vD8vQS0YEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_uWEVkC0YEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vD8vQi0YEeS1XdXKGPJRfg" x="258" y="122" width="865"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_KMOkIC0ZEeS1XdXKGPJRfg" type="2018">
+ <children xmi:type="notation:DecorationNode" xmi:id="_KMPLMC0ZEeS1XdXKGPJRfg" type="5027"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_KMOkIS0ZEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_JdWr8C0ZEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KMOkIi0ZEeS1XdXKGPJRfg" x="258" y="219" width="862"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hE_EkC0ZEeS1XdXKGPJRfg" type="2018">
+ <children xmi:type="notation:DecorationNode" xmi:id="_hE_roC0ZEeS1XdXKGPJRfg" type="5027"/>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_hE_EkS0ZEeS1XdXKGPJRfg"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_gU0L4C0ZEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hE_Eki0ZEeS1XdXKGPJRfg" x="300" y="299" width="818"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_VcXN4S0UEeS1XdXKGPJRfg" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_VcXN4i0UEeS1XdXKGPJRfg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_VcXN4y0UEeS1XdXKGPJRfg">
+ <owner xmi:type="uml:Model" href="ReqifForDarwin.uml#_M7ibgw2HEeSkbsvlP0s7pA"/>
+ </styles>
+ <element xmi:type="uml:Model" href="ReqifForDarwin.uml#_M7ibgw2HEeSkbsvlP0s7pA"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="__TVcEC0lEeS1XdXKGPJRfg" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_ADEP4C0mEeS1XdXKGPJRfg" type="2097">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ADFeAC0mEeS1XdXKGPJRfg" type="5157"/>
+ <element xmi:type="uml:UseCase" href="ReqifForDarwin.uml#_UBKk8A2IEeSkbsvlP0s7pA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ADEP4S0mEeS1XdXKGPJRfg" x="120" y="20" width="701"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_C5d1QC0mEeS1XdXKGPJRfg" type="2012" fillColor="10011046">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Kp32gC0mEeS1XdXKGPJRfg" source="PapyrusHyperLink_Document">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Kp32gS0mEeS1XdXKGPJRfg" key="tooltip_text" value="SysML Model"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Kp32gi0mEeS1XdXKGPJRfg" key="localization" value="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\export1.png"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Kp32gy0mEeS1XdXKGPJRfg" key="is_default_navigation" value="false"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_C5ecUC0mEeS1XdXKGPJRfg" type="5038"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_CZkNMC0mEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_C5d1QS0mEeS1XdXKGPJRfg" x="120" y="100" width="701" height="21"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MD6LkC0mEeS1XdXKGPJRfg" type="2012" fillColor="10011046">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bLt4MC0mEeS1XdXKGPJRfg" source="PapyrusHyperLink_Document">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bLt4MS0mEeS1XdXKGPJRfg" key="tooltip_text" value="Export Menu"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bLt4Mi0mEeS1XdXKGPJRfg" key="localization" value="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_2.png"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bLt4My0mEeS1XdXKGPJRfg" key="is_default_navigation" value="false"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MD6yoC0mEeS1XdXKGPJRfg" type="5038"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_LQdVYC0mEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MD6LkS0mEeS1XdXKGPJRfg" x="120" y="160" width="699" height="21"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MXAtwC0mEeS1XdXKGPJRfg" type="2012" fillColor="10011046">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lxu0oC0mEeS1XdXKGPJRfg" source="PapyrusHyperLink_Document">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lxu0oS0mEeS1XdXKGPJRfg" key="tooltip_text" value="Import ReqIF file"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lxu0oi0mEeS1XdXKGPJRfg" key="localization" value="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_3.png"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lxu0oy0mEeS1XdXKGPJRfg" key="is_default_navigation" value="false"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MXBU0C0mEeS1XdXKGPJRfg" type="5038"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_LZ7acC0mEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MXAtwS0mEeS1XdXKGPJRfg" x="120" y="200" width="699" height="21"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MsywgC0mEeS1XdXKGPJRfg" type="2012" fillColor="10011046">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yjNjEC0mEeS1XdXKGPJRfg" source="PapyrusHyperLink_Document">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yjNjES0mEeS1XdXKGPJRfg" key="tooltip_text" value="Result in the ReqIf file"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yjNjEi0mEeS1XdXKGPJRfg" key="localization" value="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\Export4.png"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yjNjEy0mEeS1XdXKGPJRfg" key="is_default_navigation" value="false"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MszXkC0mEeS1XdXKGPJRfg" type="5038"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_Lh4ckC0mEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MsywgS0mEeS1XdXKGPJRfg" x="120" y="300" width="699" height="21"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iBBtsC0nEeS1XdXKGPJRfg" type="2012" fillColor="10011046">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_thGeoC0nEeS1XdXKGPJRfg" source="PapyrusHyperLink_Document">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_thGeoS0nEeS1XdXKGPJRfg" key="tooltip_text" value="Choose ReqIF File name"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_thGeoi0nEeS1XdXKGPJRfg" key="localization" value="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\export5.png"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_thGeoy0nEeS1XdXKGPJRfg" key="is_default_navigation" value="false"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iBCUwC0nEeS1XdXKGPJRfg" type="5038"/>
+ <element xmi:type="uml:Comment" href="ReqifForDarwin.uml#_g8fHgC0nEeS1XdXKGPJRfg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iBBtsS0nEeS1XdXKGPJRfg" x="120" y="240" width="701" height="41"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="__TVcES0lEeS1XdXKGPJRfg" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="__TVcEi0lEeS1XdXKGPJRfg"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="__TVcEy0lEeS1XdXKGPJRfg">
+ <owner xmi:type="uml:Model" href="ReqifForDarwin.uml#_M7ibgw2HEeSkbsvlP0s7pA"/>
+ </styles>
+ <element xmi:type="uml:Model" href="ReqifForDarwin.uml#_M7ibgw2HEeSkbsvlP0s7pA"/>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/model/ReqifForDarwin.uml b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/model/ReqifForDarwin.uml
new file mode 100644
index 00000000000..fdff45b82c3
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/doc/model/ReqifForDarwin.uml
@@ -0,0 +1,928 @@
+<?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:Document="http:///schemas/Document/_qR4REMn0EeO9CYUoXDRplw/0" xmlns:Requirements="http://www.eclipse.org/papyrus/0.7.0/SysML/Requirements" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:structure="http://DeveloperProcess/schemas/structure/_VA9p4McPEeO9CYUoXDRplw/1" xmlns:trace="http://DeveloperProcess/schemas/trace/_VBAtMMcPEeO9CYUoXDRplw/1" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http:///schemas/Document/_qR4REMn0EeO9CYUoXDRplw/0 pathmap://DEVELOPER_PROFILES/Document.profile.uml#_qR44IMn0EeO9CYUoXDRplw http://www.eclipse.org/papyrus/0.7.0/SysML/Requirements http://www.eclipse.org/papyrus/0.7.0/SysML#//requirements http://DeveloperProcess/schemas/structure/_VA9p4McPEeO9CYUoXDRplw/1 pathmap://DEVELOPER_PROFILES/developerprocess.profile.uml#_VA-4AMcPEeO9CYUoXDRplw http://DeveloperProcess/schemas/trace/_VBAtMMcPEeO9CYUoXDRplw/1 pathmap://DEVELOPER_PROFILES/developerprocess.profile.uml#_VBAtMccPEeO9CYUoXDRplw">
+ <uml:Model xmi:id="_M7ibgA2HEeSkbsvlP0s7pA" name="ReqIFModule">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_nfyuMC0AEeS1XdXKGPJRfg" annotatedElement="_M7ibgA2HEeSkbsvlP0s7pA">
+ <body>This model explains the functionality in Papyrus Req in order to import or export ReqIF files into Papyrus (OMG Document Number: formal/2013-10-01 Standard document URL: http://www.omg.org/spec/ReqIF/1.1)&#xD;
+</body>
+ </ownedComment>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_M7ibgQ2HEeSkbsvlP0s7pA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Model" xmi:id="_M7ibgg2HEeSkbsvlP0s7pA" name="Requirements">
+ <packagedElement xmi:type="uml:Class" xmi:id="_Q00aMA2HEeSkbsvlP0s7pA" name="ReqIfImport"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_bslN8A2HEeSkbsvlP0s7pA" name="ReqIFExport"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_mlYjgA2HEeSkbsvlP0s7pA" name="ControlMode"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_Jf-egBx4EeSlI-4RKfFQuw" name="WihtoutUI"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_g-4QsC6GEeSaMrdXMag_Yg" name="Re-Export"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_zBL_kC6GEeSaMrdXMag_Yg" name="Re-Import"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Model" xmi:id="_M7ibgw2HEeSkbsvlP0s7pA" name="UseCases">
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_M7ibhA2HEeSkbsvlP0s7pA" name="useCasesAbstraction" client="_M7ibgw2HEeSkbsvlP0s7pA" supplier="_M7ibgg2HEeSkbsvlP0s7pA"/>
+ <packagedElement xmi:type="uml:Component" xmi:id="_M7ibhQ2HEeSkbsvlP0s7pA" name="ReqIfModule" useCase="_RrUH4A2IEeSkbsvlP0s7pA _UBKk8A2IEeSkbsvlP0s7pA _6UJ0QCeeEeSjdJiE6np9EA _APZDoCefEeSjdJiE6np9EA _J-LD0CekEeSjdJiE6np9EA _OQz9sCekEeSjdJiE6np9EA _H53pUC0AEeS1XdXKGPJRfg _KAbGIC0AEeS1XdXKGPJRfg _7DBvEC6GEeSaMrdXMag_Yg _Dxy2AC6HEeSaMrdXMag_Yg">
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_RrUH4A2IEeSkbsvlP0s7pA" name="Import ReqIF file" subject="_M7ibhQ2HEeSkbsvlP0s7pA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_o9NR8C0BEeS1XdXKGPJRfg" annotatedElement="_RrUH4A2IEeSkbsvlP0s7pA">
+ <body>In order to import ReqFile into UMLModel, first analysis will be done:&#xD;
+- All existing SpecObjectTypes will be listed. From the list, the user chooses interesting Types. (In fact types may be purely information as title, chapter...)&#xD;
+- All stereotypes from applied profiles will be also listed.&#xD;
+Because each SpecType becomes a stereotype based on Requirement, if the two lists are equals no stereotypes will be created. </body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_HAk2kC0QEeS1XdXKGPJRfg" annotatedElement="_RrUH4A2IEeSkbsvlP0s7pA">
+ <body>If stereotypes need to be created, a dialog is opened in order to ask to the user if a profile must be created.&#xD;
+After importing types, elements of ReqIF file are imported &#xD;
+</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_bMSusC0gEeS1XdXKGPJRfg" annotatedElement="_RrUH4A2IEeSkbsvlP0s7pA">
+ <body>First the User must have a SysML model. Select the package where ReqIF elements will be imported.&#xD;
+</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_EU4VQC0kEeS1XdXKGPJRfg" annotatedElement="_RrUH4A2IEeSkbsvlP0s7pA">
+ <body>Select the menu Import of Eclipse.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_dW9SoC0kEeS1XdXKGPJRfg" annotatedElement="_RrUH4A2IEeSkbsvlP0s7pA">
+ <body>Select the menu Import ReqIF from Papyrus Categories</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_f2FngC0kEeS1XdXKGPJRfg" annotatedElement="_RrUH4A2IEeSkbsvlP0s7pA">
+ <body>Select the ReqIF file to import</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_f-fVkC0kEeS1XdXKGPJRfg" annotatedElement="_RrUH4A2IEeSkbsvlP0s7pA">
+ <body>Select Types of ReqIFElement that you want to import</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gFMagC0kEeS1XdXKGPJRfg" annotatedElement="_RrUH4A2IEeSkbsvlP0s7pA">
+ <body>Types in ReqIF become stereotypes in profile, select or create the profile that will contain imported types</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gK1vgC0kEeS1XdXKGPJRfg" annotatedElement="_RrUH4A2IEeSkbsvlP0s7pA">
+ <body>The model has now imported requirements with relations. Note that a comment explains the origin of the import.</body>
+ </ownedComment>
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_6UJ0QCeeEeSjdJiE6np9EA" name="Import DataType Enumeration" subject="_M7ibhQ2HEeSkbsvlP0s7pA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_lMie4C0QEeS1XdXKGPJRfg" annotatedElement="_6UJ0QCeeEeSjdJiE6np9EA">
+ <body>Each Datatype Definition Enumeration in a ReqFIle is transformed to UML Eneumeration in a profile.&#xD;
+</body>
+ </ownedComment>
+ </ownedUseCase>
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_H53pUC0AEeS1XdXKGPJRfg" name="Import SpecTypes" subject="_M7ibhQ2HEeSkbsvlP0s7pA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_z6_QUC0QEeS1XdXKGPJRfg" annotatedElement="_H53pUC0AEeS1XdXKGPJRfg">
+ <body>Each SpecObjectType choosen in the ReqIFile is transformed to stereotype that inherits of SysML Requirement in a profile.&#xD;
+Each SpecRelationType of the ReqIF file is transformed in to Stereotype based on dependency Metaclass.&#xD;
+Each attribute is transformed to equivalent attribute in Stereotype. Only XTML attributes are transformed into String typed attributes in profile.&#xD;
+</body>
+ </ownedComment>
+ </ownedUseCase>
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_KAbGIC0AEeS1XdXKGPJRfg" name="Import SpecObjects" subject="_M7ibhQ2HEeSkbsvlP0s7pA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_UZQ5gC0REeS1XdXKGPJRfg" annotatedElement="_KAbGIC0AEeS1XdXKGPJRfg">
+ <body>Each SpecObjectNode is transformed to class with a corresponded applied stereotype. During the creation, SpecHierarchy ared used in order to structure the SysML files.&#xD;
+Each Specification becomes a package.&#xD;
+Each SpecRelation becomes a stereotyped dependency. if the souce or target of this object are not created, the spec relation will be not imported.&#xD;
+</body>
+ </ownedComment>
+ </ownedUseCase>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_CouOMBM1EeSkbsvlP0s7pA" name="ImportActivity" node="_Ewo88BM1EeSkbsvlP0s7pA _FwfQYBM1EeSkbsvlP0s7pA _QThKQBM1EeSkbsvlP0s7pA _fOIvcBM1EeSkbsvlP0s7pA _ocIJABM1EeSkbsvlP0s7pA _CedpgBM2EeSkbsvlP0s7pA _HJUPEBM2EeSkbsvlP0s7pA _MJYPoBM2EeSkbsvlP0s7pA _e4vSkBfoEeSufZ1epFirrQ _9fcWIBfoEeSufZ1epFirrQ _KKeeUBfpEeSufZ1epFirrQ _dzy1ABfuEeSufZ1epFirrQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gh0k4BM1EeSkbsvlP0s7pA" annotatedElement="_fOIvcBM1EeSkbsvlP0s7pA">
+ <body>Test if stereotype must be created to map with specObjectType</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_fkflUBfoEeSufZ1epFirrQ" annotatedElement="_e4vSkBfoEeSufZ1epFirrQ">
+ <body>Create or update profile</body>
+ </ownedComment>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_Ni4OoBM1EeSkbsvlP0s7pA" name="ControlFlow" target="_FwfQYBM1EeSkbsvlP0s7pA" source="_QThKQBM1EeSkbsvlP0s7pA"/>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_XeSu4BM1EeSkbsvlP0s7pA" name="ControlFlow1" target="_QThKQBM1EeSkbsvlP0s7pA" source="_Ewo88BM1EeSkbsvlP0s7pA"/>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_nMz2MBM1EeSkbsvlP0s7pA" name="ControlFlow2" target="_fOIvcBM1EeSkbsvlP0s7pA" source="_FwfQYBM1EeSkbsvlP0s7pA"/>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_t5AocBM1EeSkbsvlP0s7pA" name="ControlFlow3" target="_dzy1ABfuEeSufZ1epFirrQ" source="_fOIvcBM1EeSkbsvlP0s7pA">
+ <guard xmi:type="uml:LiteralString" xmi:id="_4xfN4BM1EeSkbsvlP0s7pA" name="true" value="stereotype must be created"/>
+ </edge>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_Dl_5UBM2EeSkbsvlP0s7pA" name="ControlFlow4" target="_CedpgBM2EeSkbsvlP0s7pA" source="_ocIJABM1EeSkbsvlP0s7pA"/>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_E0BysBM2EeSkbsvlP0s7pA" name="ControlFlow5" target="_CedpgBM2EeSkbsvlP0s7pA" source="_fOIvcBM1EeSkbsvlP0s7pA">
+ <guard xmi:type="uml:LiteralString" xmi:id="_267DwBfpEeSufZ1epFirrQ" value="no Stereotype to create"/>
+ </edge>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_LIuD4BM2EeSkbsvlP0s7pA" name="ControlFlow6" target="_HJUPEBM2EeSkbsvlP0s7pA" source="_CedpgBM2EeSkbsvlP0s7pA"/>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_NJMt4BM2EeSkbsvlP0s7pA" name="ControlFlow7" target="_MJYPoBM2EeSkbsvlP0s7pA" source="_HJUPEBM2EeSkbsvlP0s7pA"/>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_uw76UBfoEeSufZ1epFirrQ" name="ControlFlow8" target="_9fcWIBfoEeSufZ1epFirrQ" source="_e4vSkBfoEeSufZ1epFirrQ">
+ <guard xmi:type="uml:LiteralString" xmi:id="_B_rxsBfqEeSufZ1epFirrQ" name="" value="a local profile must be updated"/>
+ </edge>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_FiRkIBfpEeSufZ1epFirrQ" name="ControlFlow9" target="_ocIJABM1EeSkbsvlP0s7pA" source="_e4vSkBfoEeSufZ1epFirrQ">
+ <guard xmi:type="uml:LiteralString" xmi:id="_-2ZskBfpEeSufZ1epFirrQ" value="a profile must be created"/>
+ </edge>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_NJi3gBfpEeSufZ1epFirrQ" name="ControlFlow10" target="_KKeeUBfpEeSufZ1epFirrQ" source="_9fcWIBfoEeSufZ1epFirrQ"/>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_NqQX4BfpEeSufZ1epFirrQ" name="ControlFlow11" target="_CedpgBM2EeSkbsvlP0s7pA" source="_KKeeUBfpEeSufZ1epFirrQ"/>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_wgpVsBfuEeSufZ1epFirrQ" name="ControlFlow12" target="_e4vSkBfoEeSufZ1epFirrQ" source="_dzy1ABfuEeSufZ1epFirrQ"/>
+ <node xmi:type="uml:InitialNode" xmi:id="_Ewo88BM1EeSkbsvlP0s7pA" name="InitialNode" outgoing="_XeSu4BM1EeSkbsvlP0s7pA"/>
+ <node xmi:type="uml:OpaqueAction" xmi:id="_FwfQYBM1EeSkbsvlP0s7pA" name="Get All stereotypes that represents Requirements from UML File " incoming="_Ni4OoBM1EeSkbsvlP0s7pA" outgoing="_nMz2MBM1EeSkbsvlP0s7pA"/>
+ <node xmi:type="uml:OpaqueAction" xmi:id="_QThKQBM1EeSkbsvlP0s7pA" name="Select SpecObjectTypes contained in ReqIF file" incoming="_XeSu4BM1EeSkbsvlP0s7pA" outgoing="_Ni4OoBM1EeSkbsvlP0s7pA"/>
+ <node xmi:type="uml:DecisionNode" xmi:id="_fOIvcBM1EeSkbsvlP0s7pA" name="DecisionNode" incoming="_nMz2MBM1EeSkbsvlP0s7pA" outgoing="_t5AocBM1EeSkbsvlP0s7pA _E0BysBM2EeSkbsvlP0s7pA"/>
+ <node xmi:type="uml:OpaqueAction" xmi:id="_ocIJABM1EeSkbsvlP0s7pA" name="CreateProfile with new Stereotypes" incoming="_FiRkIBfpEeSufZ1epFirrQ" outgoing="_Dl_5UBM2EeSkbsvlP0s7pA"/>
+ <node xmi:type="uml:MergeNode" xmi:id="_CedpgBM2EeSkbsvlP0s7pA" name="MergeNode" incoming="_Dl_5UBM2EeSkbsvlP0s7pA _E0BysBM2EeSkbsvlP0s7pA _NqQX4BfpEeSufZ1epFirrQ" outgoing="_LIuD4BM2EeSkbsvlP0s7pA"/>
+ <node xmi:type="uml:OpaqueAction" xmi:id="_HJUPEBM2EeSkbsvlP0s7pA" name="Create stereotyped Class by set the same id in ecore object" incoming="_LIuD4BM2EeSkbsvlP0s7pA" outgoing="_NJMt4BM2EeSkbsvlP0s7pA"/>
+ <node xmi:type="uml:ActivityFinalNode" xmi:id="_MJYPoBM2EeSkbsvlP0s7pA" name="ActivityFinalNode" incoming="_NJMt4BM2EeSkbsvlP0s7pA"/>
+ <node xmi:type="uml:DecisionNode" xmi:id="_e4vSkBfoEeSufZ1epFirrQ" name="DecisionNode1" incoming="_wgpVsBfuEeSufZ1epFirrQ" outgoing="_uw76UBfoEeSufZ1epFirrQ _FiRkIBfpEeSufZ1epFirrQ"/>
+ <node xmi:type="uml:OpaqueAction" xmi:id="_9fcWIBfoEeSufZ1epFirrQ" name="Updateprofile with new stereotypes" incoming="_uw76UBfoEeSufZ1epFirrQ" outgoing="_NJi3gBfpEeSufZ1epFirrQ"/>
+ <node xmi:type="uml:OpaqueAction" xmi:id="_KKeeUBfpEeSufZ1epFirrQ" name="Update stereotyped class" incoming="_NJi3gBfpEeSufZ1epFirrQ" outgoing="_NqQX4BfpEeSufZ1epFirrQ"/>
+ <node xmi:type="uml:OpaqueAction" xmi:id="_dzy1ABfuEeSufZ1epFirrQ" name="Ask if a local profile must be updated or create a new profile" incoming="_t5AocBM1EeSkbsvlP0s7pA" outgoing="_wgpVsBfuEeSufZ1epFirrQ"/>
+ </ownedBehavior>
+ <extend xmi:type="uml:Extend" xmi:id="_-13ukC6GEeSaMrdXMag_Yg" extendedCase="_7DBvEC6GEeSaMrdXMag_Yg" extensionLocation="_-4HxUC6GEeSaMrdXMag_Yg"/>
+ <include xmi:type="uml:Include" xmi:id="__UdFYCeeEeSjdJiE6np9EA" addition="_6UJ0QCeeEeSjdJiE6np9EA"/>
+ <include xmi:type="uml:Include" xmi:id="_NshkcC0AEeS1XdXKGPJRfg" addition="_H53pUC0AEeS1XdXKGPJRfg"/>
+ <include xmi:type="uml:Include" xmi:id="_OMW7EC0AEeS1XdXKGPJRfg" name="" addition="_KAbGIC0AEeS1XdXKGPJRfg"/>
+ </ownedUseCase>
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_UBKk8A2IEeSkbsvlP0s7pA" name="Export UML Model to ReqIF File" subject="_M7ibhQ2HEeSkbsvlP0s7pA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Y4R2EA5SEeSkbsvlP0s7pA" annotatedElement="_UBKk8A2IEeSkbsvlP0s7pA">
+ <body>The goal is to export all requirements and links into ReqIF.&#xD;
+To do that, the tool lists all applied stereotypes that inherits of SysML::Requirement and that inherits of dependencies.&#xD;
+From this list, the tool constructs, in ReqIF File, correponding specObjects Tyoes and SpecRelationsTypes&#xD;
+Then from all stereotyped elements, it constructs the corresponding hierarchy. &#xD;
+&#xD;
+</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_CZkNMC0mEeS1XdXKGPJRfg" annotatedElement="_UBKk8A2IEeSkbsvlP0s7pA">
+ <body>Select the SysML that you want to export&#xD;
+</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_LQdVYC0mEeS1XdXKGPJRfg" annotatedElement="_UBKk8A2IEeSkbsvlP0s7pA">
+ <body>Select the export Menu from Eclipse menu.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_LZ7acC0mEeS1XdXKGPJRfg" annotatedElement="_UBKk8A2IEeSkbsvlP0s7pA">
+ <body>Select the menu export ReqIF form the papyrus Category</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_g8fHgC0nEeS1XdXKGPJRfg">
+ <body>Choose the name of the reqif file.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Lh4ckC0mEeS1XdXKGPJRfg" annotatedElement="_UBKk8A2IEeSkbsvlP0s7pA">
+ <body>At the end, a reqFile is generated. The header has an information that explain that the result comes from UML file.&#xD;
+</body>
+ </ownedComment>
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_APZDoCefEeSjdJiE6np9EA" name="export DataType" subject="_M7ibhQ2HEeSkbsvlP0s7pA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_uWEVkC0YEeS1XdXKGPJRfg" annotatedElement="_APZDoCefEeSjdJiE6np9EA">
+ <body>In a reqFile, all basic types must be created; that is why data type definition string, integer, Real, boolean and XHTML are created.&#xD;
+Moreover, all Enumerations in applied profiles become DataTypeDefinitionEnumerations in the ReqIF file.&#xD;
+</body>
+ </ownedComment>
+ </ownedUseCase>
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_J-LD0CekEeSjdJiE6np9EA" name="Export Stereotypes" subject="_M7ibhQ2HEeSkbsvlP0s7pA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_JdWr8C0ZEeS1XdXKGPJRfg" annotatedElement="_J-LD0CekEeSjdJiE6np9EA">
+ <body>From all stereotypes, all SpecObject Types and all SpecRelationTypes will be created. If an attribute of a stereotype is typed by a primitiveType named XHTML, the attribute of the SpecObjecType will be XHTML. </body>
+ </ownedComment>
+ </ownedUseCase>
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_OQz9sCekEeSjdJiE6np9EA" name="Export Stereotyped Elements" subject="_M7ibhQ2HEeSkbsvlP0s7pA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gU0L4C0ZEeS1XdXKGPJRfg" annotatedElement="_OQz9sCekEeSjdJiE6np9EA">
+ <body>From all packages that contains Requirements, a specification will be created. Then a hierarchy will be created by taking in account the structure of requirements. Finally SpecObject and SpecRelation are created.&#xD;
+</body>
+ </ownedComment>
+ </ownedUseCase>
+ <ownedBehavior xmi:type="uml:Activity" xmi:id="_oeyA0C0SEeS1XdXKGPJRfg" name="ExportActivity" node="_oeyA5C0SEeS1XdXKGPJRfg _oeyA5S0SEeS1XdXKGPJRfg _oeyA5i0SEeS1XdXKGPJRfg _oeyA6C0SEeS1XdXKGPJRfg _oeyA6y0SEeS1XdXKGPJRfg _oeyA7S0SEeS1XdXKGPJRfg _oeyA7i0SEeS1XdXKGPJRfg _oeyA7y0SEeS1XdXKGPJRfg">
+ <edge xmi:type="uml:ControlFlow" xmi:id="_oeyA0y0SEeS1XdXKGPJRfg" name="ControlFlow" target="_oeyA6C0SEeS1XdXKGPJRfg" source="_oeyA5i0SEeS1XdXKGPJRfg"/>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_oeyA1C0SEeS1XdXKGPJRfg" name="ControlFlow1" target="_oeyA5i0SEeS1XdXKGPJRfg" source="_oeyA5C0SEeS1XdXKGPJRfg"/>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_oeyA1S0SEeS1XdXKGPJRfg" name="ControlFlow2" target="_oeyA7y0SEeS1XdXKGPJRfg" source="_oeyA5S0SEeS1XdXKGPJRfg"/>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_oeyA1i0SEeS1XdXKGPJRfg" name="ControlFlow3" target="_oeyA6y0SEeS1XdXKGPJRfg" source="_oeyA7i0SEeS1XdXKGPJRfg"/>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_oeyA2C0SEeS1XdXKGPJRfg" name="ControlFlow4" target="_oeyA5S0SEeS1XdXKGPJRfg" source="_oeyA6C0SEeS1XdXKGPJRfg"/>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_oeyA2S0SEeS1XdXKGPJRfg" name="ControlFlow5">
+ <guard xmi:type="uml:LiteralString" xmi:id="_oeyA2i0SEeS1XdXKGPJRfg" value="no Stereotype to create"/>
+ </edge>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_oeyA2y0SEeS1XdXKGPJRfg" name="ControlFlow6"/>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_oeyA3C0SEeS1XdXKGPJRfg" name="ControlFlow7" target="_oeyA6y0SEeS1XdXKGPJRfg"/>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_oeyA3S0SEeS1XdXKGPJRfg" name="ControlFlow8" target="_oeyA7S0SEeS1XdXKGPJRfg">
+ <guard xmi:type="uml:LiteralString" xmi:id="_oeyA3i0SEeS1XdXKGPJRfg" name="" value="a local profile must be updated"/>
+ </edge>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_oeyA3y0SEeS1XdXKGPJRfg" name="ControlFlow9" target="_oeyA6C0SEeS1XdXKGPJRfg">
+ <guard xmi:type="uml:LiteralString" xmi:id="_oeyA4C0SEeS1XdXKGPJRfg" value="a profile must be created"/>
+ </edge>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_oeyA4S0SEeS1XdXKGPJRfg" name="ControlFlow10" target="_oeyA7i0SEeS1XdXKGPJRfg" source="_oeyA7S0SEeS1XdXKGPJRfg"/>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_oeyA4i0SEeS1XdXKGPJRfg" name="ControlFlow11" source="_oeyA7i0SEeS1XdXKGPJRfg"/>
+ <edge xmi:type="uml:ControlFlow" xmi:id="_oeyA4y0SEeS1XdXKGPJRfg" name="ControlFlow12" target="_oeyA7S0SEeS1XdXKGPJRfg" source="_oeyA7y0SEeS1XdXKGPJRfg"/>
+ <node xmi:type="uml:InitialNode" xmi:id="_oeyA5C0SEeS1XdXKGPJRfg" name="InitialNode" outgoing="_oeyA1C0SEeS1XdXKGPJRfg"/>
+ <node xmi:type="uml:OpaqueAction" xmi:id="_oeyA5S0SEeS1XdXKGPJRfg" name="Get All stereotypes that represent Requirements from UML File " incoming="_oeyA2C0SEeS1XdXKGPJRfg" outgoing="_oeyA1S0SEeS1XdXKGPJRfg"/>
+ <node xmi:type="uml:OpaqueAction" xmi:id="_oeyA5i0SEeS1XdXKGPJRfg" name="Create in theReqIF file DataTypes Definition" incoming="_oeyA1C0SEeS1XdXKGPJRfg" outgoing="_oeyA0y0SEeS1XdXKGPJRfg"/>
+ <node xmi:type="uml:OpaqueAction" xmi:id="_oeyA6C0SEeS1XdXKGPJRfg" name="Get all stereotypes that extend dependency" incoming="_oeyA3y0SEeS1XdXKGPJRfg _oeyA0y0SEeS1XdXKGPJRfg" outgoing="_oeyA2C0SEeS1XdXKGPJRfg"/>
+ <node xmi:type="uml:ActivityFinalNode" xmi:id="_oeyA6y0SEeS1XdXKGPJRfg" name="ActivityFinalNode" incoming="_oeyA3C0SEeS1XdXKGPJRfg _oeyA1i0SEeS1XdXKGPJRfg"/>
+ <node xmi:type="uml:OpaqueAction" xmi:id="_oeyA7S0SEeS1XdXKGPJRfg" name="Create all SpecRelationTypes" incoming="_oeyA3S0SEeS1XdXKGPJRfg _oeyA4y0SEeS1XdXKGPJRfg" outgoing="_oeyA4S0SEeS1XdXKGPJRfg"/>
+ <node xmi:type="uml:OpaqueAction" xmi:id="_oeyA7i0SEeS1XdXKGPJRfg" name="Create all Spec Object and Spec Relations" incoming="_oeyA4S0SEeS1XdXKGPJRfg" outgoing="_oeyA4i0SEeS1XdXKGPJRfg _oeyA1i0SEeS1XdXKGPJRfg"/>
+ <node xmi:type="uml:OpaqueAction" xmi:id="_oeyA7y0SEeS1XdXKGPJRfg" name="Create all SpecObjectType from stereotypes" incoming="_oeyA1S0SEeS1XdXKGPJRfg" outgoing="_oeyA4y0SEeS1XdXKGPJRfg"/>
+ </ownedBehavior>
+ <extend xmi:type="uml:Extend" xmi:id="_FAePoC6HEeSaMrdXMag_Yg" extendedCase="_Dxy2AC6HEeSaMrdXMag_Yg" extensionLocation="_FAqc4C6HEeSaMrdXMag_Yg"/>
+ <include xmi:type="uml:Include" xmi:id="_DFqtMCefEeSjdJiE6np9EA" addition="_APZDoCefEeSjdJiE6np9EA"/>
+ <include xmi:type="uml:Include" xmi:id="_Mph20CekEeSjdJiE6np9EA" addition="_J-LD0CekEeSjdJiE6np9EA"/>
+ <include xmi:type="uml:Include" xmi:id="_Rk6LsCekEeSjdJiE6np9EA" addition="_OQz9sCekEeSjdJiE6np9EA"/>
+ </ownedUseCase>
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_7DBvEC6GEeSaMrdXMag_Yg" name="Re-Import" subject="_M7ibhQ2HEeSkbsvlP0s7pA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_XLVBEC6IEeSaMrdXMag_Yg" annotatedElement="_7DBvEC6GEeSaMrdXMag_Yg">
+ <body>When a ReqIfile has been already imported, Papyrus shall update contents during Re-import&#xD;
+</body>
+ </ownedComment>
+ <extensionPoint xmi:type="uml:ExtensionPoint" xmi:id="_-4HxUC6GEeSaMrdXMag_Yg" name="ExtensionPoint1"/>
+ </ownedUseCase>
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_Dxy2AC6HEeSaMrdXMag_Yg" name="Re-Export" subject="_M7ibhQ2HEeSkbsvlP0s7pA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_pJJ4kC6IEeSaMrdXMag_Yg" annotatedElement="_Dxy2AC6HEeSaMrdXMag_Yg">
+ <body>When a UML model has been already exported, PapyrusReq must only update the content of the file.&#xD;
+</body>
+ </ownedComment>
+ <extensionPoint xmi:type="uml:ExtensionPoint" xmi:id="_FAqc4C6HEeSaMrdXMag_Yg" name="ExtensionPoint1"/>
+ </ownedUseCase>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Actor" xmi:id="_Vfnf8A2IEeSkbsvlP0s7pA" name="User"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_WwkKcA2IEeSkbsvlP0s7pA" name="A_importreqif file_user" memberEnd="_WwkKcQ2IEeSkbsvlP0s7pA _WwkKdA2IEeSkbsvlP0s7pA">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_WwkKcQ2IEeSkbsvlP0s7pA" name="importreqif file" type="_RrUH4A2IEeSkbsvlP0s7pA" association="_WwkKcA2IEeSkbsvlP0s7pA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WwkKcg2IEeSkbsvlP0s7pA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WwkKcw2IEeSkbsvlP0s7pA" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_WwkKdA2IEeSkbsvlP0s7pA" name="user" type="_Vfnf8A2IEeSkbsvlP0s7pA" association="_WwkKcA2IEeSkbsvlP0s7pA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WwkKdQ2IEeSkbsvlP0s7pA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WwkKdg2IEeSkbsvlP0s7pA" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_XVutAA2IEeSkbsvlP0s7pA" name="A_user_exportreqiffile" memberEnd="_XVutAQ2IEeSkbsvlP0s7pA _XVvUEg2IEeSkbsvlP0s7pA">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_XVutAQ2IEeSkbsvlP0s7pA" name="user" type="_Vfnf8A2IEeSkbsvlP0s7pA" association="_XVutAA2IEeSkbsvlP0s7pA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XVvUEA2IEeSkbsvlP0s7pA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XVvUEQ2IEeSkbsvlP0s7pA" value="1"/>
+ </ownedEnd>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_XVvUEg2IEeSkbsvlP0s7pA" name="exportreqiffile" type="_UBKk8A2IEeSkbsvlP0s7pA" association="_XVutAA2IEeSkbsvlP0s7pA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XVvUEw2IEeSkbsvlP0s7pA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XVvUFA2IEeSkbsvlP0s7pA" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_KJS4sC6JEeSaMrdXMag_Yg" name="SatisfactionOf_ReqIFExport" client="_APZDoCefEeSjdJiE6np9EA" supplier="_bslN8A2HEeSkbsvlP0s7pA"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_NWLEYC6JEeSaMrdXMag_Yg" name="SatisfactionOf_ReqIFExport" client="_UBKk8A2IEeSkbsvlP0s7pA" supplier="_bslN8A2HEeSkbsvlP0s7pA"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_RbG5cC6JEeSaMrdXMag_Yg" name="SatisfactionOf_ReqIFExport" client="_J-LD0CekEeSjdJiE6np9EA" supplier="_bslN8A2HEeSkbsvlP0s7pA"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_bM48kC6JEeSaMrdXMag_Yg" name="SatisfactionOf_ReqIfImport" client="_RrUH4A2IEeSkbsvlP0s7pA" supplier="_Q00aMA2HEeSkbsvlP0s7pA"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_hP62AC6JEeSaMrdXMag_Yg" name="SatisfactionOf_Re-Import" client="_7DBvEC6GEeSaMrdXMag_Yg" supplier="_zBL_kC6GEeSaMrdXMag_Yg"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_mrKWsC6JEeSaMrdXMag_Yg" name="SatisfactionOf_ReqIfImport" client="_6UJ0QCeeEeSjdJiE6np9EA" supplier="_Q00aMA2HEeSkbsvlP0s7pA"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_oT85cC6JEeSaMrdXMag_Yg" name="SatisfactionOf_ReqIfImport" client="_KAbGIC0AEeS1XdXKGPJRfg" supplier="_Q00aMA2HEeSkbsvlP0s7pA"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_8KEIQC6JEeSaMrdXMag_Yg" name="SatisfactionOf_ReqIfImport" client="_H53pUC0AEeS1XdXKGPJRfg" supplier="_Q00aMA2HEeSkbsvlP0s7pA"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_-VihUC6JEeSaMrdXMag_Yg" name="SatisfactionOf_Re-Export" client="_Dxy2AC6HEeSaMrdXMag_Yg" supplier="_g-4QsC6GEeSaMrdXMag_Yg"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_CV3jMC6KEeSaMrdXMag_Yg" name="SatisfactionOf_ReqIFExport" client="_OQz9sCekEeSjdJiE6np9EA" supplier="_bslN8A2HEeSkbsvlP0s7pA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Model" xmi:id="_M7ibhg2HEeSkbsvlP0s7pA" name="Design">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Sil8sC0aEeS1XdXKGPJRfg" annotatedElement="_M7ibhg2HEeSkbsvlP0s7pA">
+ <body>The architecture is quite simple. There are wizard for import and export, two classes to realize the job and differents assistants or dialogs.&#xD;
+Nevertheless, two layers can be distinguished in the code:&#xD;
+ - one layer independent of the papyrus&#xD;
+ - one layer called integration dependent of papyrus.&#xD;
+Efforts have been made to be more independant of papyurs in order to facilitate the maintenance of the algorithm for import export.&#xD;
+The layer integration contains specializations to create elements by using service edit or use some facilities as advanced dialog.&#xD;
+&#xD;
+</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_M7ibhw2HEeSkbsvlP0s7pA" name="DesignAbstraction" client="_M7ibhg2HEeSkbsvlP0s7pA" supplier="_M7ibgw2HEeSkbsvlP0s7pA"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_lTqHwCazEeSjdJiE6np9EA" name="com.cea.darwin.reqif">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_cWRW8CxOEeSjdJiE6np9EA" annotatedElement="_6GCKQCw0EeSjdJiE6np9EA _ID2I8Cw1EeSjdJiE6np9EA">
+ <body>independant of Papyrus</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Package" xmi:id="_6GCKQCw0EeSjdJiE6np9EA" name="assistant">
+ <packagedElement xmi:type="uml:Class" xmi:id="_De0CECw2EeSjdJiE6np9EA" name="ReqIFNewFilePage"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_LYTG0Cw2EeSjdJiE6np9EA" name="ReqIFSelectionPage"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_iP7l4Cw2EeSjdJiE6np9EA" name="CreateOrSelectProfileDialog"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_72Z7sCw0EeSjdJiE6np9EA" name="integration">
+ <packagedElement xmi:type="uml:Package" xmi:id="_X5UK0CxLEeSjdJiE6np9EA" name="assistant">
+ <packagedElement xmi:type="uml:Class" xmi:id="_YWHdkCw1EeSjdJiE6np9EA" name="AbstractWizardForPapyrus"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_YGnMgCw2EeSjdJiE6np9EA" name="ChooseReqIFTypeDialog"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_2Cow0Cw1EeSjdJiE6np9EA" name="ReqIFImportWizard">
+ <generalization xmi:type="uml:Generalization" xmi:id="__dzDsCw1EeSjdJiE6np9EA" general="_YWHdkCw1EeSjdJiE6np9EA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_q1TVsCw1EeSjdJiE6np9EA" name="ReqIFExportWizard">
+ <generalization xmi:type="uml:Generalization" xmi:id="_wjMFkCw1EeSjdJiE6np9EA" general="_YWHdkCw1EeSjdJiE6np9EA"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_4JxFUCxJEeSjdJiE6np9EA" name="transformation">
+ <packagedElement xmi:type="uml:Class" xmi:id="_iiaCsCxGEeSjdJiE6np9EA" name="ReqIFImporterServiceEdit">
+ <generalization xmi:type="uml:Generalization" xmi:id="_n2Fi0CxGEeSjdJiE6np9EA" general="_o1kIQCazEeSjdJiE6np9EA"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_7SZ0wCxKEeSjdJiE6np9EA" name="createDependency"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="__YybUCxKEeSjdJiE6np9EA" name="createRequirementClass"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_CTkKYCxLEeSjdJiE6np9EA" name="selectReqIFType"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_Pyr6kCxOEeSjdJiE6np9EA" name="defineProfile"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_GwGnICxLEeSjdJiE6np9EA" client="_iiaCsCxGEeSjdJiE6np9EA" supplier="_YGnMgCw2EeSjdJiE6np9EA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_k2eS4CxNEeSjdJiE6np9EA" name="command">
+ <packagedElement xmi:type="uml:Class" xmi:id="_nBoi4CxNEeSjdJiE6np9EA" name="DefineProfileCommand"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_ID2I8Cw1EeSjdJiE6np9EA" name="transformation">
+ <packagedElement xmi:type="uml:Class" xmi:id="_o1kIQCazEeSjdJiE6np9EA" name="ReqIFImporter">
+ <generalization xmi:type="uml:Generalization" xmi:id="_toxt0CeeEeSjdJiE6np9EA" general="_n9SxsCeeEeSjdJiE6np9EA"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_sFUBwCazEeSjdJiE6np9EA" name="importReqIFModel"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_n9SxsCeeEeSjdJiE6np9EA" name="ReqIFBaseTransformation"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ZIxNcCeeEeSjdJiE6np9EA" name="ReqIFExporter">
+ <generalization xmi:type="uml:Generalization" xmi:id="_s3NG8CeeEeSjdJiE6np9EA" general="_n9SxsCeeEeSjdJiE6np9EA"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_d-6dACeeEeSjdJiE6np9EA" name="exportReqIFModel"/>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Model" xmi:id="_M7ibiA2HEeSkbsvlP0s7pA" name="Test">
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_M7ibiQ2HEeSkbsvlP0s7pA" name="Dependency1" client="_M7ibiA2HEeSkbsvlP0s7pA" supplier="_M7ibgw2HEeSkbsvlP0s7pA"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_M7ibig2HEeSkbsvlP0s7pA" name="Dependency2" client="_M7ibiA2HEeSkbsvlP0s7pA" supplier="_M7ibhg2HEeSkbsvlP0s7pA"/>
+ <packagedElement xmi:type="uml:UseCase" xmi:id="_2fkgkA2NEeSkbsvlP0s7pA" name="TestImport">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_UiIgoC0cEeS1XdXKGPJRfg" annotatedElement="_2fkgkA2NEeSkbsvlP0s7pA">
+ <body>The goal is to test the import of a reIF file&#xD;
+</body>
+ </ownedComment>
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_fvp-cC0bEeS1XdXKGPJRfg" name="ImportEnumeration">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_AZpS8C0dEeS1XdXKGPJRfg" annotatedElement="_fvp-cC0bEeS1XdXKGPJRfg">
+ <body>All dataType Definition Enumeration must become UML Enumeration into a profile&#xD;
+</body>
+ </ownedComment>
+ </ownedUseCase>
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_j-U-UC0bEeS1XdXKGPJRfg" name="ImportSpecObjectTypes">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_SL_6QC0dEeS1XdXKGPJRfg" annotatedElement="_j-U-UC0bEeS1XdXKGPJRfg">
+ <body>All SelectedSpecObjects types must be stereotypes that specialize Requirement of SysML.&#xD;
+All attributes must also generated.&#xD;
+</body>
+ </ownedComment>
+ </ownedUseCase>
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_pw72IC0bEeS1XdXKGPJRfg" name="ImportSpecRelationTypes">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_fk7DMC0dEeS1XdXKGPJRfg" annotatedElement="_zNvu0C0bEeS1XdXKGPJRfg">
+ <body>All SpecRelationTypes must be imported as Stereotypes that extends dependency.&#xD;
+</body>
+ </ownedComment>
+ </ownedUseCase>
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_ugtX8C0bEeS1XdXKGPJRfg" name="ImportSpecObject">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_q7lZcC0dEeS1XdXKGPJRfg" annotatedElement="_ugtX8C0bEeS1XdXKGPJRfg">
+ <body>All SpecObject with the selected SpecObjectTypes must be imported as class with corresponded applied stereotype.&#xD;
+</body>
+ </ownedComment>
+ </ownedUseCase>
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_zNvu0C0bEeS1XdXKGPJRfg" name="ImportSpecRelation">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_o3I1cC0dEeS1XdXKGPJRfg" annotatedElement="_zNvu0C0bEeS1XdXKGPJRfg">
+ <body>All specRelation must be imported as stereotyped dependency.&#xD;
+</body>
+ </ownedComment>
+ </ownedUseCase>
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_wdNg4C0bEeS1XdXKGPJRfg" name="ImportSpecObject_XHTML">
+ <ownedComment xmi:type="uml:Comment" xmi:id="__Fp0IC0fEeS1XdXKGPJRfg">
+ <body>if an attribute of a specObjectType is XHTML, the attribute in UML is typed by String</body>
+ </ownedComment>
+ </ownedUseCase>
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_5fToIA2NEeSkbsvlP0s7pA" name="BadBuildReqIFFile">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ViXEAC0bEeS1XdXKGPJRfg" annotatedElement="_5fToIA2NEeSkbsvlP0s7pA">
+ <body>Not Tested, to implement&#xD;
+</body>
+ </ownedComment>
+ </ownedUseCase>
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_AZi2YA2OEeSkbsvlP0s7pA" name="EmptyFile">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Y1KRgC0bEeS1XdXKGPJRfg" annotatedElement="_5fToIA2NEeSkbsvlP0s7pA">
+ <body>Not Tested, to implement&#xD;
+</body>
+ </ownedComment>
+ </ownedUseCase>
+ </packagedElement>
+ <packagedElement xmi:type="uml:UseCase" xmi:id="_EcyCUA2OEeSkbsvlP0s7pA" name="TestExport">
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_7w734C0bEeS1XdXKGPJRfg" name="ExportEnumeration">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_G7DxgC0dEeS1XdXKGPJRfg" annotatedElement="_7w734C0bEeS1XdXKGPJRfg">
+ <body>All Enumeration from appliedProfile must become a datatypeDefinitionEnumeration In ReqIF File&#xD;
+</body>
+ </ownedComment>
+ </ownedUseCase>
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_7w8e8C0bEeS1XdXKGPJRfg" name="ExportSpecObjectTypes">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_IfVyQC0eEeS1XdXKGPJRfg" annotatedElement="_7w8e8C0bEeS1XdXKGPJRfg">
+ <body>All stereotypes that inherits of SysML Requirement must become a SpecObjectType.&#xD;
+</body>
+ </ownedComment>
+ </ownedUseCase>
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_7w9GAC0bEeS1XdXKGPJRfg" name="ExportSpecRelationTypes">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_X3_-UC0eEeS1XdXKGPJRfg" annotatedElement="_7w9GAC0bEeS1XdXKGPJRfg">
+ <body>All stereotypes that inherits of dependency become SpecRelationType</body>
+ </ownedComment>
+ </ownedUseCase>
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_7w9GAS0bEeS1XdXKGPJRfg" name="ExportSpecObject">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_3ik5sC0eEeS1XdXKGPJRfg" annotatedElement="_7w9GAS0bEeS1XdXKGPJRfg">
+ <body>All object stereotyped by a stereotype that has an equivalent in the list of SpecObjectType become a SpecObject in the ReqIfFile.&#xD;
+</body>
+ </ownedComment>
+ </ownedUseCase>
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_7w8e8S0bEeS1XdXKGPJRfg" name="ExportSpecRelation">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_PWO8IC0fEeS1XdXKGPJRfg" annotatedElement="_7w8e8S0bEeS1XdXKGPJRfg">
+ <body>All dependencies that are stereotyped by a stereotype that has an equivalence in the list of SpecRelation is imported as SpecObjectRelation.</body>
+ </ownedComment>
+ </ownedUseCase>
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_7w9tEC0bEeS1XdXKGPJRfg" name="ExportSpecObject_XHTML">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_k_Q6EC0fEeS1XdXKGPJRfg" annotatedElement="_7w9tEC0bEeS1XdXKGPJRfg">
+ <body>If an attribute of a stereotype is typed by a primitive type XHTML, a datatype definition XHTML is created?&#xD;
+</body>
+ </ownedComment>
+ </ownedUseCase>
+ <ownedUseCase xmi:type="uml:UseCase" xmi:id="_JXnkoA2OEeSkbsvlP0s7pA" name="EmptyUMLFile">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ZWHpgC0bEeS1XdXKGPJRfg" annotatedElement="_5fToIA2NEeSkbsvlP0s7pA">
+ <body>Not Tested, to implement&#xD;
+</body>
+ </ownedComment>
+ </ownedUseCase>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Model" xmi:id="_gQrKEC6KEeSaMrdXMag_Yg" name="Import Export of ReqIF elements into Papyrus">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gQu0cC6KEeSaMrdXMag_Yg">
+ <body>This model explains the functionality in Papyrus Req in order to import or export ReqIF files into Papyrus (OMG Document Number: formal/2013-10-01 Standard document URL: http://www.omg.org/spec/ReqIF/1.1)&#xD;
+</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Package" xmi:id="_gQxQsC6KEeSaMrdXMag_Yg" name="Requirements">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gQ1iIC6KEeSaMrdXMag_Yg">
+ <body>- ReqIfImport (id=Req_001):
+ Darwin shall allow importation of Reqif elements to SysML Model</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gQ5MgC6KEeSaMrdXMag_Yg">
+ <body>- ReqIFExport (id=Req_002):
+ Darwin shall enable export of SysML requirement to ReqIF Model</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gQ824C6KEeSaMrdXMag_Yg">
+ <body>- ControlMode (id=Req_003):
+ The managment with ReqIf must support Control Mode</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gRBIUC6KEeSaMrdXMag_Yg">
+ <body>- WihtoutUI (id=Req_004):
+ The export can be done programmatically, without GUI, in order to test it, or to be enable to pilot it programmatically</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gRFZwC6KEeSaMrdXMag_Yg">
+ <body>- Re-Export (id=Req_005):
+ Papyrus shall re-export requirements in existing reqIF file</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gRJEIC6KEeSaMrdXMag_Yg">
+ <body>- Re-Import (id=Req_006):
+ Papyrus shall re-Import requirement from a ReqIF file</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_gRLgYC6KEeSaMrdXMag_Yg" name="Use Cases">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ggEQ8C6KEeSaMrdXMag_Yg">
+ <body>UseCases Diagram</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Package" xmi:id="_ggHUQC6KEeSaMrdXMag_Yg" name="Import ReqIF file">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ggJwgC6KEeSaMrdXMag_Yg">
+ <body>In order to import ReqFile into UMLModel, first analysis will be done:&#xD;
+- All existing SpecObjectTypes will be listed. From the list, the user chooses interesting Types. (In fact types may be purely information as title, chapter...)&#xD;
+- All stereotypes from applied profiles will be also listed.&#xD;
+Because each SpecType becomes a stereotype based on Requirement, if the two lists are equals no stereotypes will be created. </body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gxRVsC6KEeSaMrdXMag_Yg">
+ <body>Import Activity</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gxUZAC6KEeSaMrdXMag_Yg">
+ <body>If stereotypes need to be created, a dialog is opened in order to ask to the user if a profile must be created.&#xD;
+After importing types, elements of ReqIF file are imported &#xD;
+</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Package" xmi:id="_gxWOMC6KEeSaMrdXMag_Yg" name="How to">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gxYqcC6KEeSaMrdXMag_Yg">
+ <body>First the User must have a SysML model. Select the package where ReqIF elements will be imported.&#xD;
+</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gxbGsC6KEeSaMrdXMag_Yg">
+ <body>Import SysMLModel</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gxdi8C6KEeSaMrdXMag_Yg">
+ <body>Select the menu Import of Eclipse.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gxf_MC6KEeSaMrdXMag_Yg">
+ <body>Select import Menu of Eclipse</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gxibcC6KEeSaMrdXMag_Yg">
+ <body>Select the menu Import ReqIF from Papyrus Categories</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gxk3sC6KEeSaMrdXMag_Yg">
+ <body>Import ReqIF</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gxms4C6KEeSaMrdXMag_Yg">
+ <body>Select the ReqIF file to import</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gxpJIC6KEeSaMrdXMag_Yg">
+ <body>ReqIF file Selection</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gxrlYC6KEeSaMrdXMag_Yg">
+ <body>Select Types of ReqIFElement that you want to import</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gxuBoC6KEeSaMrdXMag_Yg">
+ <body>SpecObject Type selection</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gxy6IC6KEeSaMrdXMag_Yg">
+ <body>Types in ReqIF become stereotypes in profile, select or create the profile that will contain imported types</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gx0vUC6KEeSaMrdXMag_Yg">
+ <body>Create or select Profile</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gx3LkS6KEeSaMrdXMag_Yg">
+ <body>The model has now imported requirements with relations. Note that a comment explains the origin of the import.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gx5n0C6KEeSaMrdXMag_Yg">
+ <body>C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import7.png</body>
+ </ownedComment>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_gx8EEC6KEeSaMrdXMag_Yg" name="Import DataType Enumeration">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gx-gUC6KEeSaMrdXMag_Yg">
+ <body>Each Datatype Definition Enumeration in a ReqFIle is transformed to UML Eneumeration in a profile.&#xD;
+</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_gyAVgC6KEeSaMrdXMag_Yg" name="Import SpecTypes">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gyCxwC6KEeSaMrdXMag_Yg">
+ <body>Each SpecObjectType choosen in the ReqIFile is transformed to stereotype that inherits of SysML Requirement in a profile.&#xD;
+Each SpecRelationType of the ReqIF file is transformed in to Stereotype based on dependency Metaclass.&#xD;
+Each attribute is transformed to equivalent attribute in Stereotype. Only XTML attributes are transformed into String typed attributes in profile.&#xD;
+</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_gyEm8S6KEeSaMrdXMag_Yg" name="Import SpecObjects">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gyHDMC6KEeSaMrdXMag_Yg">
+ <body>Each SpecObjectNode is transformed to class with a corresponded applied stereotype. During the creation, SpecHierarchy ared used in order to structure the SysML files.&#xD;
+Each Specification becomes a package.&#xD;
+Each SpecRelation becomes a stereotyped dependency. if the souce or target of this object are not created, the spec relation will be not imported.&#xD;
+</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_gyI4YS6KEeSaMrdXMag_Yg" name="Export UML Model to ReqIF File">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gyLUoS6KEeSaMrdXMag_Yg">
+ <body>The goal is to export all requirements and links into ReqIF.&#xD;
+To do that, the tool lists all applied stereotypes that inherits of SysML::Requirement and that inherits of dependencies.&#xD;
+From this list, the tool constructs, in ReqIF File, correponding specObjects Tyoes and SpecRelationsTypes&#xD;
+Then from all stereotyped elements, it constructs the corresponding hierarchy. &#xD;
+&#xD;
+</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gzkbwC6KEeSaMrdXMag_Yg">
+ <body>Export Activity</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Package" xmi:id="_gzm4AC6KEeSaMrdXMag_Yg" name="How to">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gzpUQC6KEeSaMrdXMag_Yg">
+ <body>Select the SysML that you want to export&#xD;
+</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gzrJcC6KEeSaMrdXMag_Yg">
+ <body>SysML Model</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gztlsC6KEeSaMrdXMag_Yg">
+ <body>Select the export Menu from Eclipse menu.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gzwB8C6KEeSaMrdXMag_Yg">
+ <body>Export Menu</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gzx3IC6KEeSaMrdXMag_Yg">
+ <body>Select the menu export ReqIF form the papyrus Category</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gzzsUS6KEeSaMrdXMag_Yg">
+ <body>Import ReqIF file</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gz2IkC6KEeSaMrdXMag_Yg">
+ <body>Choose the name of the reqif file.</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gz39wC6KEeSaMrdXMag_Yg">
+ <body>Choose ReqIF File name</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gz6aAC6KEeSaMrdXMag_Yg">
+ <body>At the end, a reqFile is generated. The header has an information that explain that the result comes from UML file.&#xD;
+</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_gz8PMC6KEeSaMrdXMag_Yg">
+ <body>Result in the ReqIf file</body>
+ </ownedComment>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_gz-rcC6KEeSaMrdXMag_Yg" name="export DataType">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_g0AgoS6KEeSaMrdXMag_Yg">
+ <body>In a reqFile, all basic types must be created; that is why data type definition string, integer, Real, boolean and XHTML are created.&#xD;
+Moreover, all Enumerations in applied profiles become DataTypeDefinitionEnumerations in the ReqIF file.&#xD;
+</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_g0C84C6KEeSaMrdXMag_Yg" name="Export Stereotypes">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_g0EyEC6KEeSaMrdXMag_Yg">
+ <body>From all stereotypes, all SpecObject Types and all SpecRelationTypes will be created. If an attribute of a stereotype is typed by a primitiveType named XHTML, the attribute of the SpecObjecType will be XHTML. </body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_g0HOUC6KEeSaMrdXMag_Yg" name="Export Stereotyped Elements">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_g0JDgC6KEeSaMrdXMag_Yg">
+ <body>From all packages that contains Requirements, a specification will be created. Then a hierarchy will be created by taking in account the structure of requirements. Finally SpecObject and SpecRelation are created.&#xD;
+</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_g0K4sS6KEeSaMrdXMag_Yg" name="Re-Import">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_g0NU8C6KEeSaMrdXMag_Yg">
+ <body>When a ReqIfile has been already imported, Papyrus shall update contents during Re-import&#xD;
+</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_g0PKIC6KEeSaMrdXMag_Yg" name="Re-Export">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_g0RmYC6KEeSaMrdXMag_Yg">
+ <body>When a UML model has been already exported, PapyrusReq must only update the content of the file.&#xD;
+</body>
+ </ownedComment>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_g0TbkS6KEeSaMrdXMag_Yg" name="Design">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hXNUUC6KEeSaMrdXMag_Yg">
+ <body>Architecture of ReqIF Import-Export</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hXQXoC6KEeSaMrdXMag_Yg">
+ <body>The architecture is quite simple. There are wizard for import and export, two classes to realize the job and differents assistants or dialogs.&#xD;
+Nevertheless, two layers can be distinguished in the code:&#xD;
+ - one layer independent of the papyrus&#xD;
+ - one layer called integration dependent of papyrus.&#xD;
+Efforts have been made to be more independant of papyurs in order to facilitate the maintenance of the algorithm for import export.&#xD;
+The layer integration contains specializations to create elements by using service edit or use some facilities as advanced dialog.&#xD;
+&#xD;
+</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_hXSM0C6KEeSaMrdXMag_Yg" name="Tests">
+ <packagedElement xmi:type="uml:Package" xmi:id="_hXUpEC6KEeSaMrdXMag_Yg" name="TestImport">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hXWeQC6KEeSaMrdXMag_Yg">
+ <body>The goal is to test the import of a reIF file&#xD;
+</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_hXY6gC6KEeSaMrdXMag_Yg" name="ImportEnumeration">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hXavsC6KEeSaMrdXMag_Yg">
+ <body>All dataType Definition Enumeration must become UML Enumeration into a profile&#xD;
+</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_hXck4C6KEeSaMrdXMag_Yg" name="ImportSpecObjectTypes">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hXeaES6KEeSaMrdXMag_Yg">
+ <body>All SelectedSpecObjects types must be stereotypes that specialize Requirement of SysML.&#xD;
+All attributes must also generated.&#xD;
+</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_hXg2UC6KEeSaMrdXMag_Yg" name="ImportSpecRelationTypes">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hXirgC6KEeSaMrdXMag_Yg">
+ <body>All SpecRelationTypes must be imported as Stereotypes that extends dependency.&#xD;
+</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_hXlHwC6KEeSaMrdXMag_Yg" name="ImportSpecObject">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hXm88C6KEeSaMrdXMag_Yg">
+ <body>All SpecObject with the selected SpecObjectTypes must be imported as class with corresponded applied stereotype.&#xD;
+</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_hXoyIC6KEeSaMrdXMag_Yg" name="ImportSpecRelation">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hXrOYC6KEeSaMrdXMag_Yg">
+ <body>All specRelation must be imported as stereotyped dependency.&#xD;
+</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_hXtqoC6KEeSaMrdXMag_Yg" name="ImportSpecObject_XHTML">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hXvf0C6KEeSaMrdXMag_Yg">
+ <body>if an attribute of a specObjectType is XHTML, the attribute in UML is typed by String</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_hXxVAC6KEeSaMrdXMag_Yg" name="BadBuildReqIFFile">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hXzKMS6KEeSaMrdXMag_Yg">
+ <body>Not Tested, to implement&#xD;
+</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_hX1mcC6KEeSaMrdXMag_Yg" name="EmptyFile">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hX3boS6KEeSaMrdXMag_Yg">
+ <body>Not Tested, to implement&#xD;
+</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_hX534C6KEeSaMrdXMag_Yg" name="TestExport"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_hX7tEC6KEeSaMrdXMag_Yg" name="ExportEnumeration">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hX9iQS6KEeSaMrdXMag_Yg">
+ <body>All Enumeration from appliedProfile must become a datatypeDefinitionEnumeration In ReqIF File&#xD;
+</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_hX_-gC6KEeSaMrdXMag_Yg" name="ExportSpecObjectTypes">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hYBzsS6KEeSaMrdXMag_Yg">
+ <body>All stereotypes that inherits of SysML Requirement must become a SpecObjectType.&#xD;
+</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_hYEP8C6KEeSaMrdXMag_Yg" name="ExportSpecRelationTypes">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hYGsMC6KEeSaMrdXMag_Yg">
+ <body>All stereotypes that inherits of dependency become SpecRelationType</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_hYJIcC6KEeSaMrdXMag_Yg" name="ExportSpecObject">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hYK9oC6KEeSaMrdXMag_Yg">
+ <body>All object stereotyped by a stereotype that has an equivalent in the list of SpecObjectType become a SpecObject in the ReqIfFile.&#xD;
+</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_hYMy0C6KEeSaMrdXMag_Yg" name="ExportSpecRelation">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hYOA8S6KEeSaMrdXMag_Yg">
+ <body>All dependencies that are stereotyped by a stereotype that has an equivalence in the list of SpecRelation is imported as SpecObjectRelation.</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_hYQdMC6KEeSaMrdXMag_Yg" name="ExportSpecObject_XHTML">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hYRrUS6KEeSaMrdXMag_Yg">
+ <body>If an attribute of a stereotype is typed by a primitive type XHTML, a datatype definition XHTML is created?&#xD;
+</body>
+ </ownedComment>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_hYUHkC6KEeSaMrdXMag_Yg" name="EmptyUMLFile">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hYVVsS6KEeSaMrdXMag_Yg">
+ <body>Not Tested, to implement&#xD;
+</body>
+ </ownedComment>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_M7ibiw2HEeSkbsvlP0s7pA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_P_WcUCz4EeS1XdXKGPJRfg" source="PapyrusVersion">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_P_WcUSz4EeS1XdXKGPJRfg" key="Version" value="0.0.2"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_P_WcUiz4EeS1XdXKGPJRfg" key="Comment" value="add title property"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_P_WcUyz4EeS1XdXKGPJRfg" key="Copyright" value="CEA LIST"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_P_WcVCz4EeS1XdXKGPJRfg" key="Date" value="2014-04-18"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_P_WcVSz4EeS1XdXKGPJRfg" key="Author" value="P. Tessier"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M7ibjA2HEeSkbsvlP0s7pA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://DEVELOPER_PROFILES/developerprocess.profile.uml#_VA6mkMcPEeO9CYUoXDRplw"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://DEVELOPER_PROFILES/developerprocess.profile.uml#_kWqjAMbXEeO09JBvNFZRNw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_M7ibjQ2HEeSkbsvlP0s7pA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QARCUCz4EeS1XdXKGPJRfg" source="PapyrusVersion">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QARCUSz4EeS1XdXKGPJRfg" key="Version" value="0.0.2"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QARCUiz4EeS1XdXKGPJRfg" key="Comment" value="add title property"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QARCUyz4EeS1XdXKGPJRfg" key="Copyright" value="CEA LIST"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QARCVCz4EeS1XdXKGPJRfg" key="Date" value="2014-04-18"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QARCVSz4EeS1XdXKGPJRfg" key="Author" value="P. Tessier"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M7ibjg2HEeSkbsvlP0s7pA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://DEVELOPER_PROFILES/developerprocess.profile.uml#_VA-4AMcPEeO9CYUoXDRplw"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://DEVELOPER_PROFILES/developerprocess.profile.uml#_qCT3MMbXEeO09JBvNFZRNw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_M7ibjw2HEeSkbsvlP0s7pA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QAV60Cz4EeS1XdXKGPJRfg" source="PapyrusVersion">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QAV60Sz4EeS1XdXKGPJRfg" key="Version" value="0.0.2"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QAV60iz4EeS1XdXKGPJRfg" key="Comment" value="add title property"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QAV60yz4EeS1XdXKGPJRfg" key="Copyright" value="CEA LIST"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QAV61Cz4EeS1XdXKGPJRfg" key="Date" value="2014-04-18"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QAV61Sz4EeS1XdXKGPJRfg" key="Author" value="P. Tessier"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M7ibkA2HEeSkbsvlP0s7pA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://DEVELOPER_PROFILES/developerprocess.profile.uml#_VBAtMccPEeO9CYUoXDRplw"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://DEVELOPER_PROFILES/developerprocess.profile.uml#_2LNtQMbYEeO09JBvNFZRNw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_M7ibkQ2HEeSkbsvlP0s7pA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M7ibkg2HEeSkbsvlP0s7pA" 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="_M7ibkw2HEeSkbsvlP0s7pA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M7iblA2HEeSkbsvlP0s7pA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://DEVELOPER_PROFILES/Document.profile.uml#_qR44IMn0EeO9CYUoXDRplw"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://DEVELOPER_PROFILES/Document.profile.uml#_D0JcUMnzEeO9CYUoXDRplw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_71n-wC6IEeSaMrdXMag_Yg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_727mUC6IEeSaMrdXMag_Yg" 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="_72_3wC6IEeSaMrdXMag_Yg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_74MKkC6IEeSaMrdXMag_Yg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ </profileApplication>
+ </uml:Model>
+ <structure:Project xmi:id="_M7iblQ2HEeSkbsvlP0s7pA" author="P. Tessier" version="1.0.0" base_Model="_M7ibgA2HEeSkbsvlP0s7pA" title="Import Export of ReqIF elements into Papyrus"/>
+ <structure:Requirements xmi:id="_M7iblg2HEeSkbsvlP0s7pA" base_Model="_M7ibgg2HEeSkbsvlP0s7pA"/>
+ <structure:UseCases xmi:id="_M7iblw2HEeSkbsvlP0s7pA" base_Model="_M7ibgw2HEeSkbsvlP0s7pA"/>
+ <structure:Design xmi:id="_M7ibmA2HEeSkbsvlP0s7pA" base_Model="_M7ibhg2HEeSkbsvlP0s7pA"/>
+ <structure:Tests xmi:id="_M7ibmQ2HEeSkbsvlP0s7pA" base_Model="_M7ibiA2HEeSkbsvlP0s7pA"/>
+ <Requirements:Requirement xmi:id="_Q4muAA2HEeSkbsvlP0s7pA" text="Darwin shall allow importation of Reqif elements to SysML Model" id="Req_001" base_Class="_Q00aMA2HEeSkbsvlP0s7pA"/>
+ <Requirements:Requirement xmi:id="_bsoRQA2HEeSkbsvlP0s7pA" text="Darwin shall enable export of SysML requirement to ReqIF Model" id="Req_002" base_Class="_bslN8A2HEeSkbsvlP0s7pA"/>
+ <Requirements:Requirement xmi:id="_mlaYsA2HEeSkbsvlP0s7pA" text="The managment with ReqIf must support Control Mode" id="Req_003" base_Class="_mlYjgA2HEeSkbsvlP0s7pA"/>
+ <Requirements:Requirement xmi:id="_Jmf9QBx4EeSlI-4RKfFQuw" text="The export can be done programmatically, without GUI, in order to test it, or to be enable to pilot it programmatically" id="Req_004" base_Class="_Jf-egBx4EeSlI-4RKfFQuw"/>
+ <trace:UseCaseTest xmi:id="_RSGvwC0bEeS1XdXKGPJRfg" base_UseCase="_2fkgkA2NEeSkbsvlP0s7pA"/>
+ <trace:UseCaseTest xmi:id="_S3sNgC0bEeS1XdXKGPJRfg" base_UseCase="_EcyCUA2OEeSkbsvlP0s7pA"/>
+ <trace:UseCaseTest xmi:id="_jXExEC0bEeS1XdXKGPJRfg" base_UseCase="_fvp-cC0bEeS1XdXKGPJRfg"/>
+ <trace:UseCaseTest xmi:id="_E33nMC0cEeS1XdXKGPJRfg" base_UseCase="_j-U-UC0bEeS1XdXKGPJRfg"/>
+ <trace:UseCaseTest xmi:id="_Fl-qYC0cEeS1XdXKGPJRfg" base_UseCase="_zNvu0C0bEeS1XdXKGPJRfg"/>
+ <trace:UseCaseTest xmi:id="_GMkwUC0cEeS1XdXKGPJRfg" base_UseCase="_pw72IC0bEeS1XdXKGPJRfg"/>
+ <trace:UseCaseTest xmi:id="_G_cXsC0cEeS1XdXKGPJRfg" base_UseCase="_ugtX8C0bEeS1XdXKGPJRfg"/>
+ <trace:UseCaseTest xmi:id="_HvWKoC0cEeS1XdXKGPJRfg" base_UseCase="_wdNg4C0bEeS1XdXKGPJRfg"/>
+ <trace:UseCaseTest xmi:id="_IjmSEC0cEeS1XdXKGPJRfg" base_UseCase="_5fToIA2NEeSkbsvlP0s7pA"/>
+ <trace:UseCaseTest xmi:id="_JNY18C0cEeS1XdXKGPJRfg" base_UseCase="_AZi2YA2OEeSkbsvlP0s7pA"/>
+ <trace:UseCaseTest xmi:id="_J5cDoC0cEeS1XdXKGPJRfg" base_UseCase="_7w734C0bEeS1XdXKGPJRfg"/>
+ <trace:UseCaseTest xmi:id="_KksAEC0cEeS1XdXKGPJRfg" base_UseCase="_7w8e8C0bEeS1XdXKGPJRfg"/>
+ <trace:UseCaseTest xmi:id="_LJ0tcC0cEeS1XdXKGPJRfg" base_UseCase="_7w8e8S0bEeS1XdXKGPJRfg"/>
+ <trace:UseCaseTest xmi:id="_L1F4AC0cEeS1XdXKGPJRfg" base_UseCase="_7w9GAC0bEeS1XdXKGPJRfg"/>
+ <trace:UseCaseTest xmi:id="_Ml6Q8C0cEeS1XdXKGPJRfg" base_UseCase="_7w9GAS0bEeS1XdXKGPJRfg"/>
+ <trace:UseCaseTest xmi:id="_NXHEYC0cEeS1XdXKGPJRfg" base_UseCase="_7w9tEC0bEeS1XdXKGPJRfg"/>
+ <trace:UseCaseTest xmi:id="_ODKSEC0cEeS1XdXKGPJRfg" base_UseCase="_JXnkoA2OEeSkbsvlP0s7pA"/>
+ <structure:UserDoc xmi:id="_i4J8QC0iEeS1XdXKGPJRfg" base_Comment="_bMSusC0gEeS1XdXKGPJRfg"/>
+ <structure:UserDoc xmi:id="_dY7MEC0lEeS1XdXKGPJRfg" base_Comment="_EU4VQC0kEeS1XdXKGPJRfg"/>
+ <structure:UserDoc xmi:id="_kFrX8C0lEeS1XdXKGPJRfg" base_Comment="_dW9SoC0kEeS1XdXKGPJRfg"/>
+ <structure:UserDoc xmi:id="_k8S24C0lEeS1XdXKGPJRfg" base_Comment="_f2FngC0kEeS1XdXKGPJRfg"/>
+ <structure:UserDoc xmi:id="_lt2PoC0lEeS1XdXKGPJRfg" base_Comment="_f-fVkC0kEeS1XdXKGPJRfg"/>
+ <structure:UserDoc xmi:id="_mXoMcC0lEeS1XdXKGPJRfg" base_Comment="_gFMagC0kEeS1XdXKGPJRfg"/>
+ <structure:UserDoc xmi:id="_nBBuwC0lEeS1XdXKGPJRfg" base_Comment="_gK1vgC0kEeS1XdXKGPJRfg"/>
+ <structure:UserDoc xmi:id="_Ob3E8C0nEeS1XdXKGPJRfg" base_Comment="_CZkNMC0mEeS1XdXKGPJRfg"/>
+ <structure:UserDoc xmi:id="_PK9moC0nEeS1XdXKGPJRfg" base_Comment="_LQdVYC0mEeS1XdXKGPJRfg"/>
+ <structure:UserDoc xmi:id="_PxPjgC0nEeS1XdXKGPJRfg" base_Comment="_LZ7acC0mEeS1XdXKGPJRfg"/>
+ <structure:UserDoc xmi:id="_QWC5sC0nEeS1XdXKGPJRfg" base_Comment="_Lh4ckC0mEeS1XdXKGPJRfg"/>
+ <structure:UserDoc xmi:id="_110G0C0nEeS1XdXKGPJRfg" base_Comment="_g8fHgC0nEeS1XdXKGPJRfg"/>
+ <Requirements:Requirement xmi:id="_g-_lcC6GEeSaMrdXMag_Yg" text="Papyrus shall re-export requirements in existing reqIF file" id="Req_005" base_Class="_g-4QsC6GEeSaMrdXMag_Yg"/>
+ <Requirements:Requirement xmi:id="_zBOb0C6GEeSaMrdXMag_Yg" text="Papyrus shall re-Import requirement from a ReqIF file" id="Req_006" base_Class="_zBL_kC6GEeSaMrdXMag_Yg"/>
+ <Requirements:Satisfy xmi:id="_KJY_UC6JEeSaMrdXMag_Yg" base_Abstraction="_KJS4sC6JEeSaMrdXMag_Yg"/>
+ <Requirements:Satisfy xmi:id="_NWOuwC6JEeSaMrdXMag_Yg" base_Abstraction="_NWLEYC6JEeSaMrdXMag_Yg"/>
+ <Requirements:Satisfy xmi:id="_RbJ8wC6JEeSaMrdXMag_Yg" base_Abstraction="_RbG5cC6JEeSaMrdXMag_Yg"/>
+ <Requirements:Satisfy xmi:id="_bM7_4C6JEeSaMrdXMag_Yg" base_Abstraction="_bM48kC6JEeSaMrdXMag_Yg"/>
+ <Requirements:Satisfy xmi:id="_hP-gYC6JEeSaMrdXMag_Yg" base_Abstraction="_hP62AC6JEeSaMrdXMag_Yg"/>
+ <Requirements:Satisfy xmi:id="_mrMy8C6JEeSaMrdXMag_Yg" base_Abstraction="_mrKWsC6JEeSaMrdXMag_Yg"/>
+ <Requirements:Satisfy xmi:id="_oT_8wC6JEeSaMrdXMag_Yg" base_Abstraction="_oT85cC6JEeSaMrdXMag_Yg"/>
+ <Requirements:Satisfy xmi:id="_8KGkgC6JEeSaMrdXMag_Yg" base_Abstraction="_8KEIQC6JEeSaMrdXMag_Yg"/>
+ <Requirements:Satisfy xmi:id="_-Vk9kC6JEeSaMrdXMag_Yg" base_Abstraction="_-VihUC6JEeSaMrdXMag_Yg"/>
+ <Requirements:Satisfy xmi:id="_CV5_cC6KEeSaMrdXMag_Yg" base_Abstraction="_CV3jMC6KEeSaMrdXMag_Yg"/>
+ <Document:Document xmi:id="_gQtmUC6KEeSaMrdXMag_Yg" base_Model="_gQrKEC6KEeSaMrdXMag_Yg" author="P. Tessier" version="1.0.0"/>
+ <Document:Content xmi:id="_gQwpoC6KEeSaMrdXMag_Yg" base_Comment="_gQu0cC6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_gQzF4C6KEeSaMrdXMag_Yg" base_Package="_gQxQsC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_gQ3XUC6KEeSaMrdXMag_Yg" base_Comment="_gQ1iIC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_gQ7BsC6KEeSaMrdXMag_Yg" base_Comment="_gQ5MgC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_gQ-sEC6KEeSaMrdXMag_Yg" base_Comment="_gQ824C6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_gRC9gC6KEeSaMrdXMag_Yg" base_Comment="_gRBIUC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_gRHO8C6KEeSaMrdXMag_Yg" base_Comment="_gRFZwC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_gRK5UC6KEeSaMrdXMag_Yg" base_Comment="_gRJEIC6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_gRNVkC6KEeSaMrdXMag_Yg" base_Package="_gRLgYC6KEeSaMrdXMag_Yg"/>
+ <Document:ImageRef xmi:id="_ggGtMC6KEeSaMrdXMag_Yg" base_Comment="_ggEQ8C6KEeSaMrdXMag_Yg" ref="C:/git/darwin/com.cea.darwin.reqif/doc/imgDOC/UseCases_Diagram.png"/>
+ <Document:Section xmi:id="_ggJJcC6KEeSaMrdXMag_Yg" base_Package="_ggHUQC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_ggMMwC6KEeSaMrdXMag_Yg" base_Comment="_ggJwgC6KEeSaMrdXMag_Yg"/>
+ <Document:ImageRef xmi:id="_gxTK4C6KEeSaMrdXMag_Yg" base_Comment="_gxRVsC6KEeSaMrdXMag_Yg" ref="C:/git/darwin/com.cea.darwin.reqif/doc/imgDOC/Import_Activity.png"/>
+ <Document:Content xmi:id="_gxVnIC6KEeSaMrdXMag_Yg" base_Comment="_gxUZAC6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_gxYDYC6KEeSaMrdXMag_Yg" base_Package="_gxWOMC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_gxafoC6KEeSaMrdXMag_Yg" base_Comment="_gxYqcC6KEeSaMrdXMag_Yg"/>
+ <Document:ImageRef xmi:id="_gxc74C6KEeSaMrdXMag_Yg" base_Comment="_gxbGsC6KEeSaMrdXMag_Yg" ref="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_1.png"/>
+ <Document:Content xmi:id="_gxfYIC6KEeSaMrdXMag_Yg" base_Comment="_gxdi8C6KEeSaMrdXMag_Yg"/>
+ <Document:ImageRef xmi:id="_gxh0YC6KEeSaMrdXMag_Yg" base_Comment="_gxf_MC6KEeSaMrdXMag_Yg" ref="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_2.png"/>
+ <Document:Content xmi:id="_gxkQoC6KEeSaMrdXMag_Yg" base_Comment="_gxibcC6KEeSaMrdXMag_Yg"/>
+ <Document:ImageRef xmi:id="_gxmF0C6KEeSaMrdXMag_Yg" base_Comment="_gxk3sC6KEeSaMrdXMag_Yg" ref="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_3.png"/>
+ <Document:Content xmi:id="_gxoiEC6KEeSaMrdXMag_Yg" base_Comment="_gxms4C6KEeSaMrdXMag_Yg"/>
+ <Document:ImageRef xmi:id="_gxq-UC6KEeSaMrdXMag_Yg" base_Comment="_gxpJIC6KEeSaMrdXMag_Yg" ref="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_4.png"/>
+ <Document:Content xmi:id="_gxtakC6KEeSaMrdXMag_Yg" base_Comment="_gxrlYC6KEeSaMrdXMag_Yg"/>
+ <Document:ImageRef xmi:id="_gxwd4C6KEeSaMrdXMag_Yg" base_Comment="_gxuBoC6KEeSaMrdXMag_Yg" ref="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_5.png"/>
+ <Document:Content xmi:id="_gx0IQC6KEeSaMrdXMag_Yg" base_Comment="_gxy6IC6KEeSaMrdXMag_Yg"/>
+ <Document:ImageRef xmi:id="_gx3LkC6KEeSaMrdXMag_Yg" base_Comment="_gx0vUC6KEeSaMrdXMag_Yg" ref="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_6.png"/>
+ <Document:Content xmi:id="_gx5AwC6KEeSaMrdXMag_Yg" base_Comment="_gx3LkS6KEeSaMrdXMag_Yg"/>
+ <Document:ImageRef xmi:id="_gx7dAC6KEeSaMrdXMag_Yg" base_Comment="_gx5n0C6KEeSaMrdXMag_Yg" ref="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import7.png"/>
+ <Document:Section xmi:id="_gx95QC6KEeSaMrdXMag_Yg" base_Package="_gx8EEC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_gx_ucC6KEeSaMrdXMag_Yg" base_Comment="_gx-gUC6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_gyCKsC6KEeSaMrdXMag_Yg" base_Package="_gyAVgC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_gyEm8C6KEeSaMrdXMag_Yg" base_Comment="_gyCxwC6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_gyGcIC6KEeSaMrdXMag_Yg" base_Package="_gyEm8S6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_gyI4YC6KEeSaMrdXMag_Yg" base_Comment="_gyHDMC6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_gyLUoC6KEeSaMrdXMag_Yg" base_Package="_gyI4YS6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_gyNJ0C6KEeSaMrdXMag_Yg" base_Comment="_gyLUoS6KEeSaMrdXMag_Yg"/>
+ <Document:ImageRef xmi:id="_gzmQ8C6KEeSaMrdXMag_Yg" base_Comment="_gzkbwC6KEeSaMrdXMag_Yg" ref="C:/git/darwin/com.cea.darwin.reqif/doc/imgDOC/Export_Activity.png"/>
+ <Document:Section xmi:id="_gzotMC6KEeSaMrdXMag_Yg" base_Package="_gzm4AC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_gzqiYC6KEeSaMrdXMag_Yg" base_Comment="_gzpUQC6KEeSaMrdXMag_Yg"/>
+ <Document:ImageRef xmi:id="_gzs-oC6KEeSaMrdXMag_Yg" base_Comment="_gzrJcC6KEeSaMrdXMag_Yg" ref="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\export1.png"/>
+ <Document:Content xmi:id="_gzva4C6KEeSaMrdXMag_Yg" base_Comment="_gztlsC6KEeSaMrdXMag_Yg"/>
+ <Document:ImageRef xmi:id="_gzxQEC6KEeSaMrdXMag_Yg" base_Comment="_gzwB8C6KEeSaMrdXMag_Yg" ref="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_2.png"/>
+ <Document:Content xmi:id="_gzzsUC6KEeSaMrdXMag_Yg" base_Comment="_gzx3IC6KEeSaMrdXMag_Yg"/>
+ <Document:ImageRef xmi:id="_gz1hgC6KEeSaMrdXMag_Yg" base_Comment="_gzzsUS6KEeSaMrdXMag_Yg" ref="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\import_3.png"/>
+ <Document:Content xmi:id="_gz3WsC6KEeSaMrdXMag_Yg" base_Comment="_gz2IkC6KEeSaMrdXMag_Yg"/>
+ <Document:ImageRef xmi:id="_gz5y8C6KEeSaMrdXMag_Yg" base_Comment="_gz39wC6KEeSaMrdXMag_Yg" ref="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\export5.png"/>
+ <Document:Content xmi:id="_gz7oIC6KEeSaMrdXMag_Yg" base_Comment="_gz6aAC6KEeSaMrdXMag_Yg"/>
+ <Document:ImageRef xmi:id="_gz-EYC6KEeSaMrdXMag_Yg" base_Comment="_gz8PMC6KEeSaMrdXMag_Yg" ref="C:\git\darwin\com.cea.darwin.reqif\doc\imgDOC\Export4.png"/>
+ <Document:Section xmi:id="_g0AgoC6KEeSaMrdXMag_Yg" base_Package="_gz-rcC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_g0CV0C6KEeSaMrdXMag_Yg" base_Comment="_g0AgoS6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_g0ELAC6KEeSaMrdXMag_Yg" base_Package="_g0C84C6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_g0GnQC6KEeSaMrdXMag_Yg" base_Comment="_g0EyEC6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_g0IccC6KEeSaMrdXMag_Yg" base_Package="_g0HOUC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_g0K4sC6KEeSaMrdXMag_Yg" base_Comment="_g0JDgC6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_g0Mt4C6KEeSaMrdXMag_Yg" base_Package="_g0K4sS6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_g0OjEC6KEeSaMrdXMag_Yg" base_Comment="_g0NU8C6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_g0Q_UC6KEeSaMrdXMag_Yg" base_Package="_g0PKIC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_g0TbkC6KEeSaMrdXMag_Yg" base_Comment="_g0RmYC6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_g0VQwC6KEeSaMrdXMag_Yg" base_Package="_g0TbkS6KEeSaMrdXMag_Yg"/>
+ <Document:ImageRef xmi:id="_hXPwkC6KEeSaMrdXMag_Yg" base_Comment="_hXNUUC6KEeSaMrdXMag_Yg" ref="C:/git/darwin/com.cea.darwin.reqif/doc/imgDOC/Architecture_of_ReqIF_Import-Export.png"/>
+ <Document:Content xmi:id="_hXRlwC6KEeSaMrdXMag_Yg" base_Comment="_hXQXoC6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_hXUCAC6KEeSaMrdXMag_Yg" base_Package="_hXSM0C6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_hXV3MC6KEeSaMrdXMag_Yg" base_Package="_hXUpEC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_hXYTcC6KEeSaMrdXMag_Yg" base_Comment="_hXWeQC6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_hXaIoC6KEeSaMrdXMag_Yg" base_Package="_hXY6gC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_hXb90C6KEeSaMrdXMag_Yg" base_Comment="_hXavsC6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_hXeaEC6KEeSaMrdXMag_Yg" base_Package="_hXck4C6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_hXgPQC6KEeSaMrdXMag_Yg" base_Comment="_hXeaES6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_hXiEcC6KEeSaMrdXMag_Yg" base_Package="_hXg2UC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_hXkgsC6KEeSaMrdXMag_Yg" base_Comment="_hXirgC6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_hXmV4C6KEeSaMrdXMag_Yg" base_Package="_hXlHwC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_hXoLEC6KEeSaMrdXMag_Yg" base_Comment="_hXm88C6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_hXqnUC6KEeSaMrdXMag_Yg" base_Package="_hXoyIC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_hXscgC6KEeSaMrdXMag_Yg" base_Comment="_hXrOYC6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_hXu4wC6KEeSaMrdXMag_Yg" base_Package="_hXtqoC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_hXwt8C6KEeSaMrdXMag_Yg" base_Comment="_hXvf0C6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_hXzKMC6KEeSaMrdXMag_Yg" base_Package="_hXxVAC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_hX0_YC6KEeSaMrdXMag_Yg" base_Comment="_hXzKMS6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_hX3boC6KEeSaMrdXMag_Yg" base_Package="_hX1mcC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_hX5Q0C6KEeSaMrdXMag_Yg" base_Comment="_hX3boS6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_hX7GAC6KEeSaMrdXMag_Yg" base_Package="_hX534C6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_hX9iQC6KEeSaMrdXMag_Yg" base_Package="_hX7tEC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_hX_XcC6KEeSaMrdXMag_Yg" base_Comment="_hX9iQS6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_hYBzsC6KEeSaMrdXMag_Yg" base_Package="_hX_-gC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_hYDo4C6KEeSaMrdXMag_Yg" base_Comment="_hYBzsS6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_hYGFIC6KEeSaMrdXMag_Yg" base_Package="_hYEP8C6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_hYH6UC6KEeSaMrdXMag_Yg" base_Comment="_hYGsMC6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_hYKWkC6KEeSaMrdXMag_Yg" base_Package="_hYJIcC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_hYMLwC6KEeSaMrdXMag_Yg" base_Comment="_hYK9oC6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_hYOA8C6KEeSaMrdXMag_Yg" base_Package="_hYMy0C6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_hYP2IC6KEeSaMrdXMag_Yg" base_Comment="_hYOA8S6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_hYRrUC6KEeSaMrdXMag_Yg" base_Package="_hYQdMC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_hYTggC6KEeSaMrdXMag_Yg" base_Comment="_hYRrUS6KEeSaMrdXMag_Yg"/>
+ <Document:Section xmi:id="_hYVVsC6KEeSaMrdXMag_Yg" base_Package="_hYUHkC6KEeSaMrdXMag_Yg"/>
+ <Document:Content xmi:id="_hYXK4C6KEeSaMrdXMag_Yg" base_Comment="_hYVVsS6KEeSaMrdXMag_Yg"/>
+</xmi:XMI>
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/img/Darwin_logo_16x16.bmp b/extraplugins/req/org.eclipse.papyrus.req.reqif/img/Darwin_logo_16x16.bmp
new file mode 100644
index 00000000000..890248a8e55
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/img/Darwin_logo_16x16.bmp
Binary files differ
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/plugin.pdoc b/extraplugins/req/org.eclipse.papyrus.req.reqif/plugin.pdoc
new file mode 100644
index 00000000000..223a56d3522
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/plugin.pdoc
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<doc:Documentation xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:doc="http://www.eclipse.org/papyrus/documentation/plugin/documentation" description="This plugin is used to make import export of ReqIF files.">
+ <referent firstName="Patrick" lastName="Tessier" eMail="patrick.tessier@cea.fr" currentCompany="CEA LIST"/>
+</doc:Documentation>
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/plugin.properties b/extraplugins/req/org.eclipse.papyrus.req.reqif/plugin.properties
new file mode 100644
index 00000000000..ea3ab1dc62c
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/plugin.properties
@@ -0,0 +1,12 @@
+#################################################################################
+# Copyright (c) 2008 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
+##################################################################################
+pluginName=PapyrusReq.ReqIF
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/plugin.xml b/extraplugins/req/org.eclipse.papyrus.req.reqif/plugin.xml
new file mode 100644
index 00000000000..8c3df550241
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/plugin.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+<extension
+ point="org.eclipse.ui.importWizards">
+ <category
+ id="org.eclipse.papyrus.editor.category"
+ name="Papyrus">
+ </category>
+ <wizard
+ category="org.eclipse.papyrus.editor.category"
+ class="org.eclipse.papyrus.req.reqif.integration.assistant.ReqIFImportWizard"
+ icon="img/Darwin_logo_16x16.bmp"
+ id="com.cea.darwin.reqif.importWizard"
+ name="Import ReqIF">
+ </wizard>
+</extension>
+<extension
+ point="org.eclipse.ui.exportWizards">
+ <category
+ id="org.eclipse.papyrus.editor.category"
+ name="Papyrus">
+ </category>
+ <wizard
+ category="org.eclipse.papyrus.editor.category"
+ class="org.eclipse.papyrus.req.reqif.integration.assistant.ReqIFExportWizard"
+ icon="img/Darwin_logo_16x16.bmp"
+ id="com.cea.darwin.reqif.exportWizard"
+ name="Export ReqIF">
+ </wizard>
+</extension>
+</plugin>
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/pom.xml b/extraplugins/req/org.eclipse.papyrus.req.reqif/pom.xml
new file mode 100644
index 00000000000..05939561cdc
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/pom.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.req.reqif</artifactId>
+ <groupId>org.eclipse.req.reqif</groupId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <artifactId>org.eclipse.req.reqif</artifactId>
+ <groupId>org.eclipse.req.reqif</groupId>
+ <version>1.0.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+</project> \ No newline at end of file
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/Activator.java b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/Activator.java
new file mode 100644
index 00000000000..153ad6ad6f5
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/Activator.java
@@ -0,0 +1,63 @@
+/*****************************************************************************
+ * 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;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ /** The plug-in ID**/
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.req.reqif"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/I_SysMLStereotype.java b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/I_SysMLStereotype.java
new file mode 100644
index 00000000000..f00b8ba7cdb
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/I_SysMLStereotype.java
@@ -0,0 +1,249 @@
+/*****************************************************************************
+ * 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;
+
+/**
+ * list of constant for SysML
+ *
+ */
+public interface I_SysMLStereotype {
+ /** Qualified name of the stereotype Conform */
+ public static final String CONFORM_STEREOTYPE = "SysML::ModelElements::Conform";
+ /** name of property base_Dependency of the stereotype Conform */
+ public static final String CONFORM_BASE_DEPENDENCY_ATT = "base_Dependency";
+ /** Qualified name of the stereotype View */
+ public static final String VIEW_STEREOTYPE = "SysML::ModelElements::View";
+ /** name of property viewPoint of the stereotype View */
+ public static final String VIEW_VIEWPOINT_ATT = "viewPoint";
+ /** name of property base_Package of the stereotype View */
+ public static final String VIEW_BASE_PACKAGE_ATT = "base_Package";
+ /** Qualified name of the stereotype ViewPoint */
+ public static final String VIEWPOINT_STEREOTYPE = "SysML::ModelElements::ViewPoint";
+ /** name of property base_Class of the stereotype ViewPoint */
+ public static final String VIEWPOINT_BASE_CLASS_ATT = "base_Class";
+ /** name of property stakeHolders of the stereotype ViewPoint */
+ public static final String VIEWPOINT_STAKEHOLDERS_ATT = "stakeHolders";
+ /** name of property purpose of the stereotype ViewPoint */
+ public static final String VIEWPOINT_PURPOSE_ATT = "purpose";
+ /** name of property concerns of the stereotype ViewPoint */
+ public static final String VIEWPOINT_CONCERNS_ATT = "concerns";
+ /** name of property languages of the stereotype ViewPoint */
+ public static final String VIEWPOINT_LANGUAGES_ATT = "languages";
+ /** name of property methods of the stereotype ViewPoint */
+ public static final String VIEWPOINT_METHODS_ATT = "methods";
+ /** Qualified name of the stereotype Rationale */
+ public static final String RATIONALE_STEREOTYPE = "SysML::ModelElements::Rationale";
+ /** name of property base_Comment of the stereotype Rationale */
+ public static final String RATIONALE_BASE_COMMENT_ATT = "base_Comment";
+ /** Qualified name of the stereotype Problem */
+ public static final String PROBLEM_STEREOTYPE = "SysML::ModelElements::Problem";
+ /** name of property base_Comment of the stereotype Problem */
+ public static final String PROBLEM_BASE_COMMENT_ATT = "base_Comment";
+ /** Qualified name of the stereotype Block */
+ public static final String BLOCK_STEREOTYPE = "SysML::Blocks::Block";
+ /** name of property isEncapsulated of the stereotype Block */
+ public static final String BLOCK_ISENCAPSULATED_ATT = "isEncapsulated";
+ /** name of property base_Class of the stereotype Block */
+ public static final String BLOCK_BASE_CLASS_ATT = "base_Class";
+ /** Qualified name of the stereotype DistributedProperty */
+ public static final String DISTRIBUTEDPROPERTY_STEREOTYPE = "SysML::Blocks::DistributedProperty";
+ /** name of property base_Property of the stereotype DistributedProperty */
+ public static final String DISTRIBUTEDPROPERTY_BASE_PROPERTY_ATT = "base_Property";
+ /** Qualified name of the stereotype Dimension */
+ public static final String DIMENSION_STEREOTYPE = "SysML::Blocks::Dimension";
+ /** name of property base_InstanceSpecification of the stereotype Dimension */
+ public static final String DIMENSION_BASE_INSTANCESPECIFICATION_ATT = "base_InstanceSpecification";
+ /** Qualified name of the stereotype Unit */
+ public static final String UNIT_STEREOTYPE = "SysML::Blocks::Unit";
+ /** name of property base_InstanceSpecification of the stereotype Unit */
+ public static final String UNIT_BASE_INSTANCESPECIFICATION_ATT = "base_InstanceSpecification";
+ /** name of property dimension of the stereotype Unit */
+ public static final String UNIT_DIMENSION_ATT = "dimension";
+ /** Qualified name of the stereotype ValueType */
+ public static final String VALUETYPE_STEREOTYPE = "SysML::Blocks::ValueType";
+ /** name of property base_DataType of the stereotype ValueType */
+ public static final String VALUETYPE_BASE_DATATYPE_ATT = "base_DataType";
+ /** name of property unit of the stereotype ValueType */
+ public static final String VALUETYPE_UNIT_ATT = "unit";
+ /** name of property dimension of the stereotype ValueType */
+ public static final String VALUETYPE_DIMENSION_ATT = "dimension";
+ /** Qualified name of the stereotype NestedConnectorEnd */
+ public static final String NESTEDCONNECTOREND_STEREOTYPE = "SysML::Blocks::NestedConnectorEnd";
+ /** name of property propertyPath of the stereotype NestedConnectorEnd */
+ public static final String NESTEDCONNECTOREND_PROPERTYPATH_ATT = "propertyPath";
+ /** name of property base_ConnectorEnd of the stereotype NestedConnectorEnd */
+ public static final String NESTEDCONNECTOREND_BASE_CONNECTOREND_ATT = "base_ConnectorEnd";
+ /** Qualified name of the stereotype ParticipantProperty */
+ public static final String PARTICIPANTPROPERTY_STEREOTYPE = "SysML::Blocks::ParticipantProperty";
+ /** name of property base_Property of the stereotype ParticipantProperty */
+ public static final String PARTICIPANTPROPERTY_BASE_PROPERTY_ATT = "base_Property";
+ /** name of property end of the stereotype ParticipantProperty */
+ public static final String PARTICIPANTPROPERTY_END_ATT = "end";
+ /** Qualified name of the stereotype ConnectorProperty */
+ public static final String CONNECTORPROPERTY_STEREOTYPE = "SysML::Blocks::ConnectorProperty";
+ /** name of property base_Property of the stereotype ConnectorProperty */
+ public static final String CONNECTORPROPERTY_BASE_PROPERTY_ATT = "base_Property";
+ /** name of property connector of the stereotype ConnectorProperty */
+ public static final String CONNECTORPROPERTY_CONNECTOR_ATT = "connector";
+ /** Qualified name of the stereotype BindingConnector */
+ public static final String BINDINGCONNECTOR_STEREOTYPE = "SysML::Blocks::BindingConnector";
+ /** name of property base_Connector of the stereotype BindingConnector */
+ public static final String BINDINGCONNECTOR_BASE_CONNECTOR_ATT = "base_Connector";
+ /** Qualified name of the stereotype PropertySpecificType */
+ public static final String PROPERTYSPECIFICTYPE_STEREOTYPE = "SysML::Blocks::PropertySpecificType";
+ /** name of property base_Classifier of the stereotype PropertySpecificType */
+ public static final String PROPERTYSPECIFICTYPE_BASE_CLASSIFIER_ATT = "base_Classifier";
+ /** Qualified name of the stereotype FlowPort */
+ public static final String FLOWPORT_STEREOTYPE = "SysML::PortAndFlows::FlowPort";
+ /** name of property base_Port of the stereotype FlowPort */
+ public static final String FLOWPORT_BASE_PORT_ATT = "base_Port";
+ /** name of property isAtomic of the stereotype FlowPort */
+ public static final String FLOWPORT_ISATOMIC_ATT = "isAtomic";
+ /** name of property isConjugated of the stereotype FlowPort */
+ public static final String FLOWPORT_ISCONJUGATED_ATT = "isConjugated";
+ /** name of property direction of the stereotype FlowPort */
+ public static final String FLOWPORT_DIRECTION_ATT = "direction";
+ /** Qualified name of the stereotype FlowProperty */
+ public static final String FLOWPROPERTY_STEREOTYPE = "SysML::PortAndFlows::FlowProperty";
+ /** name of property base_Property of the stereotype FlowProperty */
+ public static final String FLOWPROPERTY_BASE_PROPERTY_ATT = "base_Property";
+ /** name of property direction of the stereotype FlowProperty */
+ public static final String FLOWPROPERTY_DIRECTION_ATT = "direction";
+ /** Qualified name of the stereotype FlowSpecification */
+ public static final String FLOWSPECIFICATION_STEREOTYPE = "SysML::PortAndFlows::FlowSpecification";
+ /** name of property base_Interface of the stereotype FlowSpecification */
+ public static final String FLOWSPECIFICATION_BASE_INTERFACE_ATT = "base_Interface";
+ /** name of literal in of the Enumeration FlowDirection */
+ public static final String FLOWDIRECTION_IN_ENUM = "in";
+ /** name of literal out of the Enumeration FlowDirection */
+ public static final String FLOWDIRECTION_OUT_ENUM = "out";
+ /** name of literal inout of the Enumeration FlowDirection */
+ public static final String FLOWDIRECTION_INOUT_ENUM = "inout";
+ /** Qualified name of the stereotype ItemFlow */
+ public static final String ITEMFLOW_STEREOTYPE = "SysML::PortAndFlows::ItemFlow";
+ /** name of property base_InformationFlow of the stereotype ItemFlow */
+ public static final String ITEMFLOW_BASE_INFORMATIONFLOW_ATT = "base_InformationFlow";
+ /** name of property itemProperty of the stereotype ItemFlow */
+ public static final String ITEMFLOW_ITEMPROPERTY_ATT = "itemProperty";
+ /** Qualified name of the stereotype ConstraintBlock */
+ public static final String CONSTRAINTBLOCK_STEREOTYPE = "SysML::Constraints::ConstraintBlock";
+ /** Qualified name of the stereotype ConstraintProperty */
+ public static final String CONSTRAINTPROPERTY_STEREOTYPE = "SysML::Constraints::ConstraintProperty";
+ /** name of property base_Property of the stereotype ConstraintProperty */
+ public static final String CONSTRAINTPROPERTY_BASE_PROPERTY_ATT = "base_Property";
+ /** Qualified name of the stereotype Optional */
+ public static final String OPTIONAL_STEREOTYPE = "SysML::Activities::Optional";
+ /** name of property base_Parameter of the stereotype Optional */
+ public static final String OPTIONAL_BASE_PARAMETER_ATT = "base_Parameter";
+ /** Qualified name of the stereotype Rate */
+ public static final String RATE_STEREOTYPE = "SysML::Activities::Rate";
+ /** name of property base_Parameter of the stereotype Rate */
+ public static final String RATE_BASE_PARAMETER_ATT = "base_Parameter";
+ /** name of property base_ActivityEdge of the stereotype Rate */
+ public static final String RATE_BASE_ACTIVITYEDGE_ATT = "base_ActivityEdge";
+ /** name of property rate of the stereotype Rate */
+ public static final String RATE_RATE_ATT = "rate";
+ /** Qualified name of the stereotype Probability */
+ public static final String PROBABILITY_STEREOTYPE = "SysML::Activities::Probability";
+ /** name of property base_ActivityEdge of the stereotype Probability */
+ public static final String PROBABILITY_BASE_ACTIVITYEDGE_ATT = "base_ActivityEdge";
+ /** name of property base_ParameterSet of the stereotype Probability */
+ public static final String PROBABILITY_BASE_PARAMETERSET_ATT = "base_ParameterSet";
+ /** name of property probability of the stereotype Probability */
+ public static final String PROBABILITY_PROBABILITY_ATT = "probability";
+ /** Qualified name of the stereotype Continuous */
+ public static final String CONTINUOUS_STEREOTYPE = "SysML::Activities::Continuous";
+ /** Qualified name of the stereotype Discrete */
+ public static final String DISCRETE_STEREOTYPE = "SysML::Activities::Discrete";
+ /** Qualified name of the stereotype ControlOperator */
+ public static final String CONTROLOPERATOR_STEREOTYPE = "SysML::Activities::ControlOperator";
+ /** name of property base_Operation of the stereotype ControlOperator */
+ public static final String CONTROLOPERATOR_BASE_OPERATION_ATT = "base_Operation";
+ /** name of property base_Behavior of the stereotype ControlOperator */
+ public static final String CONTROLOPERATOR_BASE_BEHAVIOR_ATT = "base_Behavior";
+ /** Qualified name of the stereotype NoBuffer */
+ public static final String NOBUFFER_STEREOTYPE = "SysML::Activities::NoBuffer";
+ /** name of property base_ObjectNode of the stereotype NoBuffer */
+ public static final String NOBUFFER_BASE_OBJECTNODE_ATT = "base_ObjectNode";
+ /** Qualified name of the stereotype Overwrite */
+ public static final String OVERWRITE_STEREOTYPE = "SysML::Activities::Overwrite";
+ /** name of property base_ObjectNode of the stereotype Overwrite */
+ public static final String OVERWRITE_BASE_OBJECTNODE_ATT = "base_ObjectNode";
+ /** Qualified name of the stereotype Allocate */
+ public static final String ALLOCATE_STEREOTYPE = "SysML::Allocations::Allocate";
+ /** name of property base_Abstraction of the stereotype Allocate */
+ public static final String ALLOCATE_BASE_ABSTRACTION_ATT = "base_Abstraction";
+ /** Qualified name of the stereotype Allocated */
+ public static final String ALLOCATED_STEREOTYPE = "SysML::Allocations::Allocated";
+ /** name of property base_NamedElement of the stereotype Allocated */
+ public static final String ALLOCATED_BASE_NAMEDELEMENT_ATT = "base_NamedElement";
+ /** name of property allocatedFrom of the stereotype Allocated */
+ public static final String ALLOCATED_ALLOCATEDFROM_ATT = "allocatedFrom";
+ /** name of property allocatedTo of the stereotype Allocated */
+ public static final String ALLOCATED_ALLOCATEDTO_ATT = "allocatedTo";
+ /** Qualified name of the stereotype AllocateActivityPartition */
+ public static final String ALLOCATEACTIVITYPARTITION_STEREOTYPE = "SysML::Allocations::AllocateActivityPartition";
+ /** name of property base_ActivityPartition of the stereotype AllocateActivityPartition */
+ public static final String ALLOCATEACTIVITYPARTITION_BASE_ACTIVITYPARTITION_ATT = "base_ActivityPartition";
+ /** Qualified name of the stereotype DeriveReqt */
+ public static final String DERIVEREQT_STEREOTYPE = "SysML::Requirements::DeriveReqt";
+ /** Qualified name of the stereotype Verify */
+ public static final String VERIFY_STEREOTYPE = "SysML::Requirements::Verify";
+ /** Qualified name of the stereotype Copy */
+ public static final String COPY_STEREOTYPE = "SysML::Requirements::Copy";
+ /** Qualified name of the stereotype Satisfy */
+ public static final String SATISFY_STEREOTYPE = "SysML::Requirements::Satisfy";
+ /** Qualified name of the stereotype TestCase */
+ public static final String TESTCASE_STEREOTYPE = "SysML::Requirements::TestCase";
+ /** name of property base_Behavior of the stereotype TestCase */
+ public static final String TESTCASE_BASE_BEHAVIOR_ATT = "base_Behavior";
+ /** name of property base_Operation of the stereotype TestCase */
+ public static final String TESTCASE_BASE_OPERATION_ATT = "base_Operation";
+ /** name of property verifies of the stereotype TestCase */
+ public static final String TESTCASE_VERIFIES_ATT = "verifies";
+ /** Qualified name of the stereotype Requirement */
+ public static final String REQUIREMENT_STEREOTYPE = "SysML::Requirements::Requirement";
+ /** name of property text of the stereotype Requirement */
+ public static final String REQUIREMENT_TEXT_ATT = "text";
+ /** name of property id of the stereotype Requirement */
+ public static final String REQUIREMENT_ID_ATT = "id";
+ /** name of property derived of the stereotype Requirement */
+ public static final String REQUIREMENT_DERIVED_ATT = "derived";
+ /** name of property derivedFrom of the stereotype Requirement */
+ public static final String REQUIREMENT_DERIVEDFROM_ATT = "derivedFrom";
+ /** name of property satisfiedBy of the stereotype Requirement */
+ public static final String REQUIREMENT_SATISFIEDBY_ATT = "satisfiedBy";
+ /** name of property refinedBy of the stereotype Requirement */
+ public static final String REQUIREMENT_REFINEDBY_ATT = "refinedBy";
+ /** name of property tracedTo of the stereotype Requirement */
+ public static final String REQUIREMENT_TRACEDTO_ATT = "tracedTo";
+ /** name of property verifiedBy of the stereotype Requirement */
+ public static final String REQUIREMENT_VERIFIEDBY_ATT = "verifiedBy";
+ /** name of property master of the stereotype Requirement */
+ public static final String REQUIREMENT_MASTER_ATT = "master";
+ /** name of property base_Class of the stereotype Requirement */
+ public static final String REQUIREMENT_BASE_CLASS_ATT = "base_Class";
+ /** Qualified name of the stereotype RequirementRelated */
+ public static final String REQUIREMENTRELATED_STEREOTYPE = "SysML::Requirements::RequirementRelated";
+ /** name of property base_NamedElement of the stereotype RequirementRelated */
+ public static final String REQUIREMENTRELATED_BASE_NAMEDELEMENT_ATT = "base_NamedElement";
+ /** name of property tracedFrom of the stereotype RequirementRelated */
+ public static final String REQUIREMENTRELATED_TRACEDFROM_ATT = "tracedFrom";
+ /** name of property satisfies of the stereotype RequirementRelated */
+ public static final String REQUIREMENTRELATED_SATISFIES_ATT = "satisfies";
+ /** name of property refines of the stereotype RequirementRelated */
+ public static final String REQUIREMENTRELATED_REFINES_ATT = "refines";
+ /** name of property verifies of the stereotype RequirementRelated */
+ public static final String REQUIREMENTRELATED_VERIFIES_ATT = "verifies";
+ }
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/assistant/CreateOrSelectProfilDialog.java b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/assistant/CreateOrSelectProfilDialog.java
new file mode 100644
index 00000000000..dc4f0e2a8b2
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/assistant/CreateOrSelectProfilDialog.java
@@ -0,0 +1,291 @@
+/*****************************************************************************
+ * 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.assistant;
+
+import java.util.ArrayList;
+
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+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;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.Section;
+import org.eclipse.uml2.uml.Profile;
+
+/** this dialog is used to select or create a profile**/
+public class CreateOrSelectProfilDialog extends FormDialog {
+
+
+ /**
+ * list of apllied local profile
+ */
+ protected ArrayList<Profile> appliedLocalProfiles;
+
+ protected Button creationRadio;
+ protected Text newTypeNameText;
+ protected Label newProfileLabel;
+ protected Button selectionRadio;
+ protected Label profileSelectionLabel;
+ protected Combo profileSelectionCombo;
+ protected Section lSection;
+ protected String resultProfileName;
+
+ /**
+ *
+ * Constructor.
+ *
+ * @param shell
+ * @param appliedLocalProfiles list of local profiles
+ */
+ public CreateOrSelectProfilDialog(Shell shell, ArrayList<Profile> appliedLocalProfiles) {
+ super(shell);
+ this.appliedLocalProfiles= appliedLocalProfiles;
+ }
+
+
+
+ protected void createFormContent(IManagedForm pForm) {
+ pForm.getForm().setText("Profile Selection");
+ ScrolledForm scrolledForm = pForm.getForm();
+ FormToolkit toolkit = pForm.getToolkit();
+ Composite parent = scrolledForm.getBody();
+ parent.setLayout(new GridLayout());
+
+ createFormCreationSection(scrolledForm.getBody(), toolkit);
+ createFormSelectionSection(scrolledForm.getBody(), toolkit);
+
+ refreshSectionsEnable(false);
+ makeSelectionVisible(appliedLocalProfiles.size()>0);
+ addListeners();
+
+ scrolledForm.reflow(true);
+ }
+
+ /**
+ *
+ * @param visible if true the panel about the selection is visible
+ */
+ protected void makeSelectionVisible( boolean visible){
+ selectionRadio.setVisible(visible);
+ profileSelectionLabel.setVisible(visible);
+ profileSelectionCombo.setVisible(visible);
+ profileSelectionCombo.setVisible(visible);
+ lSection.setText("No local profile found, ceation of a new profile is only possible");
+ }
+ /**
+ * make enable sections
+ * @param selectionEnable if the the selection section must be enable
+ */
+ protected void refreshSectionsEnable(boolean selectionEnable) {
+ creationRadio.setSelection(false);
+ selectionRadio.setSelection(false);
+ //creationSection
+ creationRadio.setSelection(!selectionEnable);
+ newTypeNameText.setEnabled(!selectionEnable);
+ newProfileLabel.setEnabled(!selectionEnable);
+ if(!selectionEnable){
+ newTypeNameText.setFocus();
+ }
+ //selectionSection
+ selectionRadio.setSelection(selectionEnable);
+ profileSelectionLabel.setEnabled(selectionEnable);
+ profileSelectionCombo.setEnabled(selectionEnable);
+ if(selectionEnable){
+ profileSelectionCombo.setFocus();
+ }
+ }
+
+ /**
+ * Add listeners to widgets
+ */
+ protected void addListeners() {
+ // listener to choose active section
+ SelectionListener selectCreateListener = new SelectionAdapter() {
+
+ /**
+ * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+ */
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ if(creationRadio.equals(e.getSource())||appliedLocalProfiles.size()==0) {
+ refreshSectionsEnable(false);
+ } else {
+ refreshSectionsEnable(true);
+ }
+ refreshOkButton();
+ }
+ };
+ selectionRadio.addSelectionListener(selectCreateListener);
+ creationRadio.addSelectionListener(selectCreateListener);
+ profileSelectionCombo.addSelectionListener(selectCreateListener);
+
+
+
+
+ // listener to new element name
+ ModifyListener lNewNameListener = new ModifyListener() {
+
+ /**
+ * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
+ */
+ public void modifyText(ModifyEvent e) {
+ refreshOkButton();
+ }
+ };
+ newTypeNameText.addModifyListener(lNewNameListener);
+ }
+
+ /** Refresh the OK button activation */
+ protected void refreshOkButton() {
+ boolean isSelectionSelected = selectionRadio.getSelection();
+ if(isSelectionSelected){
+ if(profileSelectionCombo.getSelectionIndex()==-1){
+ getButton(IDialogConstants.OK_ID).setEnabled(false);
+ }
+ else{
+ getButton(IDialogConstants.OK_ID).setEnabled(true);
+ }
+ }
+ else{
+ //creation
+ if (newTypeNameText.getText().trim().equals("")){
+ getButton(IDialogConstants.OK_ID).setEnabled(false);
+ }
+ else{
+ getButton(IDialogConstants.OK_ID).setEnabled(true);
+ }
+ }
+ }
+
+ /**
+ * Create the section to ask the user to create an invoked element.
+ *
+ * @param pParent
+ * the section's parent widget
+ * @param pToolkit
+ * the form toolkit
+ */
+ protected void createFormCreationSection(Composite pParent, FormToolkit pToolkit) {
+ // create the section
+ String lSectionTitle = "Create a new Profile";
+ Section lSection = pToolkit.createSection(pParent, Section.EXPANDED | Section.TITLE_BAR);
+ lSection.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ if(lSectionTitle != null) {
+ lSection.setText(lSectionTitle);
+ }
+
+ ScrolledForm lInsideScrolledForm = pToolkit.createScrolledForm(lSection);
+ lInsideScrolledForm.setExpandHorizontal(true);
+ lInsideScrolledForm.setExpandVertical(true);
+ Composite lBody = lInsideScrolledForm.getBody();
+
+ GridLayout lLayout = new GridLayout();
+ lLayout.numColumns = 3;
+ lBody.setLayout(lLayout);
+
+ creationRadio = pToolkit.createButton(lBody, "Profile creation", SWT.RADIO);
+ creationRadio.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 3, 1));
+
+ newProfileLabel = pToolkit.createLabel(lBody, "Set name of the new profile", SWT.NONE);
+ newTypeNameText = pToolkit.createText(lBody, "", SWT.BORDER);
+ newTypeNameText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
+ newTypeNameText.setFocus();
+
+
+
+ lInsideScrolledForm.reflow(true);
+ lSection.setClient(lInsideScrolledForm);
+ }
+
+ /**
+ * Create the section to ask the user to choose an existing element.
+ *
+ * @param pParent
+ * the section's parent widget
+ * @param pToolkit
+ * the form toolkit
+ */
+ protected void createFormSelectionSection(Composite pParent, FormToolkit pToolkit) {
+ // create the section
+ String lSectionTitle = "Select an existing profile";
+ lSection = pToolkit.createSection(pParent, Section.EXPANDED | Section.TITLE_BAR);
+ lSection.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ if(lSectionTitle != null) {
+ lSection.setText(lSectionTitle);
+ }
+
+ ScrolledForm lInsideScrolledForm = pToolkit.createScrolledForm(lSection);
+ lInsideScrolledForm.setExpandHorizontal(true);
+ lInsideScrolledForm.setExpandVertical(true);
+ Composite lBody = lInsideScrolledForm.getBody();
+
+ GridLayout lLayout = new GridLayout();
+ lLayout.numColumns = 3;
+ lBody.setLayout(lLayout);
+
+ selectionRadio = pToolkit.createButton(lBody, "Selection profile mode", SWT.RADIO);
+ selectionRadio.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 3, 1));
+
+ profileSelectionLabel = pToolkit.createLabel(lBody, "Profile:", SWT.NONE);
+ profileSelectionCombo = new Combo (lBody, SWT.READ_ONLY);
+ for(Profile profile : appliedLocalProfiles) {
+ profileSelectionCombo.add(profile.getName());
+ }
+ pToolkit.adapt(profileSelectionCombo, true, true);
+
+
+ lInsideScrolledForm.reflow(true);
+ lSection.setClient(lInsideScrolledForm);
+ }
+
+ @Override
+ protected void okPressed() {
+ resultProfileName = null;
+ boolean isSelectionSelected = selectionRadio.getSelection();
+ if(isSelectionSelected){
+ if(profileSelectionCombo.getSelectionIndex()!=-1){
+ resultProfileName=profileSelectionCombo.getItem(profileSelectionCombo.getSelectionIndex());
+ }
+ }
+ else{
+ //creation
+ if (!(newTypeNameText.getText().trim().equals(""))){
+ resultProfileName=newTypeNameText.getText().trim();
+ }
+ }
+ super.okPressed();
+ }
+ /**
+ *
+ * @return the name of the profile that will be created
+ */
+ public String getProfileName(){
+ return resultProfileName;
+ }
+
+}
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/assistant/ReqIFNewFilePage.java b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/assistant/ReqIFNewFilePage.java
new file mode 100644
index 00000000000..e6de8391813
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/assistant/ReqIFNewFilePage.java
@@ -0,0 +1,102 @@
+/*****************************************************************************
+ * 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.assistant;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.wizards.datatransfer.FileSystemExportWizard;
+import org.eclipse.uml2.uml.Package;
+
+/**
+ * aGUI in order to select a set of bundle from a list
+ *
+ */
+public class ReqIFNewFilePage extends WizardPage {
+
+ private Composite comp;
+ protected Package UMLPackage;
+ protected Text textField=null;
+ protected IFile selectedReqIFFile=null;
+
+ /**
+ *
+ * @return the IFile that correspond the ReqIF file, may be null
+ */
+ public IFile getSelectedReqIFFile() {
+ return selectedReqIFFile;
+ }
+
+ /**
+ *
+ * Constructor.
+ *
+ * @param UMLPackage the selected UML Package
+ */
+ public ReqIFNewFilePage(Package UMLPackage) {
+ super("Select RqIF file");
+ setTitle("Select RqIF file");
+ setDescription("Select RqIF file.");
+ this.UMLPackage=UMLPackage;
+ }
+
+ public void createControl(Composite parent) {
+ comp = new Composite(parent, SWT.NULL);
+ FillLayout layout = new FillLayout();
+ layout.type = SWT.VERTICAL;
+ comp.setLayout(layout);
+ Composite buttons = new Composite(comp, SWT.NONE);
+
+ //label
+ Label fileText=new Label(buttons, SWT.NONE);
+ fileText.setText("ReqIF File:");
+ fileText.setBounds(0, 23, 60, 20);
+
+ //textField
+ textField =new Text(buttons, SWT.SINGLE | SWT.BORDER);
+ textField.setEditable(false);
+ textField.setBounds(70, 20, 300, 20);
+
+ //button
+ Button selectButton = new Button(buttons, SWT.PUSH);
+ selectButton.setBounds(70, 45, 150, 25);
+ selectButton.setText("Select ReqIF Model");
+ selectButton.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ FileSystemExportWizard wizard = new FileSystemExportWizard();
+ wizard.init(PlatformUI.getWorkbench(), new StructuredSelection());
+ WizardDialog dialog = new WizardDialog(new Shell(), wizard);
+ dialog.open();
+
+ }
+ });
+ comp.pack();
+ setControl(comp);
+ setPageComplete(false);
+ }
+
+}
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/assistant/ReqIFSelectionPage.java b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/assistant/ReqIFSelectionPage.java
new file mode 100644
index 00000000000..598a8094fe6
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/assistant/ReqIFSelectionPage.java
@@ -0,0 +1,136 @@
+/*****************************************************************************
+ * 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.assistant;
+
+import java.util.ArrayList;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
+import org.eclipse.ui.dialogs.PatternFilter;
+import org.eclipse.ui.model.BaseWorkbenchContentProvider;
+import org.eclipse.ui.model.WorkbenchLabelProvider;
+import org.eclipse.uml2.uml.Package;
+
+/**
+ * the wizard dependent to eclipse framework in order to select a ReqIF file
+ *
+ */
+public class ReqIFSelectionPage extends WizardPage {
+
+ private Composite comp;
+ protected Package UMLPackage;
+ protected Text textField=null;
+ protected IFile selectedReqIFFile=null;
+
+
+ /**
+ *
+ * @return the selected ReqFile, maybe null
+ */
+ public IFile getSelectedReqIFFile() {
+ return selectedReqIFFile;
+ }
+
+ /**
+ *
+ * Constructor.
+ *
+ * @param UMLPackage the selected UML package
+ */
+ public ReqIFSelectionPage(Package UMLPackage) {
+ super("Select RqIF file");
+ setTitle("Select RqIF file");
+ setDescription("Select RqIF file.");
+ this.UMLPackage=UMLPackage;
+ }
+
+ public void createControl(Composite parent) {
+ comp = new Composite(parent, SWT.NULL);
+ FillLayout layout = new FillLayout();
+ layout.type = SWT.VERTICAL;
+ comp.setLayout(layout);
+ Composite buttons = new Composite(comp, SWT.NONE);
+
+ //label
+ Label fileText=new Label(buttons, SWT.NONE);
+ fileText.setText("ReqIF File:");
+ fileText.setBounds(0, 23, 60, 20);
+
+ //textField
+ textField =new Text(buttons, SWT.SINGLE | SWT.BORDER);
+ textField.setEditable(false);
+ textField.setBounds(70, 20, 300, 20);
+
+ //button
+ Button selectButton = new Button(buttons, SWT.PUSH);
+ selectButton.setBounds(70, 45, 150, 25);
+ selectButton.setText("Select ReqIF Model");
+ selectButton.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+
+ ArrayList<EObject> selection= new ArrayList<EObject>();
+ selection.add(UMLPackage);
+
+ ElementTreeSelectionDialog dialog= new ElementTreeSelectionDialog(Display.getDefault().getActiveShell(), new WorkbenchLabelProvider(), new BaseWorkbenchContentProvider());
+ dialog.setInput(ResourcesPlugin.getWorkspace().getRoot());
+
+ PatternFilter reqIFPattern= new PatternFilter(){@Override
+ public boolean isElementVisible(Viewer viewer, Object element) {
+ if(viewer!=null){
+ return super.isElementVisible(viewer, element);
+ }
+ return true;
+ }};
+ reqIFPattern.setPattern("*.reqIf");
+ dialog.setAllowMultiple(false);
+ dialog.addFilter( reqIFPattern);
+ dialog.open();
+
+ if(dialog.getResult().length>0){
+ Object object=dialog.getResult()[0];
+ System.err.println(object);
+ if(object instanceof IFile){
+ textField.setText(((IFile)object).getFullPath().toOSString());
+ selectedReqIFFile=((IFile)object);
+ setPageComplete(true);
+ }
+ }
+
+ }
+ });
+
+
+ comp.pack();
+ setControl(comp);
+ setPageComplete(false);
+
+
+ }
+
+}
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/assistant/AbstractWizardForPapyrus.java b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/assistant/AbstractWizardForPapyrus.java
new file mode 100644
index 00000000000..a94a6785488
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/assistant/AbstractWizardForPapyrus.java
@@ -0,0 +1,135 @@
+/*****************************************************************************
+ * 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 java.util.ArrayList;
+import java.util.Iterator;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.papyrus.editor.PapyrusMultiDiagramEditor;
+import org.eclipse.papyrus.infra.core.resource.ModelSet;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
+import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
+import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForSelection;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.ISelectionService;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.uml2.uml.Element;
+/**
+ * Abstract wizard that contains method to get the selection, the model Set...
+ *
+ */
+public abstract class AbstractWizardForPapyrus extends Wizard {
+
+ protected TransactionalEditingDomain transactionalEditingDomain = null;
+ protected PapyrusMultiDiagramEditor papyrusEditor;
+ protected ModelSet modelSet;
+ protected ResourceSet resourceSet;
+
+ /**
+ *
+ * Constructor.
+ *
+ */
+ public AbstractWizardForPapyrus() {
+ super();
+ }
+
+ /**
+ * this method is used in order to initialize service registry domain and model set: indispensable element in order to execute command
+ * @param workbench the eclipse workbench
+ * @param selection the current Selection
+ */
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
+
+ //get the service registry of papyrus from the selection
+ ServicesRegistry registry=null;
+ try {
+ registry = ServiceUtilsForSelection.getInstance().getServiceRegistry(selection);
+ } catch (ServiceException e1) {
+ e1.printStackTrace();
+ }
+ try {
+ modelSet = registry.getService(ModelSet.class);
+ } catch (ServiceException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ *
+ * @return the service registry of Papyrus, maybe null
+ *
+ */
+ public ServicesRegistry getServiceRegistry() {
+
+ IEditorPart editor;
+ try {
+ editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
+ ServicesRegistry serviceRegistry = (ServicesRegistry)editor.getAdapter(ServicesRegistry.class);
+ if(serviceRegistry != null) {
+ return serviceRegistry;
+ }
+ } catch (NullPointerException e) {
+ // Can't get the active editor
+ System.err.println("Can't get the current Eclipse Active Editor. No ServiceRegistry found.");
+ }
+
+ // Not found
+ System.err.println("Can't get the ServiceRegistry from current Eclipse Active Editor");
+ return null;
+ }
+
+ /**
+ *
+ * @return the current modelSet of papyrus
+ * @throws ServiceException
+ */
+ protected ModelSet getModelSet() throws ServiceException {
+ return getServiceRegistry().getService(ModelSet.class);
+ }
+
+ /**
+ * getSelected element in the diagram or in the model explorer
+ * @return Element or null
+ */
+ protected ArrayList<Element> getSelectionSet() {
+ ArrayList<Element> selectedSet =new ArrayList<Element>();
+ ISelectionService selectionService = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService();
+ ISelection selection = selectionService.getSelection();
+
+
+ if(selection instanceof IStructuredSelection) {
+ @SuppressWarnings("rawtypes")
+ Iterator selectedobjectIteractor = ((IStructuredSelection)selection).iterator();
+ while (selectedobjectIteractor.hasNext()) {
+ Object currentSelection = selectedobjectIteractor.next();
+
+ EObject selectedEObject = EMFHelper.getEObject(currentSelection);
+ if (selectedEObject instanceof org.eclipse.uml2.uml.Package){
+ selectedSet.add((Element)selectedEObject);
+ }
+ }
+ }
+
+ return selectedSet;
+ }
+}
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/assistant/ChooseReqIFTypeDialog.java b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/assistant/ChooseReqIFTypeDialog.java
new file mode 100644
index 00000000000..d9fb2f60dea
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/assistant/ChooseReqIFTypeDialog.java
@@ -0,0 +1,62 @@
+/*****************************************************************************
+ * 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 java.util.Collection;
+
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.papyrus.uml.profile.ui.dialogs.ChooseSetAssistedDialog;
+import org.eclipse.rmf.reqif10.SpecType;
+import org.eclipse.rmf.reqif10.provider.ReqIF10ItemProviderAdapterFactory;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Shell;
+
+/**
+ * Dialog in order to select Type from a ReqIF File
+ *
+ */
+public class ChooseReqIFTypeDialog extends ChooseSetAssistedDialog {
+
+ /**
+ *
+ * Constructor.
+ *
+ * @param parentShell a shell in order to launch the dialog
+ * @param spectObjectTypes a list of SpecObjectTypes
+ */
+ public ChooseReqIFTypeDialog(Shell parentShell,Collection<SpecType> spectObjectTypes) {
+ super(parentShell, "ReqIF type available", "Selected ReqIF Types to import");
+ for(SpecType specObjectType : spectObjectTypes) {
+ possibleElementList.addElement(specObjectType);
+ }
+
+ ReqIF10ItemProviderAdapterFactory adapterFactory= new ReqIF10ItemProviderAdapterFactory();
+ final AdapterFactoryLabelProvider factoryLabelProvider=new AdapterFactoryLabelProvider(adapterFactory);
+ labelProvider= new LabelProvider(){
+ @Override
+ public Image getImage(Object element) {
+ return factoryLabelProvider.getImage(element);
+ }
+ @Override
+ public String getText(Object element) {
+ return factoryLabelProvider.getText(element);
+ }
+ };
+
+
+
+ }
+
+}
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/assistant/ReqIFExportWizard.java b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/assistant/ReqIFExportWizard.java
new file mode 100644
index 00000000000..b10c655e635
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/assistant/ReqIFExportWizard.java
@@ -0,0 +1,59 @@
+/*****************************************************************************
+ * 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.emf.transaction.RecordingCommand;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.papyrus.req.reqif.transformation.ReqIFExporter;
+import org.eclipse.ui.IExportWizard;
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+import org.eclipse.uml2.uml.Package;
+
+/**
+ * this is the wizard dependent of eclipse inorder to realize the export from UML to reqIF files
+ *
+ */
+public class ReqIFExportWizard extends AbstractWizardForPapyrus implements IExportWizard {
+
+ private WizardNewFileCreationPage reqifFileCreationPage;
+
+ @Override
+ public void addPages() {
+
+ reqifFileCreationPage = new WizardNewFileCreationPage("Create new ReqIF file", new StructuredSelection());
+ reqifFileCreationPage.setFileExtension("reqif");
+ reqifFileCreationPage.setTitle("Create new ReqIF file");
+ reqifFileCreationPage.setDescription(" Choose the ReqIF file path");
+ this.addPage(reqifFileCreationPage);
+ }
+
+ @Override
+ public boolean performFinish() {
+ // get the domain in order to launch the command
+ final TransactionalEditingDomain domain = modelSet.getTransactionalEditingDomain();
+ RecordingCommand cmd= new RecordingCommand(domain, "exportReqIF") {
+
+ @Override
+ protected void doExecute() {
+ ReqIFExporter reqIFExporter= new ReqIFExporter(domain, (Package)getSelectionSet().get(0));
+ reqIFExporter.exportReqIFModel(true, reqifFileCreationPage.getContainerFullPath()+"/"+reqifFileCreationPage.getFileName());
+ }
+ };
+ domain.getCommandStack().execute(cmd);
+
+ return true;
+ }
+}
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/assistant/ReqIFImportWizard.java b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/assistant/ReqIFImportWizard.java
new file mode 100644
index 00000000000..4bcb0cc860d
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/assistant/ReqIFImportWizard.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 ReqIFImportWizard extends AbstractWizardForPapyrus implements IImportWizard {
+
+ protected ReqIFSelectionPage reqifSelectionPage;
+ /**
+ *
+ * Constructor.
+ *
+ */
+ public ReqIFImportWizard() {
+ 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 launche 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, "importReqIF") {
+
+ @Override
+ protected void doExecute() {
+ ReqIFImporter sysMLReqIFTransfomation= new ReqIFImporterServiceEdit(domain, importedReqIFModel, (Package)getSelectionSet().get(0));
+ sysMLReqIFTransfomation.importReqIFModel(true);
+ }
+ };
+ domain.getCommandStack().execute(cmd);
+
+ }
+ }
+ return true;
+ }
+
+}
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/command/DefineProfileCommand.java b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/command/DefineProfileCommand.java
new file mode 100644
index 00000000000..a6848020f58
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/command/DefineProfileCommand.java
@@ -0,0 +1,260 @@
+/*****************************************************************************
+ * 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.command;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Diagnostician;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
+import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
+import org.eclipse.papyrus.uml.profile.Activator;
+import org.eclipse.papyrus.uml.tools.profile.definition.PapyrusDefinitionAnnotation;
+import org.eclipse.papyrus.uml.tools.profile.definition.ProfileRedefinition;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Profile;
+import org.eclipse.uml2.uml.util.UMLUtil;
+import org.eclipse.uml2.uml.util.UMLUtil.Profile2EPackageConverter;
+import org.eclipse.uml2.uml.util.UMLUtil.UML2EcoreConverter;
+
+
+/**
+ * This command is used to define a profile
+ *This class is a copy of papyrus because it is not accessible
+ *
+ */
+public class DefineProfileCommand extends AbstractTransactionalCommand {
+
+ /**
+ * the {@link PapyrusDefinitionAnnotation}
+ */
+ private PapyrusDefinitionAnnotation papyrusAnnotation;
+
+ /**
+ * the profile to define
+ */
+ private Profile rootProfile;
+
+ private boolean saveConstraint;
+
+ /**
+ *
+ * Constructor.
+ *
+ * @param domain
+ * @param papyrusAnnotation
+ * @param rootProfile
+ * @param viewer
+ * @param saveConstraint
+ */
+ public DefineProfileCommand(TransactionalEditingDomain domain, PapyrusDefinitionAnnotation papyrusAnnotation, Profile rootProfile, boolean saveConstraint) {
+ super(domain, "DefineProfileCommand", null); //$NON-NLS-1$
+ this.rootProfile = rootProfile;
+ this.papyrusAnnotation = papyrusAnnotation;
+ this.saveConstraint = saveConstraint;
+ }
+
+
+ /**
+ * Define this package if it is a profile and its sub-profiles
+ *
+ * @param thePackage
+ * the package to define (if it is a profile)
+ * @param saveConstraintInDef
+ * @return the list of Epackage that are definition of the profile
+ */
+ public static List<EPackage> defineProfiles(Package thePackage, boolean saveConstraintInDef) {
+ Map<String, String> options = new HashMap<String, String>();
+
+ options.put(Profile2EPackageConverter.OPTION__ECORE_TAGGED_VALUES, UMLUtil.OPTION__PROCESS);
+ options.put(Profile2EPackageConverter.OPTION__DERIVED_FEATURES, UMLUtil.OPTION__REPORT);
+ options.put(Profile2EPackageConverter.OPTION__DUPLICATE_FEATURE_INHERITANCE, UMLUtil.OPTION__PROCESS);
+ options.put(Profile2EPackageConverter.OPTION__DUPLICATE_FEATURES, UMLUtil.OPTION__PROCESS);
+ options.put(Profile2EPackageConverter.OPTION__DUPLICATE_OPERATIONS, UMLUtil.OPTION__REPORT);
+ options.put(Profile2EPackageConverter.OPTION__DUPLICATE_OPERATION_INHERITANCE, UMLUtil.OPTION__REPORT);
+ options.put(Profile2EPackageConverter.OPTION__REDEFINING_OPERATIONS, UMLUtil.OPTION__REPORT);
+ options.put(Profile2EPackageConverter.OPTION__REDEFINING_PROPERTIES, UMLUtil.OPTION__REPORT);
+ options.put(Profile2EPackageConverter.OPTION__SUBSETTING_PROPERTIES, UMLUtil.OPTION__REPORT);
+ options.put(Profile2EPackageConverter.OPTION__UNION_PROPERTIES, UMLUtil.OPTION__PROCESS);
+ options.put(UML2EcoreConverter.OPTION__SUPER_CLASS_ORDER, UMLUtil.OPTION__REPORT);
+ options.put(Profile2EPackageConverter.OPTION__ANNOTATION_DETAILS, UMLUtil.OPTION__REPORT);
+
+ //Generate constraints for the validation
+ String handleConstraints = saveConstraintInDef ? UMLUtil.OPTION__PROCESS : UMLUtil.OPTION__IGNORE;
+ options.put(Profile2EPackageConverter.OPTION__INVARIANT_CONSTRAINTS, handleConstraints);
+ options.put(Profile2EPackageConverter.OPTION__VALIDATION_DELEGATES, handleConstraints);
+ options.put(Profile2EPackageConverter.OPTION__INVOCATION_DELEGATES, handleConstraints);
+ options.put(UML2EcoreConverter.OPTION__OPERATION_BODIES, handleConstraints);
+ //
+
+ options.put(Profile2EPackageConverter.OPTION__COMMENTS, UMLUtil.OPTION__IGNORE);
+ options.put(Profile2EPackageConverter.OPTION__FOREIGN_DEFINITIONS, UMLUtil.OPTION__PROCESS);
+
+ options.put(Profile2EPackageConverter.OPTION__UNTYPED_PROPERTIES, UMLUtil.OPTION__PROCESS); //Closer to the UML semantics of untyped properties
+
+ List<EPackage> result = new LinkedList<EPackage>();
+
+ // we want to define
+ if(thePackage instanceof Profile) {
+ EPackage profileDefinition = ((Profile)thePackage).define(options, null, null);
+ result.add(profileDefinition);
+ }
+
+ Iterator<Package> it = thePackage.getNestedPackages().iterator();
+ while(it.hasNext()) {
+ Package p = it.next();
+ List<EPackage> profileDefinitions = defineProfiles(p, saveConstraintInDef);
+ result.addAll(profileDefinitions);
+ }
+
+ return result;
+ }
+
+ /**
+ *
+ *
+ * @see org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand#doExecuteWithResult(org.eclipse.core.runtime.IProgressMonitor,
+ * org.eclipse.core.runtime.IAdaptable)
+ *
+ * @param monitor
+ * @param info
+ * @return
+ * @throws ExecutionException
+ */
+ @Override
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+
+ List<EPackage> profileDefinitions = defineProfiles(rootProfile, saveConstraint);
+
+ IStatus result;
+
+ //PackageUtil.defineProfiles(rootProfile);
+ try {
+ ProfileRedefinition.redefineProfile(rootProfile, papyrusAnnotation);
+ ProfileRedefinition.cleanProfile(rootProfile);
+ //TODO: Validate the new definition
+
+ result = postValidate(profileDefinitions);
+ } catch (ExecutionException ex) {
+ throw ex;
+ } catch (Exception e) {
+ throw new ExecutionException("An error occurred during the profile definition", e);
+ }
+
+ return new CommandResult(result);
+ }
+
+ /**
+ * make a validation after the definition
+ * @param profileDefinitions
+ * @return
+ * @throws ExecutionException
+ */
+ protected IStatus postValidate(List<EPackage> profileDefinitions) throws ExecutionException {
+
+ EditingDomain domain = EMFHelper.resolveEditingDomain(rootProfile);
+ AdapterFactory adapterFactory = domain instanceof AdapterFactoryEditingDomain ? ((AdapterFactoryEditingDomain)domain).getAdapterFactory() : null;
+ Diagnostician diagnostician = createDiagnostician(adapterFactory, new NullProgressMonitor());
+ diagnostic = diagnostician.createDefaultDiagnostic(rootProfile);
+ Map<Object, Object> context = diagnostician.createDefaultContext();
+
+ for(EPackage ePackage : profileDefinitions) {
+ diagnostician.validate(ePackage, diagnostic, context);
+ }
+
+ if(diagnostic.getSeverity() == Diagnostic.ERROR) {
+ return new Status(IStatus.ERROR, Activator.PLUGIN_ID, "The defined profile is invalid");
+ }
+
+ if(diagnostic.getSeverity() == Diagnostic.WARNING) {
+ return new Status(IStatus.WARNING, Activator.PLUGIN_ID, "The profile has been successfully defined");
+ }
+
+ return Status.OK_STATUS;
+ }
+
+ protected BasicDiagnostic diagnostic;
+
+ /**
+ *
+ * @return a diagnostic useful to run the EMF validation
+ */
+ public Diagnostic getDiagnostic() {
+ return diagnostic;
+ }
+
+ /**
+ * create a diagnostic
+ * @param adapterFactory
+ * @param progressMonitor
+ * @return
+ */
+ protected Diagnostician createDiagnostician(final AdapterFactory adapterFactory, final IProgressMonitor progressMonitor) {
+ return new Diagnostician() {
+
+ @Override
+ public String getObjectLabel(EObject eObject) {
+ if(adapterFactory != null && !eObject.eIsProxy()) {
+ IItemLabelProvider itemLabelProvider = (IItemLabelProvider)adapterFactory.adapt(eObject, IItemLabelProvider.class);
+ if(itemLabelProvider != null) {
+ return itemLabelProvider.getText(eObject);
+ }
+ }
+ return super.getObjectLabel(eObject);
+ }
+
+ @Override
+ public boolean validate(EClass eClass, EObject eObject, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ progressMonitor.worked(1);
+ return super.validate(eClass, eObject, diagnostics, context);
+ }
+ };
+ }
+
+ /**
+ *
+ * @see org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand#getAffectedFiles()
+ *
+ * @return the list of affect files
+ */
+ @Override
+ public List<IFile> getAffectedFiles() {
+ IFile f = WorkspaceSynchronizer.getFile(rootProfile.eResource());
+ return f != null ? Collections.<IFile> singletonList(f) : Collections.<IFile> emptyList();
+ }
+}
diff --git a/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/transformation/ReqIFImporterServiceEdit.java b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/transformation/ReqIFImporterServiceEdit.java
new file mode 100644
index 00000000000..a2967471ece
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/integration/transformation/ReqIFImporterServiceEdit.java
@@ -0,0 +1,140 @@
+/*****************************************************************************
+ * 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.transformation;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.GregorianCalendar;
+import java.util.HashMap;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils;
+import org.eclipse.papyrus.infra.services.edit.service.IElementEditService;
+import org.eclipse.papyrus.req.reqif.integration.assistant.ChooseReqIFTypeDialog;
+import org.eclipse.papyrus.req.reqif.integration.command.DefineProfileCommand;
+import org.eclipse.papyrus.req.reqif.transformation.ReqIFImporter;
+import org.eclipse.papyrus.sysml.service.types.element.SysMLElementTypes;
+import org.eclipse.rmf.reqif10.ReqIF;
+import org.eclipse.rmf.reqif10.SpecType;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Dependency;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Profile;
+
+/**
+ * implementation of a ReqIFImport dependent of Papyrus.
+ *
+ */
+
+public class ReqIFImporterServiceEdit extends ReqIFImporter {
+
+
+ /**
+ *
+ * Constructor.
+ *
+ * @param domain the domain to execute command
+ * @param reqIFModel the reqIF model that is imported
+ * @param UMLModel the UML model that contain imported elements
+ */
+ public ReqIFImporterServiceEdit(TransactionalEditingDomain domain, ReqIF reqIFModel, Package UMLModel) {
+ super(domain, reqIFModel, UMLModel);
+ }
+
+ /**
+ *
+ * @see org.eclipse.papyrus.req.reqif.transformation.ReqIFImporter#createRequirementClass(org.eclipse.uml2.uml.Element)
+ *{@inheritDoc}
+ */
+ protected Class createRequirementClass(org.eclipse.uml2.uml.Element owner) {
+ IElementEditService provider = ElementEditServiceUtils.getCommandProvider(owner);
+ if(provider == null) {
+ return null;
+ }
+
+ ICommand createGMFCommand = provider.getEditCommand(new CreateElementRequest(domain, owner, SysMLElementTypes.REQUIREMENT));
+ if(createGMFCommand != null) {
+ Command emfCommand = new org.eclipse.papyrus.commands.wrappers.GMFtoEMFCommandWrapper(createGMFCommand);
+ domain.getCommandStack().execute(emfCommand);
+ return (Class)createGMFCommand.getCommandResult().getReturnValue();
+ }
+ return null;
+ }
+
+ /**
+ *
+ * @see org.eclipse.papyrus.req.reqif.transformation.ReqIFImporter#createDependency(org.eclipse.uml2.uml.Package)
+ *{@inheritDoc}
+ */
+ protected Dependency createDependency(Package uMLModel) {
+ IElementEditService provider = ElementEditServiceUtils.getCommandProvider(uMLModel);
+ if(provider == null) {
+ return null;
+ }
+
+ ICommand createGMFCommand = provider.getEditCommand(new CreateElementRequest(domain, uMLModel,org.eclipse.papyrus.uml.service.types.element.UMLElementTypes.DEPENDENCY));
+ if(createGMFCommand != null) {
+
+ Command emfCommand = new org.eclipse.papyrus.commands.wrappers.GMFtoEMFCommandWrapper(createGMFCommand);
+ domain.getCommandStack().execute(emfCommand);
+ return (Dependency)createGMFCommand.getCommandResult().getReturnValue();
+ }
+ return null;
+ }
+
+ /**
+ *
+ * @see org.eclipse.papyrus.req.reqif.transformation.ReqIFImporter#selectReqIFType(java.util.Collection)
+ *{@inheritDoc}
+ *
+ */
+ protected HashMap<String, SpecType> selectReqIFType(Collection<SpecType> availableReqiFTypes) {
+ HashMap<String, SpecType> selectedReqiFType= new HashMap<String, SpecType>();
+ ChooseReqIFTypeDialog assistedDialog= new ChooseReqIFTypeDialog(new Shell(), availableReqiFTypes);
+ assistedDialog.open();
+ ArrayList<Object> result=assistedDialog.getSelectedElements();
+ for(Object object : result) {
+ if(object instanceof SpecType){
+ selectedReqiFType.put(((SpecType)object).getLongName(), ((SpecType)object));
+ }
+ }
+ return selectedReqiFType;
+
+ }
+
+ /**
+ *
+ * @see org.eclipse.papyrus.req.reqif.transformation.ReqIFImporter#defineProfile(org.eclipse.uml2.uml.Profile)
+ *
+ * {@inheritDoc}
+ */
+ protected void defineProfile(Profile profile) {
+ try {
+ DefineProfileCommand defineProfileCmd= new DefineProfileCommand(domain, new org.eclipse.papyrus.uml.tools.profile.definition.PapyrusDefinitionAnnotation(new org.eclipse.papyrus.uml.tools.profile.definition.Version(1, 0, 0), "generated by Papyrus Req","", GregorianCalendar.getInstance().getTime().toString(), "Papyrus Req"), profile, true);
+ defineProfileCmd.execute(new NullProgressMonitor(), null);
+ profile.eResource().save(null);
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (ExecutionException e) {
+ e.printStackTrace();
+ }
+ }
+}
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
new file mode 100644
index 00000000000..750563a319d
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/ReqIFBaseTransformation.java
@@ -0,0 +1,274 @@
+/*****************************************************************************
+ * 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.transformation;
+
+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 HashMap<String,Stereotype> reqStereotypes;
+ protected HashMap<String, Stereotype> reqstereotypeSpecRelation;
+ /** 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> reqiFTypeMap;
+ protected HashMap<String, SpecType> reqiFSpecRelationTypeMap;
+ protected HashMap<String, SpecificationType> reqiFSpecificationTypeMap;
+ protected HashMap<String, DatatypeDefinitionEnumeration> reqifDatatTypeEnumeration;
+ protected HashMap<String, Stereotype> reqstereotypeSpecification;
+ 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));
+ reqStereotypes = new HashMap<String,Stereotype>();
+ reqstereotypeSpecRelation= 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.getName().equals("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/ReqIFExporter.java b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/ReqIFExporter.java
new file mode 100644
index 00000000000..15f6230996b
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/ReqIFExporter.java
@@ -0,0 +1,634 @@
+/*****************************************************************************
+ * 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.transformation;
+
+import java.io.IOException;
+import java.math.BigInteger;
+import java.util.GregorianCalendar;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.papyrus.uml.extensionpoints.utils.Util;
+import org.eclipse.rmf.reqif10.AttributeDefinition;
+import org.eclipse.rmf.reqif10.AttributeDefinitionBoolean;
+import org.eclipse.rmf.reqif10.AttributeDefinitionEnumeration;
+import org.eclipse.rmf.reqif10.AttributeDefinitionInteger;
+import org.eclipse.rmf.reqif10.AttributeDefinitionReal;
+import org.eclipse.rmf.reqif10.AttributeDefinitionString;
+import org.eclipse.rmf.reqif10.AttributeDefinitionXHTML;
+import org.eclipse.rmf.reqif10.AttributeValueBoolean;
+import org.eclipse.rmf.reqif10.AttributeValueEnumeration;
+import org.eclipse.rmf.reqif10.AttributeValueInteger;
+import org.eclipse.rmf.reqif10.AttributeValueReal;
+import org.eclipse.rmf.reqif10.AttributeValueString;
+import org.eclipse.rmf.reqif10.AttributeValueXHTML;
+import org.eclipse.rmf.reqif10.DatatypeDefinitionBoolean;
+import org.eclipse.rmf.reqif10.DatatypeDefinitionEnumeration;
+import org.eclipse.rmf.reqif10.DatatypeDefinitionInteger;
+import org.eclipse.rmf.reqif10.DatatypeDefinitionReal;
+import org.eclipse.rmf.reqif10.DatatypeDefinitionString;
+import org.eclipse.rmf.reqif10.DatatypeDefinitionXHTML;
+import org.eclipse.rmf.reqif10.EmbeddedValue;
+import org.eclipse.rmf.reqif10.EnumValue;
+import org.eclipse.rmf.reqif10.ReqIF;
+import org.eclipse.rmf.reqif10.ReqIF10Factory;
+import org.eclipse.rmf.reqif10.ReqIFContent;
+import org.eclipse.rmf.reqif10.ReqIFHeader;
+import org.eclipse.rmf.reqif10.SpecElementWithAttributes;
+import org.eclipse.rmf.reqif10.SpecHierarchy;
+import org.eclipse.rmf.reqif10.SpecObject;
+import org.eclipse.rmf.reqif10.SpecObjectType;
+import org.eclipse.rmf.reqif10.SpecRelation;
+import org.eclipse.rmf.reqif10.SpecRelationType;
+import org.eclipse.rmf.reqif10.SpecType;
+import org.eclipse.rmf.reqif10.Specification;
+import org.eclipse.rmf.reqif10.SpecificationType;
+import org.eclipse.rmf.reqif10.XhtmlContent;
+import org.eclipse.rmf.reqif10.pror.util.ProrXhtmlSimplifiedHelper;
+import org.eclipse.rmf.reqif10.xhtml.XhtmlDivType;
+import org.eclipse.uml2.uml.Class;
+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.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;
+
+/**
+ * This class has in charge to realize export of ReqIF
+ *
+ */
+public class ReqIFExporter extends ReqIFBaseTransformation{
+
+
+ protected DatatypeDefinitionString datatypeDefinitionString;
+ protected DatatypeDefinitionBoolean datatypeDefinitionBoolean;
+ protected DatatypeDefinitionReal datatypeDefinitionReal;
+ protected DatatypeDefinitionInteger datatypeDefinitionInteger;
+ protected DatatypeDefinitionXHTML datatypeDefinitionXHTML;
+ protected HashMap<Element, SpecObject> element_SpecObject;
+
+ /**
+ *
+ * Constructor.
+ *
+ * @param domain in order to execute command
+ * @param UMLModel the selected UML model that will be exported
+ */
+ public ReqIFExporter(TransactionalEditingDomain domain,org.eclipse.uml2.uml.Package UMLModel) {
+ super(domain,UMLModel);
+ }
+
+ /**
+ * launch the export of the REqIF model
+ * @param withGUI if true dialog will appear, false there is no dialog
+ * @param reqIFpath the path of the Reqif File for example:"projectName/fileReqif"
+ */
+ public void exportReqIFModel(boolean withGUI, String reqIFpath) {
+ reqIFModel=createReqIFResource(reqIFpath);
+ //get all information form stereotypes
+ reqStereotypes=getAllPossibleRequirementType(UMLModel);
+ reqstereotypeSpecRelation= getAllPossibleSpecRelationType();
+ //create All reqIF Types
+ reqiFTypeMap = new HashMap<String, SpecType>();
+ reqiFSpecRelationTypeMap= new HashMap<String, SpecType >();
+
+ element_SpecObject = new HashMap<Element, SpecObject>();
+
+ //Enumeration
+ reqifDatatTypeEnumeration= new HashMap<String, DatatypeDefinitionEnumeration>() ;
+ profileEnumeration= getAllPossibleEnumeration(UMLModel);
+ //creation of Enumerations dataType
+ exportEnumeration();
+ getAllDataTypeDefinitionEnumeration();
+ //export specRealtionType
+ for(Stereotype adependencyStereotype:reqstereotypeSpecRelation.values()){
+ exportSpecRelationType(reqIFModel, adependencyStereotype);
+ }
+
+
+ //export specType
+ for(Stereotype stereotype : reqStereotypes.values()) {
+ exportSpecObjectTypes(reqIFModel, reqiFTypeMap, stereotype);
+ }
+ HashSet<Package> packageContainers=getRequirementContainers(UMLModel);
+ for(Package aPackage : packageContainers) {
+ //create a specificationType
+ SpecificationType aSpecificationType= ReqIF10Factory.eINSTANCE.createSpecificationType();
+ aSpecificationType.setLastChange((GregorianCalendar)GregorianCalendar.getInstance());
+ aSpecificationType.setLongName(aPackage.getName());
+ reqIFModel.getCoreContent().getSpecTypes().add(aSpecificationType);
+ //create a Specification
+ Specification aSpecification= ReqIF10Factory.eINSTANCE.createSpecification();
+ aSpecification.setLastChange((GregorianCalendar)GregorianCalendar.getInstance());
+ aSpecification.setLongName(aPackage.getName());
+ aSpecification.setType(aSpecificationType);
+
+ reqIFModel.getCoreContent().getSpecifications().add(aSpecification);
+ for(PackageableElement aPackageableElement: aPackage.getPackagedElements()){
+ exportAHierarchy(aSpecification, reqIFModel,aPackageableElement);
+ }
+ }
+ exportSpecRelation();
+
+ try {
+ reqIFModel.eResource().save(null);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+
+/**
+ * export stereotyped dependency to Spec Relation
+ */
+ protected void exportSpecRelation() {
+ Iterator<EObject> containedElementIterator= UMLModel.eAllContents();
+ while(containedElementIterator.hasNext()) {
+ EObject eObject = (EObject)containedElementIterator.next();
+ if( eObject instanceof Dependency){
+ Dependency aDependency= (Dependency)eObject;
+ List<Stereotype> appliedStereotypes=aDependency.getAppliedStereotypes();
+ for(Stereotype appliedstereotype : appliedStereotypes) {
+ if(reqstereotypeSpecRelation.values().contains(appliedstereotype)){
+ if((element_SpecObject.containsKey(aDependency.getClients().get(0)))&&(element_SpecObject.containsKey(aDependency.getSuppliers().get(0)))){
+ SpecRelation specRelation=ReqIF10Factory.eINSTANCE.createSpecRelation();
+ specRelation.setType((SpecRelationType)reqiFSpecRelationTypeMap.get(appliedstereotype.getName()));
+ specRelation.setLastChange((GregorianCalendar)GregorianCalendar.getInstance());
+ specRelation.setLongName(aDependency.getName());
+ specRelation.setSource((element_SpecObject.get(aDependency.getClients().get(0))));
+ specRelation.setTarget(element_SpecObject.get(aDependency.getSuppliers().get(0)));
+ exportAttributeValues(reqiFSpecRelationTypeMap,(Element) aDependency, appliedstereotype, specRelation);
+ reqIFModel.getCoreContent().getSpecRelations().add(specRelation);
+ }
+ }
+ }
+ }
+ }
+
+ }
+
+
+
+
+ /**
+ * transform UML Enumeration to ReqIF enumeration
+ */
+ protected void exportEnumeration() {
+ for(Enumeration theEnumeration:profileEnumeration.values()){
+ DatatypeDefinitionEnumeration definitionEnumeration= ReqIF10Factory.eINSTANCE.createDatatypeDefinitionEnumeration();
+ definitionEnumeration.setLongName(theEnumeration.getName());
+ definitionEnumeration.setLastChange((GregorianCalendar)GregorianCalendar.getInstance());
+ int i=0;
+ for(EnumerationLiteral theEnumerationLiteral: theEnumeration.getOwnedLiterals()){
+ EnumValue theEnumValue= ReqIF10Factory.eINSTANCE.createEnumValue();
+ theEnumValue.setLongName(theEnumerationLiteral.getName());
+ theEnumValue.setLastChange((GregorianCalendar)GregorianCalendar.getInstance());
+ EmbeddedValue embeddedValue= ReqIF10Factory.eINSTANCE.createEmbeddedValue();
+ embeddedValue.setKey(new BigInteger(""+i));
+ embeddedValue.setOtherContent(theEnumeration.getName()+"_"+theEnumerationLiteral.getName());
+ theEnumValue.setProperties(embeddedValue);
+ definitionEnumeration.getSpecifiedValues().add(theEnumValue);
+ i++;
+ }
+ reqIFModel.getCoreContent().getDatatypes().add(definitionEnumeration);
+ }
+ }
+
+ /**
+ * export a hierarchy from a packaged element
+ * @param aSpecification that will contain a hierarchy
+ * @param reqIFModel the reqiModel that contain the specification
+ * @param aPackageableElement the packageable element that will be exported ( package or requirement)
+ */
+ protected void exportAHierarchy(Specification aSpecification, ReqIF reqIFModel, PackageableElement aPackageableElement) {
+ List<Stereotype> appliedStereotypes=aPackageableElement.getAppliedStereotypes();
+ for(Stereotype appliedstereotype : appliedStereotypes) {
+ if(reqStereotypes.values().contains(appliedstereotype)){
+ SpecHierarchy hierarchy=ReqIF10Factory.eINSTANCE.createSpecHierarchy();
+ hierarchy.setLastChange((GregorianCalendar)GregorianCalendar.getInstance());
+ SpecObject specObject=exportSpecObjects(reqIFModel, reqStereotypes, reqiFTypeMap, ((Class)aPackageableElement));
+ hierarchy.setObject(specObject);
+ aSpecification.getChildren().add(hierarchy);
+ for(Element containedElement: aPackageableElement.getOwnedElements()){
+ exportAHierarchy(hierarchy, reqIFModel, containedElement);
+ }
+ }
+ }
+
+ }
+
+ /**
+ * form a UML element (requirement) create a hierarchy in REqIF
+ * @param hierarchy an existed Hierarchy where sub hierarchy will be created
+ * @param reqIFModel the ReqIF model
+ * @param containedElement the container of elements that will be exported
+ */
+ protected void exportAHierarchy(SpecHierarchy hierarchy, ReqIF reqIFModel, Element containedElement) {
+ //test if the current element is a requirement
+ List<Stereotype> appliedStereotypes=containedElement.getAppliedStereotypes();
+ for(Stereotype appliedstereotype : appliedStereotypes) {
+ if(reqStereotypes.values().contains(appliedstereotype)){
+ //this is a requirement
+ SpecHierarchy childhierarchy=ReqIF10Factory.eINSTANCE.createSpecHierarchy();
+ childhierarchy.setLastChange((GregorianCalendar)GregorianCalendar.getInstance());
+ SpecObject specObject=exportSpecObjects(reqIFModel, reqStereotypes, reqiFTypeMap, ((Class)containedElement));
+ childhierarchy.setObject(specObject);
+ hierarchy.getChildren().add(childhierarchy);
+ for(Element childcontainedElement: containedElement.getOwnedElements()){
+ exportAHierarchy(childhierarchy, reqIFModel, childcontainedElement);
+ }
+ }
+ }
+
+ }
+
+ /**
+ * get the list of requirement container
+ * @param UMLModel
+ * @return the list of package that contain requirements
+ */
+ public HashSet<org.eclipse.uml2.uml.Package> getRequirementContainers(org.eclipse.uml2.uml.Package UMLModel){
+ HashSet<Package> requirementContainers= new HashSet<Package>();
+ Iterator<EObject> modelIterator=UMLModel.eAllContents();
+ while(modelIterator.hasNext()) {
+ EObject eObject = (EObject)modelIterator.next();
+ if( eObject instanceof org.eclipse.uml2.uml.Class){
+ Class clazz=(Class)eObject;
+ List<Stereotype> appliedStereotypes=clazz.getAppliedStereotypes();
+ for(Stereotype appliedstereotype : appliedStereotypes) {
+ if(reqStereotypes.values().contains(appliedstereotype)){
+ if(clazz.eContainer() instanceof Package){
+ requirementContainers.add((Package)clazz.eContainer());
+ }
+ }
+ }
+ }
+ }
+ return requirementContainers;
+ }
+
+ /**
+ * Initiate ReqIF resource
+ * @param reqIFpath
+ * @return
+ */
+ protected ReqIF createReqIFResource(String reqIFpath) {
+ URI reqIFURI=URI.createPlatformResourceURI(reqIFpath,true);
+ ResourceSet resourceSet = Util.createTemporaryResourceSet();
+ Resource reqIFResource= resourceSet.createResource(reqIFURI);
+ reqIFModel=ReqIF10Factory.eINSTANCE.createReqIF();
+ ReqIFHeader header=ReqIF10Factory.eINSTANCE.createReqIFHeader();
+ 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.setReqIFToolId("Papyrus Req");
+ reqIFModel.setTheHeader(header);
+ ReqIFContent reqIFContent= ReqIF10Factory.eINSTANCE.createReqIFContent();
+ reqIFModel.setCoreContent(reqIFContent);
+ reqIFResource.getContents().add(reqIFModel);
+ createBasicDataType(reqIFModel);
+ try {
+ reqIFResource.save(null);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return reqIFModel;
+ }
+
+ /**create Basic Dataty
+ *
+ * @param reqIFModel the given ReqIF model
+ */
+ protected void createBasicDataType(ReqIF reqIFModel) {
+ datatypeDefinitionString = ReqIF10Factory.eINSTANCE.createDatatypeDefinitionString();
+ datatypeDefinitionString.setLongName("String");
+ datatypeDefinitionString.setDesc("String that been written by Papyrus Req");
+ datatypeDefinitionString.setMaxLength(new BigInteger(""+Integer.MAX_VALUE));
+ datatypeDefinitionString.setLastChange((GregorianCalendar)GregorianCalendar.getInstance());
+ reqIFModel.getCoreContent().getDatatypes().add(datatypeDefinitionString);
+
+
+ datatypeDefinitionBoolean = ReqIF10Factory.eINSTANCE.createDatatypeDefinitionBoolean();
+ datatypeDefinitionBoolean.setLongName("Boolean");
+ datatypeDefinitionBoolean.setDesc("Boolean that been written by Papyrus Req");
+ datatypeDefinitionBoolean.setLastChange((GregorianCalendar)GregorianCalendar.getInstance());
+ reqIFModel.getCoreContent().getDatatypes().add(datatypeDefinitionBoolean);
+
+
+ datatypeDefinitionReal = ReqIF10Factory.eINSTANCE.createDatatypeDefinitionReal();
+ datatypeDefinitionReal.setLongName("Real");
+ datatypeDefinitionReal.setDesc("Real that been written by Papyrus Req");
+ datatypeDefinitionReal.setAccuracy(new BigInteger(""+Double.SIZE));
+ datatypeDefinitionReal.setLastChange((GregorianCalendar)GregorianCalendar.getInstance());
+ datatypeDefinitionReal.setMax(Double.MAX_VALUE);
+ datatypeDefinitionReal.setMin(Double.MIN_VALUE);
+ reqIFModel.getCoreContent().getDatatypes().add(datatypeDefinitionReal);
+
+ datatypeDefinitionInteger = ReqIF10Factory.eINSTANCE.createDatatypeDefinitionInteger();
+ datatypeDefinitionInteger.setLongName("Integer");
+ datatypeDefinitionInteger.setDesc("Integer that been written by Papyrus Req");
+ datatypeDefinitionInteger.setLastChange((GregorianCalendar)GregorianCalendar.getInstance());
+ datatypeDefinitionInteger.setMax( new BigInteger(""+Integer.MAX_VALUE));
+ datatypeDefinitionInteger.setMin(new BigInteger(""+Integer.MIN_VALUE));
+ reqIFModel.getCoreContent().getDatatypes().add(datatypeDefinitionInteger);
+
+ datatypeDefinitionXHTML = ReqIF10Factory.eINSTANCE.createDatatypeDefinitionXHTML();
+ datatypeDefinitionXHTML.setLongName("XHTML");
+ datatypeDefinitionXHTML.setDesc("XHTML that been written by Papyrus Req");
+ datatypeDefinitionXHTML.setLastChange((GregorianCalendar)GregorianCalendar.getInstance());
+ reqIFModel.getCoreContent().getDatatypes().add(datatypeDefinitionXHTML);
+
+ }
+
+ /**
+ * transform stereotyped class to SpecObject
+ * @param reqIFModel the ReqIFModel
+ * @param reqStereotypes the list of stereotype that represent Requirements
+ * @param createdReqiFType the list of created ReqIF Types
+ * @param clazz the current stereotyped Class
+ * @return the created SpecObject, can be null
+ */
+ protected SpecObject exportSpecObjects(ReqIF reqIFModel,HashMap<String,Stereotype> reqStereotypes, HashMap<String, SpecType> createdReqiFType, Element clazz) {
+ List<Stereotype> appliedStereotypes=clazz.getAppliedStereotypes();
+ for(Stereotype appliedstereotype : appliedStereotypes) {
+ if(reqStereotypes.values().contains(appliedstereotype)){
+ SpecObject reqinReqIF=ReqIF10Factory.eINSTANCE.createSpecObject();
+ reqinReqIF.setType((SpecObjectType)createdReqiFType.get(appliedstereotype.getName()));
+ reqinReqIF.setLastChange((GregorianCalendar)GregorianCalendar.getInstance());
+ element_SpecObject.put(clazz, reqinReqIF);
+ if( clazz instanceof NamedElement){
+ reqinReqIF.setLongName(((NamedElement)clazz).getName());
+ }
+
+ reqIFModel.getCoreContent().getSpecObjects().add(reqinReqIF);
+ exportAttributeValues(createdReqiFType, clazz, appliedstereotype, reqinReqIF);
+
+ return reqinReqIF;
+ }//know sterotypes
+
+ }//look for applied stereotype
+ return null;
+ }
+
+ /**
+ *
+ * @param createdReqiFType
+ * @param clazz hte UML element that will be translated
+ * @param appliedstereotype the stereotype that has bee, applied
+ * @param reqinReqIF the ReqIF element
+ */
+ protected void exportAttributeValues(HashMap<String, SpecType> createdReqiFType, Element clazz, Stereotype appliedstereotype, SpecElementWithAttributes reqinReqIF) {
+ for(Property property : appliedstereotype.getAllAttributes()) {
+ if( clazz.getValue(appliedstereotype, property.getName())!=null){
+ if(property.getType()!=null){
+ //look for SpecAttribute
+ AttributeDefinition currentAttributeDefinition=null;
+ currentAttributeDefinition = getAttributeDefinition(createdReqiFType, appliedstereotype, property.getName());
+ if( currentAttributeDefinition!=null){
+ if( property.getType().getName().equals("String")){
+ String value= (String)clazz.getValue(appliedstereotype, property.getName());
+ value = filterHtml(value);
+ AttributeValueString attributeString=ReqIF10Factory.eINSTANCE.createAttributeValueString();
+ attributeString.setDefinition((AttributeDefinitionString)currentAttributeDefinition);
+ attributeString.setTheValue( value);
+ reqinReqIF.getValues().add(attributeString);
+ }
+ if( property.getType().getName().equals("Integer")){
+ AttributeValueInteger attribute=ReqIF10Factory.eINSTANCE.createAttributeValueInteger();
+ attribute.setDefinition((AttributeDefinitionInteger)currentAttributeDefinition);
+ attribute.setTheValue( new BigInteger(""+clazz.getValue(appliedstereotype, property.getName())));
+
+ reqinReqIF.getValues().add(attribute);
+ }
+ if( property.getType().getName().equals("Boolean")){
+ AttributeValueBoolean attribute=ReqIF10Factory.eINSTANCE.createAttributeValueBoolean();
+ attribute.setDefinition((AttributeDefinitionBoolean)currentAttributeDefinition);
+ attribute.setTheValue( (Boolean)clazz.getValue(appliedstereotype, property.getName()));
+
+ reqinReqIF.getValues().add(attribute);
+ }
+ if( property.getType().getName().equals("Real")){
+ AttributeValueReal attribute=ReqIF10Factory.eINSTANCE.createAttributeValueReal();
+ attribute.setDefinition((AttributeDefinitionReal)currentAttributeDefinition);
+ attribute.setTheValue( (Double)clazz.getValue(appliedstereotype, property.getName()));
+
+ reqinReqIF.getValues().add(attribute);
+ }
+ if( property.getType().getName().equals("XHTML")){
+ AttributeValueXHTML attribute=ReqIF10Factory.eINSTANCE.createAttributeValueXHTML();
+ attribute.setDefinition((AttributeDefinitionXHTML)currentAttributeDefinition);
+ String value= (String)clazz.getValue(appliedstereotype, property.getName());
+ value = filterHtml(value);
+ XhtmlDivType xmlDivType=ProrXhtmlSimplifiedHelper.stringToSimplifiedXhtml(value);
+ XhtmlContent xhtmlContent=ReqIF10Factory.eINSTANCE.createXhtmlContent();
+ xhtmlContent.setXhtml(xmlDivType);
+ attribute.setTheValue(xhtmlContent);
+
+ reqinReqIF.getValues().add(attribute);
+ }
+
+ if( property.getType() instanceof Enumeration){
+ AttributeValueEnumeration attribute=ReqIF10Factory.eINSTANCE.createAttributeValueEnumeration();
+
+ DatatypeDefinitionEnumeration datatypeDefinitionEnumeration=reqifDatatTypeEnumeration.get(property.getType().getName());
+ EnumValue currentEnumValue=null;
+ for(EnumValue enumValue:datatypeDefinitionEnumeration.getSpecifiedValues()){
+ if( enumValue.getLongName().equals(((EnumerationLiteral)(clazz.getValue(appliedstereotype, property.getName()))).getName())){
+ currentEnumValue=enumValue;
+ }
+ }
+ attribute.setDefinition((AttributeDefinitionEnumeration)(currentAttributeDefinition));
+ attribute.getValues().add(currentEnumValue);
+ reqinReqIF.getValues().add(attribute);
+ }
+
+ }//currentAttributeDefinition !null
+ }//property.getType()!=null
+
+ }//value of the property not null
+ }//loop on properties
+ }
+/**
+ * from a string that represent HTML
+ * @param value the given HTML string
+ * @return the valued without header
+ */
+ protected String filterHtml(String value) {
+ if( value.toLowerCase().contains("<html")|| value.toLowerCase().contains("<xhtml")){
+
+ value=value.replaceAll("</xhtml:XhtmlDivType>", "");
+ value=value.replaceAll("<xhtml:XhtmlDivType xmlns:xhtml=\"http://www.w3.org/1999/xhtml\">", "");
+ value=value.replaceAll("<xhtml:XhtmlDivType>", "");
+
+ }
+ return value;
+ }
+
+ /**
+ * get an attributed definition from applied stereotype and the name of the attribute
+ * @param createdReqiFType the list of created ReqIf types
+ * @param appliedstereotype the stereotype that has an attribute with the name property name
+ * @param propertyName the named of the researched attribute definition
+ * @return return the attribute definition or null if not found
+ */
+ protected AttributeDefinition getAttributeDefinition(HashMap<String, SpecType> createdReqiFType, Stereotype appliedstereotype, String propertyName ) {
+ AttributeDefinition currentAttributeDefinition=null;
+ List<AttributeDefinition> specAttribtutes=createdReqiFType.get(appliedstereotype.getName()).getSpecAttributes();
+ for(AttributeDefinition attributeDefinition : specAttribtutes) {
+ if( attributeDefinition.getLongName().equals(propertyName)){
+ currentAttributeDefinition = attributeDefinition;
+ }
+ }
+ return currentAttributeDefinition;
+ }
+
+ /**
+ * export a stereotype based on dependency to SpecRelation Type
+ * @param reqIFModel the reqIf model
+ * @param adependencyStereotype a given stereotype based on dependency
+ */
+ protected void exportSpecRelationType(ReqIF reqIFModel, Stereotype adependencyStereotype) {
+ SpecRelationType aSpecRealtionType=ReqIF10Factory.eINSTANCE.createSpecRelationType();
+ aSpecRealtionType.setLongName(adependencyStereotype.getName());
+ if(adependencyStereotype.getOwnedComments().size()>0){
+ aSpecRealtionType.setDesc(adependencyStereotype.getOwnedComments().get(0).getBody());
+ }
+ else{
+ aSpecRealtionType.setDesc("no Description");
+ }
+ aSpecRealtionType.setLastChange((GregorianCalendar)GregorianCalendar.getInstance());
+ aSpecRealtionType.setIdentifier(EcoreUtil.getID(adependencyStereotype));
+ reqIFModel.getCoreContent().getSpecTypes().add(aSpecRealtionType);
+ //createHTML Attribute
+ //
+ //add Attributes... simple Attribute
+ exporttoAttributeType(adependencyStereotype, aSpecRealtionType);
+ reqiFSpecRelationTypeMap.put(aSpecRealtionType.getLongName(), aSpecRealtionType);
+
+ }
+
+ /**
+ * transform Stereotype to SpecObjectType with Attributes
+ * @param reqIFModel the ReqIF model
+ * @param createdReqiFType the HaspMap of SpecObjectTypes
+ * @param stereotype the current stereotype to transform into SpecObjectTypes
+ */
+ protected void exportSpecObjectTypes(ReqIF reqIFModel, HashMap<String, SpecType> createdReqiFType, Stereotype stereotype) {
+ SpecObjectType specObjectType=ReqIF10Factory.eINSTANCE.createSpecObjectType();
+ specObjectType.setLongName(stereotype.getName());
+ if(stereotype.getOwnedComments().size()>0){
+ specObjectType.setDesc(stereotype.getOwnedComments().get(0).getBody());
+ }
+ else{
+ specObjectType.setDesc("no Description");
+ }
+ specObjectType.setLastChange((GregorianCalendar)GregorianCalendar.getInstance());
+ specObjectType.setIdentifier(EcoreUtil.getID(stereotype));
+ reqIFModel.getCoreContent().getSpecTypes().add(specObjectType);
+ //createHTML Attribute
+ //
+ //add Attributes... simple Attribute
+ exporttoAttributeType(stereotype, specObjectType);
+ createdReqiFType.put(specObjectType.getLongName(), specObjectType);
+ }
+
+ /**
+ * from a stereotype export all its attribute to attribute definition of a given SpecType
+ * @param stereotype the stereotype
+ * @param specType the SpecType
+ */
+ protected void exporttoAttributeType(Stereotype stereotype, SpecType specType) {
+ for(Property property : stereotype.getAllAttributes()) {
+ if(property.getType()!=null){
+ if( property.getType().getName().equals("String")){
+ AttributeDefinitionString attribute=ReqIF10Factory.eINSTANCE.createAttributeDefinitionString();
+ attribute.setLongName(property.getName());
+ attribute.setEditable(true);
+ attribute.setIdentifier(EcoreUtil.getID(property));
+ attribute.setLastChange((GregorianCalendar)GregorianCalendar.getInstance());
+ attribute.setType(datatypeDefinitionString);
+ specType.getSpecAttributes().add(attribute);
+ }
+
+ if( property.getType().getName().equals("Integer")){
+ AttributeDefinitionInteger attribute=ReqIF10Factory.eINSTANCE.createAttributeDefinitionInteger();
+ attribute.setLongName(property.getName());
+ attribute.setEditable(true);
+ attribute.setIdentifier(EcoreUtil.getID(property));
+ attribute.setLastChange((GregorianCalendar)GregorianCalendar.getInstance());
+ attribute.setType(datatypeDefinitionInteger);
+ specType.getSpecAttributes().add(attribute);
+ }
+ if( property.getType().getName().equals("Boolean")){
+ AttributeDefinitionBoolean attribute=ReqIF10Factory.eINSTANCE.createAttributeDefinitionBoolean();
+ attribute.setLongName(property.getName());
+ attribute.setEditable(true);
+ attribute.setIdentifier(EcoreUtil.getID(property));
+ attribute.setType(datatypeDefinitionBoolean);
+ attribute.setLastChange((GregorianCalendar)GregorianCalendar.getInstance());
+ specType.getSpecAttributes().add(attribute);
+ }
+ if( property.getType().getName().equals("Real")){
+ AttributeDefinitionReal attribute=ReqIF10Factory.eINSTANCE.createAttributeDefinitionReal();
+ attribute.setLongName(property.getName());
+ attribute.setEditable(true);
+ attribute.setIdentifier(EcoreUtil.getID(property));
+ attribute.setType(datatypeDefinitionReal);
+ attribute.setLastChange((GregorianCalendar)GregorianCalendar.getInstance());
+ specType.getSpecAttributes().add(attribute);
+ }
+ if( property.getType().getName().equals("XHTML")){
+ AttributeDefinitionXHTML attribute=ReqIF10Factory.eINSTANCE.createAttributeDefinitionXHTML();
+ attribute.setLongName(property.getName());
+ attribute.setEditable(true);
+ attribute.setType(datatypeDefinitionXHTML);
+ attribute.setLastChange((GregorianCalendar)GregorianCalendar.getInstance());
+ specType.getSpecAttributes().add(attribute);
+ }
+
+ if( property.getType() instanceof Enumeration){
+ AttributeDefinitionEnumeration attribute=ReqIF10Factory.eINSTANCE.createAttributeDefinitionEnumeration();
+ attribute.setLongName(property.getName());
+ attribute.setEditable(true);
+ attribute.setIdentifier(EcoreUtil.getID(property));
+ if(property.getUpper()==-1){
+ attribute.setMultiValued(true);
+ }
+ else{
+ attribute.setMultiValued(false);
+ }
+ attribute.setLastChange((GregorianCalendar)GregorianCalendar.getInstance());
+ attribute.setType(reqifDatatTypeEnumeration.get(property.getType().getName()));
+ specType.getSpecAttributes().add(attribute);
+ }
+ }
+
+
+ }
+ }
+}
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
new file mode 100644
index 00000000000..3600ca8bebe
--- /dev/null
+++ b/extraplugins/req/org.eclipse.papyrus.req.reqif/src/org/eclipse/papyrus/req/reqif/transformation/ReqIFImporter.java
@@ -0,0 +1,767 @@
+/*****************************************************************************
+ * 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.transformation;
+
+
+import java.io.IOException;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.GregorianCalendar;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.papyrus.req.reqif.I_SysMLStereotype;
+import org.eclipse.papyrus.req.reqif.assistant.CreateOrSelectProfilDialog;
+import org.eclipse.papyrus.uml.extensionpoints.utils.Util;
+import org.eclipse.rmf.reqif10.AttributeDefinition;
+import org.eclipse.rmf.reqif10.AttributeDefinitionBoolean;
+import org.eclipse.rmf.reqif10.AttributeDefinitionEnumeration;
+import org.eclipse.rmf.reqif10.AttributeDefinitionInteger;
+import org.eclipse.rmf.reqif10.AttributeDefinitionReal;
+import org.eclipse.rmf.reqif10.AttributeDefinitionString;
+import org.eclipse.rmf.reqif10.AttributeDefinitionXHTML;
+import org.eclipse.rmf.reqif10.AttributeValue;
+import org.eclipse.rmf.reqif10.AttributeValueBoolean;
+import org.eclipse.rmf.reqif10.AttributeValueEnumeration;
+import org.eclipse.rmf.reqif10.AttributeValueInteger;
+import org.eclipse.rmf.reqif10.AttributeValueReal;
+import org.eclipse.rmf.reqif10.AttributeValueString;
+import org.eclipse.rmf.reqif10.AttributeValueXHTML;
+import org.eclipse.rmf.reqif10.DatatypeDefinitionEnumeration;
+import org.eclipse.rmf.reqif10.EnumValue;
+import org.eclipse.rmf.reqif10.Identifiable;
+import org.eclipse.rmf.reqif10.ReqIF;
+import org.eclipse.rmf.reqif10.SpecElementWithAttributes;
+import org.eclipse.rmf.reqif10.SpecHierarchy;
+import org.eclipse.rmf.reqif10.SpecObject;
+import org.eclipse.rmf.reqif10.SpecObjectType;
+import org.eclipse.rmf.reqif10.SpecRelation;
+import org.eclipse.rmf.reqif10.SpecRelationType;
+import org.eclipse.rmf.reqif10.SpecType;
+import org.eclipse.rmf.reqif10.Specification;
+import org.eclipse.rmf.reqif10.SpecificationType;
+import org.eclipse.rmf.reqif10.XhtmlContent;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Comment;
+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.NamedElement;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Profile;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Stereotype;
+import org.eclipse.uml2.uml.UMLFactory;
+import org.eclipse.uml2.uml.resource.UMLResource;
+
+/**
+ * this class is used to realize the import of ReqIF file to UML
+ *
+ */
+public abstract class ReqIFImporter extends ReqIFBaseTransformation {
+ /**
+ *
+ * Constructor.
+ *
+ * @param domain the domain in order to execute command
+ * @param reqIFModel the reqIF model that is imported
+ * @param UMLModel the UML model that will contain the importation
+ */
+ public ReqIFImporter(TransactionalEditingDomain domain, ReqIF reqIFModel, org.eclipse.uml2.uml.Package UMLModel ) {
+ super(domain,UMLModel);
+ this.reqIFModel= reqIFModel;
+ //initiate Hashmap
+ //mapping for the list of specObjectTypes
+ reqiFTypeMap=new HashMap<String, SpecType>();
+ reqStereotypes= new HashMap<String,Stereotype>();
+
+ //mapping stereotype for specification
+ reqiFSpecificationTypeMap=new HashMap<String, SpecificationType>();
+ reqstereotypeSpecification= new HashMap<String,Stereotype>();
+ //mapping SpecRelationType
+ reqiFSpecRelationTypeMap= new HashMap<String, SpecType>();
+ reqstereotypeSpecRelation= new HashMap<String, Stereotype>();
+ profileEnumeration= new HashMap<String, Enumeration>();
+
+ }
+ /**
+ * this method could be overloaded, it is used to make a pre-processing on ReqIFModel
+ * @param reqIFModel
+ */
+ public void preProcess( ReqIF reqIFModel){
+ //first make sure that all reqIFelement have a name
+ Iterator<EObject> reqIFElementIterator= reqIFModel.eAllContents();
+ int index =0;
+ while(reqIFElementIterator.hasNext()) {
+ EObject eObject = (EObject)reqIFElementIterator.next();
+ if( eObject instanceof Identifiable){
+ Identifiable identifiable=(Identifiable)eObject;
+ if( identifiable.getLongName()==null|| identifiable.getLongName().trim().equals("")){
+ identifiable.setLongName(eObject.getClass().getSimpleName()+"_"+index);
+ index++;
+ }
+ }
+
+ }
+ }
+
+
+ /**
+ * import selected SpecObjectType and their instances into UML Model
+ * @param interactive open GUI for user if true
+ * @return true
+ */
+ public boolean importReqIFModel ( boolean interactive){
+ preProcess(reqIFModel);
+ //look for all Stereotype that inherits of Requirements
+ //import ReqIFHeader
+ importReqIFHeader(reqIFModel, UMLModel);
+
+ //specObject Types
+ reqiFTypeMap= new HashMap<String, SpecType>();
+ reqStereotypes=getAllPossibleRequirementType( UMLModel);
+
+ //specificationType
+ reqiFSpecificationTypeMap= new HashMap<String, SpecificationType>();
+ reqstereotypeSpecification= getAllPossibleSpecificationType(UMLModel);
+
+ //SpecRelation
+ reqiFSpecRelationTypeMap= new HashMap<String, SpecType>();
+ reqstereotypeSpecRelation= getAllPossibleSpecRelationType();
+
+ //map between SpecObject and Element
+ SpecObject_UMLElementMap= new HashMap<SpecObject, Element>();
+
+ //get all types of ReqIF and SpecificationType
+ if(reqIFModel.getCoreContent().getSpecTypes()!=null&&reqIFModel.getCoreContent().getSpecTypes().size()>0){
+ for(SpecType reqIFType : reqIFModel.getCoreContent().getSpecTypes()) {
+ if(reqIFType instanceof SpecObjectType){
+ reqiFTypeMap.put(reqIFType.getLongName(), (SpecObjectType) reqIFType);
+ }
+ if(reqIFType instanceof SpecificationType){
+ reqiFSpecificationTypeMap.put(reqIFType.getLongName(), (SpecificationType) reqIFType);
+ }
+ if(reqIFType instanceof SpecRelationType){
+ reqiFSpecRelationTypeMap.put(reqIFType.getLongName(), (SpecRelationType) reqIFType);
+ }
+
+ }
+ }
+ //get All DataTypeEnumeration
+ profileEnumeration=getAllPossibleEnumeration(UMLModel);
+ reqifDatatTypeEnumeration= new HashMap<String, DatatypeDefinitionEnumeration>();
+ getAllDataTypeDefinitionEnumeration();
+
+ //ask to the User all specObjectTypes to import
+ if(interactive){
+ reqiFTypeMap=selectReqIFType(reqiFTypeMap.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>();
+ ArrayList<SpecType> specRelationTypesToCreate= new ArrayList<SpecType>();
+ ArrayList<DatatypeDefinitionEnumeration> dataTypeDefinitionToCreate= new ArrayList<DatatypeDefinitionEnumeration>();
+
+ //find spec Object Types to create
+ for(SpecType specObjectType : reqiFTypeMap.values()) {
+ if( !reqStereotypes.containsKey(specObjectType.getLongName())){
+ specObjectTypesToCreate.add(specObjectType);
+ }
+ }
+ //find specificationTypess to create
+ for(SpecificationType specificationType : reqiFSpecificationTypeMap.values()) {
+ if( !reqstereotypeSpecification.containsKey(specificationType.getLongName())){
+ specificationTypesToCreate.add(specificationType);
+ }
+ }
+ //find specRelationTypes to create
+ for(SpecType specRelationType : reqiFSpecRelationTypeMap.values()) {
+ if( !reqstereotypeSpecRelation.containsKey(specRelationType.getLongName())){
+ specRelationTypesToCreate.add(specRelationType);
+ }
+ }
+ //find dataTypeDefinition Enumeration to create
+ for(DatatypeDefinitionEnumeration definitionEnumeration : reqifDatatTypeEnumeration.values()) {
+ if( !profileEnumeration.containsKey(definitionEnumeration.getLongName())){
+ dataTypeDefinitionToCreate.add(definitionEnumeration);
+ }
+ }
+
+ //test if a profile must be updated or created
+ if( specObjectTypesToCreate.size()>0||specificationTypesToCreate.size()>0||specRelationTypesToCreate.size()>0||dataTypeDefinitionToCreate.size()>0){
+ CreateOrSelectProfilDialog profilDialog= new CreateOrSelectProfilDialog(new Shell(), getAllLocalProfiles(UMLModel));
+ profilDialog.open();
+ String profileName=profilDialog.getProfileName();
+ Profile profile=getProfile(UMLModel, profileName);
+ importReqIFHeader(reqIFModel, profile);
+ importDataTypeDefinition(profile, dataTypeDefinitionToCreate);
+ importReqIFSpecificationType(profile, specificationTypesToCreate);
+ importReqIFSpecObjectTypes(profile, specObjectTypesToCreate);
+ importReqIFspecRelationTypes(profile,specRelationTypesToCreate);
+ postProcessProfile(profile);
+ defineProfile(profile);
+ UMLModel.applyProfile(profile);
+ }
+
+ //all types has been created so import elspecifications and specObjects
+ reqStereotypes=getAllPossibleRequirementType(UMLModel);
+ reqstereotypeSpecification= getAllPossibleSpecificationType(UMLModel);
+ reqstereotypeSpecRelation= getAllPossibleSpecRelationType();
+ importReqIFspecification(reqIFModel, UMLModel, reqStereotypes);
+ importSpecRelation(reqIFModel, UMLModel,reqstereotypeSpecRelation);
+
+ postProcess(UMLModel);
+ return true;
+ }
+
+ /**
+ * this action is used to add last action or transformation on the UML model after importing all things.
+ * @param UMLModel the obtained UML model after importing reqIF Model
+ */
+ public void postProcess(Package UMLModel){
+
+ }
+
+ /**
+ * this agoal of this method is do add action before serialize, define and apply profile.
+ * Pay attention: Make sure that the profile could be define at the end of this action
+ * @param profile the current profile
+ *
+ */
+ public void postProcessProfile(Profile profile){
+
+ }
+ /**
+ * define the given profile in order to apply it
+ * @param profile the given profile
+ */
+ protected abstract void defineProfile(Profile profile);
+
+
+
+ /**
+ * This method is used to get the list of wanted ReqIFType to import
+ * @param values list of Spec Type
+ * @return subset of Spec types
+ */
+ protected abstract HashMap<String, SpecType> selectReqIFType(Collection<SpecType> values);
+
+
+
+ /**
+ * from a list of DatatypedefinitionEnumeration create Enumeration in a given profile
+ * @param profile the profile where Enumeration will be created
+ * @param dataTypeDefinitionToCreate list of enumeration definition
+ */
+
+ protected void importDataTypeDefinition(Profile profile, ArrayList<DatatypeDefinitionEnumeration> dataTypeDefinitionToCreate) {
+ for(DatatypeDefinitionEnumeration definitionEnumeration : dataTypeDefinitionToCreate) {
+ if(definitionEnumeration.getLongName()!=null &&(!(definitionEnumeration.getLongName().trim().equals("") ))){
+ Enumeration enumeration = profile.createOwnedEnumeration(getNormalName(definitionEnumeration.getLongName()));
+ //import enumerationLiteral
+ profileEnumeration.put(getNormalName(definitionEnumeration.getLongName()), enumeration);
+ for(EnumValue enumValue : definitionEnumeration.getSpecifiedValues()) {
+ if(enumValue.getLongName()!=null){
+ EnumerationLiteral enumerationLiteral=enumeration.createOwnedLiteral(getNormalName(enumValue.getLongName()));
+ if(enumValue.getDesc()!=null){
+ Comment comment=enumerationLiteral.createOwnedComment();
+ comment.setBody(enumValue.getDesc());
+ }
+ }
+ }
+ //create Comments
+ if(definitionEnumeration.getDesc()!=null){
+ Comment comment=enumeration.createOwnedComment();
+ comment.setBody(definitionEnumeration.getDesc());
+ }
+ }
+ }
+
+ }
+
+
+ /**
+ * from a list of SpecRelation create stereotypes in a given profile
+ * @param profile the profile where stereotypes will be created
+ * @param specRelationTypesToCreate the list of relationTypes that will be created in the UML file
+ */
+ protected void importReqIFspecRelationTypes(Profile profile, ArrayList<SpecType> specRelationTypesToCreate) {
+ for(SpecType specRelationType : specRelationTypesToCreate) {
+ if(specRelationType.getLongName()!=null &&(!(specRelationType.getLongName().trim().equals("") ))){
+ Stereotype stereotype = profile.createOwnedStereotype(specRelationType.getLongName(), false);
+ importSpecAttribute(specRelationType, stereotype);
+
+ //create Comments
+ if(specRelationType.getDesc()!=null){
+ Comment comment=stereotype.createOwnedComment();
+ comment.setBody(specRelationType.getDesc());
+ }
+ Class metaclass= (Class)umlMetamodel.getOwnedType("Dependency");
+ profile.createMetaclassReference(metaclass);
+ stereotype.createExtension(metaclass, false);
+ }
+ }
+ }
+
+
+ /**
+ * This method is used to import specification from ReqIF model
+ * @param reqIFModel the REQIF model
+ * @param UMLModel the UML model
+ * @param reqStereotypes the list of stereotypes
+ */
+ protected void importReqIFspecification(ReqIF reqIFModel,Package UMLModel,HashMap<String,Stereotype> reqStereotypes){
+ for(Specification specif : reqIFModel.getCoreContent().getSpecifications()) {
+ Package apackage=UMLModel.createNestedPackage(specif.getLongName());
+ if(reqstereotypeSpecification.get(specif.getType().getLongName())!=null){
+ apackage.applyStereotype(reqstereotypeSpecification.get(specif.getType().getLongName()));
+ importSpecAttributesValue(reqStereotypes, specif, apackage, specif.getType());
+ }
+ for(SpecHierarchy specHierarchy : specif.getChildren()) {
+ importReqIFHyerarchy(specHierarchy, apackage, reqStereotypes);
+ }
+ }
+ }
+
+
+ /**
+ * fill properties of stereotypes form the SpecElementWithAttributes and the map of stereotypes
+ * @param reqStereotypesMap map of stereotypes (specificationType, SpecObjectTypes)
+ * @param specif SpecElementWithAttributes that contains attributes
+ * @param umlElement the UmlElement that is stereotypes and where properties will be filled
+ * @param specType the type of the SpecElementWithAttributes
+ */
+ protected void importSpecAttributesValue(HashMap<String, Stereotype> reqStereotypesMap, SpecElementWithAttributes specif, Element umlElement, SpecType specType) {
+ for(AttributeValue att : specif.getValues()) {
+
+
+ if(att instanceof AttributeValueString){
+ String attributeName=((AttributeValueString)att).getDefinition().getLongName().trim();
+ attributeName = getNormalName(attributeName);
+ umlElement.setValue(
+ reqStereotypesMap.get(specType.getLongName()),
+ attributeName,
+ ((AttributeValueString)att).getTheValue());
+ if( attributeName.equals("ID")){
+ if(umlElement instanceof NamedElement){
+ ((NamedElement)umlElement).setName(((AttributeValueString)att).getTheValue());
+ }
+ }
+ }
+ if(att instanceof AttributeValueBoolean){
+ String attributeName=((AttributeValueBoolean)att).getDefinition().getLongName().trim();
+ attributeName = getNormalName(attributeName);
+ umlElement.setValue(
+ reqStereotypesMap.get(specType.getLongName()),
+ attributeName,
+ ((AttributeValueBoolean)att).isTheValue());
+ }
+ if(att instanceof AttributeValueInteger){
+ String attributeName=((AttributeValueInteger)att).getDefinition().getLongName().trim();
+ attributeName = getNormalName(attributeName);
+ umlElement.setValue(
+ reqStereotypesMap.get(specType.getLongName()),
+ attributeName,
+ ((AttributeValueInteger)att).getTheValue().doubleValue());
+ }
+ if(att instanceof AttributeValueReal){
+ String attributeName=((AttributeValueReal)att).getDefinition().getLongName().trim();
+ attributeName = getNormalName(attributeName);
+ umlElement.setValue(
+ reqStereotypesMap.get(specType.getLongName()),
+ attributeName,
+ ((AttributeValueReal)att).getTheValue());
+ }
+ if(att instanceof AttributeValueEnumeration){
+ String attributeName=((AttributeValueEnumeration)att).getDefinition().getLongName().trim();
+ attributeName = getNormalName(attributeName);
+ if(((AttributeValueEnumeration)att).getValues().size()>0){
+ String EnumerationValue=getNormalName(((AttributeValueEnumeration)att).getValues().get(0).getLongName());
+ //look for Enumeration literal
+ Enumeration aEnumeration= null;
+ //look for attribute
+ Stereotype referedStereotype= reqStereotypesMap.get(specType.getLongName());
+ Property referedAttribute=null;
+ for(Property property:referedStereotype.getAllAttributes()){
+ if(property.getName().equals(attributeName)){
+ referedAttribute=property;
+ }
+ }
+ aEnumeration= (Enumeration)referedAttribute.getType();
+ EnumerationLiteral aEnumerationLiteral=null;
+ for(EnumerationLiteral aLiteral:aEnumeration.getOwnedLiterals()){
+ if(EnumerationValue.equals(aLiteral.getName())){
+ aEnumerationLiteral=aLiteral;
+ }
+ }
+ if( aEnumerationLiteral!=null){
+ umlElement.setValue(
+ reqStereotypesMap.get(specType.getLongName()),
+ attributeName,
+ aEnumerationLiteral);
+ }
+ }
+ }
+
+ if(att instanceof AttributeValueXHTML){
+ String attributeName=((AttributeValueXHTML)att).getDefinition().getLongName().trim();
+ attributeName = getNormalName(attributeName);
+ if((((AttributeValueXHTML)att).getTheValue())!=null){
+ if((((AttributeValueXHTML)att).getTheValue().getXhtmlSource())!=null){
+ umlElement.setValue(
+ reqStereotypesMap.get(specType.getLongName()),
+ attributeName,
+ ((AttributeValueXHTML)att).getTheValue().getXhtmlSource());
+ }
+ else{
+ try {
+ umlElement.setValue(
+ reqStereotypesMap.get(specType.getLongName()),
+ attributeName,
+ //ProrXhtmlSimplifiedHelper.generateXMLString((((AttributeValueXHTML)att).getTheValue())));
+ getXmlOnlyString(((AttributeValueXHTML)att).getTheValue()));
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * transform a name that could be a anme without ' 'or '.'
+ * @param attributeName the string that will be transformed
+ * @return the normal String
+ */
+ protected String getNormalName(String attributeName) {
+ attributeName=attributeName.replace(' ', '_');
+ attributeName=attributeName.replace('.', '_');
+ return attributeName;
+ }
+
+ /**
+ * This static method generates the string representation of the given {@link XhtmlContent} and returns it.
+ *
+ * @param xhtmlContent
+ * , the ReqIF container that holds the xhtml content (See also: {@link XhtmlContent})
+ * @return the string representation of the given {@link XhtmlContent} or null if no root element exists.
+ * @throws IOException
+ */
+ public static String getXmlOnlyString(XhtmlContent xhtmlContent) throws IOException {
+ StringWriter str = new StringWriter();
+ Map<Object, Object> options = new HashMap<Object, Object>();
+ options.put(XMLResource.OPTION_DECLARE_XML, Boolean.FALSE);
+ options.put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.FALSE);
+ options.put(XMLResource.OPTION_FORMATTED, Boolean.FALSE);
+ options.put(XMLResource.OPTION_KEEP_DEFAULT_CONTENT, Boolean.FALSE);
+ options.put(XMLResource.OPTION_ROOT_OBJECTS, Collections.singletonList(xhtmlContent.getXhtml()));
+
+
+
+ // options.put(XMLResource.OPTION_SAVE_TYPE_INFORMATION, Boolean.FALSE);
+ // options.put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.FALSE);
+
+ XMLResourceImpl ri = new XMLResourceImpl();
+ ri.save(str, options);
+ String out= str.toString();
+ if( out.toLowerCase().contains("<html")|| out.toLowerCase().contains("<xhtml")){
+
+ out=out.replaceAll("</xhtml:XhtmlDivType>", "");
+ out=out.replaceAll("<xhtml:XhtmlDivType xmlns:xhtml=\"http://www.w3.org/1999/xhtml\">", "");
+ out=out.replaceAll("<xhtml:XhtmlDivType>", "");
+
+ }
+ return out.toString();
+ }
+ /**
+ * Import a hyerarchy that comes from a specification
+ * @param specHierarchy
+ * @param UMLElement
+ * @param reqStereotypes
+ */
+ protected void importReqIFHyerarchy(SpecHierarchy specHierarchy, Element UMLElement,HashMap<String,Stereotype> reqStereotypes){
+ Element createdChild=importReqIFSpecObjects(specHierarchy.getObject(), UMLElement, reqStereotypes);
+ if(createdChild==null){
+ createdChild=UMLElement;
+ }
+ for(SpecHierarchy specHierarchyChild : specHierarchy.getChildren()) {
+ importReqIFHyerarchy(specHierarchyChild, createdChild, reqStereotypes);
+
+ }
+ }
+
+ /**
+ * this method transform specification type to stereotypes based on package
+ * @param profile that contains stereotypes
+ * @param reqiFSpecificationTypetoImport the list of specification type to import
+ */
+ protected void importReqIFSpecificationType(Profile profile,List<SpecificationType> reqiFSpecificationTypetoImport) {
+ Stereotype requirement=getRequirementStereotype(sysMLprofile);
+ int index=0;
+ for(SpecificationType specificationType : reqiFSpecificationTypetoImport) {
+ Stereotype stereotype=profile.createOwnedStereotype("stereotypeSpecification"+ index, false);
+ index++;
+ if(specificationType.getLongName()!=null&&(!(specificationType.getLongName().trim().equals("")))){
+ stereotype.setName(specificationType.getLongName());
+ }
+ stereotype.createGeneralization(requirement);
+ importSpecAttribute(specificationType, stereotype);
+
+ //create Comments
+ if(specificationType.getDesc()!=null){
+ Comment comment=stereotype.createOwnedComment();
+ comment.setBody(specificationType.getDesc());
+ }
+ Class metaclass= (Class)umlMetamodel.getOwnedType("Package");
+ profile.createMetaclassReference(metaclass);
+ stereotype.createExtension(metaclass, false);
+
+ }
+
+ }
+
+ /**
+ * import attribute definition form the specType, it create property in the stereotype
+ * @param specificationType the specType
+ * @param stereotype the stereotype
+ */
+ protected void importSpecAttribute(SpecType specificationType, Stereotype stereotype) {
+ //create attributes
+ for(AttributeDefinition attributeDef : specificationType.getSpecAttributes()) {
+ Property attribute=null;
+ String attributeName=attributeDef.getLongName().trim();
+ attributeName = getNormalName(attributeName);
+ if( attributeDef instanceof AttributeDefinitionString){
+ if(!(attributeDef.getLongName().equals("text")&&!(attributeName.equals("id")))){
+ attribute= stereotype.createOwnedAttribute(attributeName, umlPrimitiveTypes.getOwnedType("String"));
+ }
+ }
+ if( attributeDef instanceof AttributeDefinitionInteger){
+ attribute= stereotype.createOwnedAttribute(attributeName, umlPrimitiveTypes.getOwnedType("Real"));
+ }
+ if( attributeDef instanceof AttributeDefinitionBoolean){
+ attribute= stereotype.createOwnedAttribute(attributeName, umlPrimitiveTypes.getOwnedType("Boolean"));
+ }
+ if( attributeDef instanceof AttributeDefinitionReal){
+ attribute= stereotype.createOwnedAttribute(attributeName, umlPrimitiveTypes.getOwnedType("Real"));
+ }
+ if(attributeDef instanceof AttributeDefinitionXHTML){
+ attribute= stereotype.createOwnedAttribute(attributeName, umlPrimitiveTypes.getOwnedType("String"));
+ }
+ if(attributeDef instanceof AttributeDefinitionEnumeration){
+ String name=getNormalName(((AttributeDefinitionEnumeration)attributeDef).getType().getLongName());
+ attribute= stereotype.createOwnedAttribute(attributeName, profileEnumeration.get(name));
+ }
+
+ if(attributeDef.getDesc()!=null&& attribute!=null){
+ Comment comment=attribute.createOwnedComment();
+ comment.setBody(attributeDef.getDesc());
+ }
+ }
+ }
+
+ /**
+ *add comment to explain the origin of this model
+ *@param reqIFModel the reqIF model
+ *@param thePackage that will contain the comment
+ */
+ protected void importReqIFHeader(ReqIF reqIFModel, Package thePackage) {
+ Comment headerComment= thePackage.createOwnedComment();
+ String body="This model has been generated "+ GregorianCalendar.getInstance().getTime()+" ";
+ body+= "from ReqIF file: "+reqIFModel.eResource().getURI().lastSegment()+".\n";
+ body+=""+reqIFModel.getTheHeader().getComment();
+ if(reqIFModel.getTheHeader().getTitle()!=null){
+ body+=""+reqIFModel.getTheHeader().getTitle();
+ }
+ headerComment.setBody(body);
+
+ }
+
+ /**
+ * Create stereotyped Class from SpecObject defined in the ReqIF model
+ * @param reqIFObject the ReqIF object that will be imported
+ * @param owner the owner of the imported element in the UML hierarchy
+ * @param reqStereotypes list of stereotypes that represent a requirement
+ * @return the a requirement with a good stereotype or null if no object is created (it depends if the type of specObject could be imported)
+ */
+ protected Element importReqIFSpecObjects(SpecObject reqIFObject, org.eclipse.uml2.uml.Element owner, HashMap<String, Stereotype> reqStereotypes) {
+ //test of the the specObject could be imported
+ if(reqStereotypes.get(reqIFObject.getType().getLongName())!=null){
+ Class reqClass=null;
+ reqClass = createRequirementClass(owner);
+ reqClass.applyStereotype(reqStereotypes.get(reqIFObject.getType().getLongName()));
+ reqClass.unapplyStereotype(reqClass.getApplicableStereotype(I_SysMLStereotype.REQUIREMENT_STEREOTYPE));
+ //setID
+ reqClass.setValue( reqStereotypes.get(reqIFObject.getType().getLongName()),
+ I_SysMLStereotype.REQUIREMENT_ID_ATT,
+ reqIFObject.getIdentifier());
+
+ //setText
+ reqClass.setValue( reqStereotypes.get(reqIFObject.getType().getLongName()),
+ I_SysMLStereotype.REQUIREMENT_TEXT_ATT,
+ reqIFObject.getDesc());
+
+
+ importSpecAttributesValue(reqStereotypes, reqIFObject, reqClass, reqIFObject.getType());
+ SpecObject_UMLElementMap.put(reqIFObject, reqClass);
+ return reqClass;
+
+
+ }
+ return null;
+ }
+
+
+ /**
+ * create a requirement
+ * @param owner the container of the requirement
+ * @return a requirement a class with the stereotype SySML requirement
+ */
+ protected abstract Class createRequirementClass(Element owner);
+
+
+
+ /**
+ * Create stereotyped Class from SpecRealtion defined in the ReqIF model
+ * @param reqIFModel the ReqIF model
+ * @param UMLModel the UMl model
+ * @param reqstereotypeSpecRelation list of stereotypes that represent a dependency
+ */
+ protected void importSpecRelation(ReqIF reqIFModel, Package UMLModel, HashMap<String, Stereotype> reqstereotypeSpecRelation) {
+ for(SpecRelation specRelation : reqIFModel.getCoreContent().getSpecRelations()) {
+ if(reqstereotypeSpecRelation.get(specRelation.getType().getLongName())!=null){
+ if( (SpecObject_UMLElementMap.get(specRelation.getSource())!=null) &&(SpecObject_UMLElementMap.get(specRelation.getTarget()))!=null){
+ Dependency reqDependency=null;
+ reqDependency = createDependency(UMLModel);
+
+ reqDependency.applyStereotype(reqstereotypeSpecRelation.get(specRelation.getType().getLongName()));
+ importSpecAttributesValue(reqstereotypeSpecRelation, specRelation, reqDependency, specRelation.getType());
+ reqDependency.getClients().add((NamedElement)SpecObject_UMLElementMap.get(specRelation.getSource()));
+ reqDependency.getSuppliers().add((NamedElement)SpecObject_UMLElementMap.get(specRelation.getTarget()));
+ }
+ }
+ }
+
+
+ }
+
+ /**
+ * create aDependency UML in the UML Model
+ * @param UMLModel
+ * @return the created dependency
+ */
+ protected abstract Dependency createDependency(Package UMLModel);
+
+
+
+ /**
+ * from a list of SpecObject create stereotypes in a given profile
+ * @param profile the profile where stereotypes will be created
+ * @param specObjectTypesToCreate
+ */
+ protected void importReqIFSpecObjectTypes(Profile profile, ArrayList<SpecType> specObjectTypesToCreate) {
+ Stereotype requirement=getRequirementStereotype(sysMLprofile);
+ int index=0;
+ for(SpecType specObjectType : specObjectTypesToCreate) {
+ Stereotype stereotype = profile.createOwnedStereotype(specObjectType.getLongName(), false);
+
+ if(specObjectType.getLongName()==null||(specObjectType.getLongName().trim().equals(""))){
+ stereotype.setName("StereotypeSpecObjectType"+index);
+ }
+ index++;
+ stereotype.createGeneralization(requirement);
+ importSpecAttribute(specObjectType, stereotype);
+
+ //create Comments
+ if(specObjectType.getDesc()!=null){
+ Comment comment=stereotype.createOwnedComment();
+ comment.setBody(specObjectType.getDesc());
+ }
+ }
+ }
+
+ /**
+ * this method is use to get the instance of a profile thanks to its name
+ * @param UMLmodel the UML model on which the profile will be applied
+ * @param profileName the name of the profile
+ * @return a profile (created or found)
+ */
+ protected Profile getProfile(org.eclipse.uml2.uml.Package UMLmodel, String profileName) {
+ Profile foundProfile=null;
+ ArrayList<Profile> localProfiles=getAllLocalProfiles(UMLmodel);
+ for(Profile profile : localProfiles) {
+ if(profileName.equals(profile.getName())){
+ foundProfile=profile;
+ }
+ }
+ ResourceSet resourceSet = Util.createTemporaryResourceSet();
+ if(foundProfile==null){
+ URI umlModel_URI=UMLmodel.eResource().getURI();
+ String tmpURI=umlModel_URI.toString().replaceAll(umlModel_URI.lastSegment().toString(), profileName+".profile.uml");
+ URI profileURI=URI.createURI(tmpURI);
+ Resource resource = resourceSet.createResource(profileURI);
+ foundProfile=UMLFactory.eINSTANCE.createProfile();
+ foundProfile.setName(profileName);
+ resource.getContents().add(foundProfile);
+
+
+ Resource resourceprimitiveType=resourceSet.getResource(URI.createURI(UMLResource.UML_PRIMITIVE_TYPES_LIBRARY_URI), true);
+ umlPrimitiveTypes = (org.eclipse.uml2.uml.Package) (resourceprimitiveType.getContents().get(0));
+ foundProfile.createPackageImport(umlPrimitiveTypes);
+ Resource umlMetamodelResource=resourceSet.getResource(URI.createURI(UMLResource.UML_METAMODEL_URI), true);
+ umlMetamodel = (org.eclipse.uml2.uml.Package) (umlMetamodelResource.getContents().get(0));
+ foundProfile.createMetamodelReference(umlMetamodel);
+ foundProfile.createPackageImport(sysMLprofile.getNestedPackage("Requirements"));
+ foundProfile.createPackageImport(sysMLprofile);
+ try {
+ resource.save(null);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ return foundProfile;
+ }
+
+
+ // protected void compare(ReqIF REQIFResource, ReqIF REQIFResource2) {
+ // IComparisonScope scope = new DefaultComparisonScope(REQIFResource,REQIFResource2,null);
+ // Comparison comparison = EMFCompare.builder().build().compare(scope);
+ // List<Diff> differences = comparison.getDifferences();
+ // for (Diff diff : differences) {
+ // System.out.println(diff);
+ // }
+ // }
+
+
+
+
+
+
+}
diff --git a/extraplugins/revision/org.eclipse.papyrus.revisiontool/doc/DeveloperDoc.html b/extraplugins/revision/org.eclipse.papyrus.revisiontool/doc/DeveloperDoc.html
deleted file mode 100644
index 3afa09b03a0..00000000000
--- a/extraplugins/revision/org.eclipse.papyrus.revisiontool/doc/DeveloperDoc.html
+++ /dev/null
@@ -1 +0,0 @@
-<html><link rel="stylesheet" href="default.css" type="text/css"><H1>Revision model for Papyrus</H1><H2>Requirements</H2><pre>- Versioning (id=Req_010): <BR/> Papyrus must integrate versioning in order to display in comment author and date.</pre><pre>- VersionInfoReq (id=Req_011): <BR/> <BR/>Papyrus must integrate versionning. This information comes from O"4.3.2 Pre-Defined Metadata Elements" of the OASIS standard, "Open Document Format for Office Applications (OpenDocument) Version 1.2 <BR/>- Part 1: OpenDocument Schema". </pre><pre>- ReviewSystem (id=Req_020): <BR/> Papyrus must integrate a review system to add comments with the possibility to respond to this comment. Each comment must have information about the user the date.</pre><pre>- RevisionMode (id=Req_030): <BR/> Papyrus must integrate a means to make revision mechanism to register, accept or refuse modification done by an user</pre><H2>Use Cases</H2><pre>The functionality revision can be divided into two parts: <BR/>- management of review comment <BR/> <BR/></pre><P align="middle"><img src=C:/git/org.eclipse.papyrus/extraplugins/revision/org.eclipse.papyrus.revisiontool/doc/imgDOC/ReviewSystem_UseCases.png alt=ReviewSystem UseCases ></P><P align="middle">ReviewSystem UseCases</P></BR><pre>- management of revision</pre><P align="middle"><img src=C:/git/org.eclipse.papyrus/extraplugins/revision/org.eclipse.papyrus.revisiontool/doc/imgDOC/Revision_mode_Use_Case.png alt=Revision mode Use Case ></P><P align="middle">Revision mode Use Case</P></BR><H3>Add or change information about him for the versionning</H3><pre>When the user wants to have for the first time a comment in the context of a review, the review system mus ask the identity and the language of the user in order to add it in the associated comment. <BR/>This information could be changed in the preference of papyrus</pre><P align="middle"><img src=C:\Workspaces\newhead\org.eclipse.papyrus.revisiontool\doc\imgDOC\UserIdentity.png alt=User Identity ></P><P align="middle">User Identity</P></BR><H3>Respond to a comment</H3><pre>A user could have the possibility to respond to a existing comment. Thanks to this, it is possible to see the discussion flow about a subject </pre><P align="middle"><img src=C:\Workspaces\newhead\org.eclipse.papyrus.revisiontool\doc\imgDOC\RespondComment.png alt=Respond Comment ></P><P align="middle">Respond Comment</P></BR><H3>Add a comment about modification on the current model</H3><pre>When the revision mode is activated, the user can add review comment on modification done in the model. <BR/>For example comment a deletion... <BR/></pre><H3>Add a review comment elements on the current model</H3><pre>The user adds a review comment on an element of the model. This comment will be store not directly in the model but into a new model that will contain all review comments. <BR/>This comment contains all information see in the version information. <BR/>This comment could be displayed on diagrams. A dedicated view must be displayed dedicated to review comment. (it can be sorted by date author, subject..)</pre><P align="middle"><img src=C:\Workspaces\newhead\org.eclipse.papyrus.revisiontool\doc\imgDOC\addComment.png alt=Add Comment ></P><P align="middle">Add Comment</P></BR><H3>Launch Revision mode</H3><pre>The user can launch revision mode. <BR/>From this time all modifications will be register and associated to the user. <BR/>A modification could be: <BR/> - a deletion <BR/> - an adding <BR/> - a set of a property of the graphical model or the semantic model <BR/> <BR/></pre><H3>Register all modifications with Versioning information</H3><pre>All modifications are store and associated to the current user. <BR/>A modification must have a timestamp, an author. <BR/></pre><H3>Stop RevisionMode</H3><pre>When the user stop the revision mode, modifications are not registered and done directly on the model. <BR/></pre><H3>Accept or refuse modifications</H3><pre>Thanks to registered modification the user can accept or refuse the modification. <BR/>If the modification is accepted, the adding or the deletion or the set is really done on the model, and the modification is removed from the stack. <BR/>If the modification is not accepted, the adding or deletion or the set is not applied, and the modification is removed from the stack. <BR/></pre><H2>Design</H2><H2>Tests</H2></html> \ No newline at end of file

Back to the top