Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Lorenzo2017-01-13 14:13:15 +0000
committerGerrit Code Review @ Eclipse.org2017-01-18 11:51:49 +0000
commit8aa6e885a1c748556f2c024e8b14af522a0f8f77 (patch)
tree4d542d84a79ac338a5981965b0579499e6f2ebd0
parentd9e7dcac172e360eb053c4cff35479e801d8e760 (diff)
downloadorg.eclipse.papyrus-8aa6e885a1c748556f2c024e8b14af522a0f8f77.tar.gz
org.eclipse.papyrus-8aa6e885a1c748556f2c024e8b14af522a0f8f77.tar.xz
org.eclipse.papyrus-8aa6e885a1c748556f2c024e8b14af522a0f8f77.zip
Bug 508513: [Importer][Rhapsody] Rhapsody Types libraries used in a Rhapsody Model should be imported too
Change-Id: Ieae5c2976be3af776c9f8099f2c24249e98a0e9e Signed-off-by: Vincent Lorenzo <vincent.lorenzo@cea.fr>
-rw-r--r--extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody.blackboxes/plugin.xml15
-rwxr-xr-xextraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody.blackboxes/src/org/eclipse/papyrus/migration/rhapsody/blackboxes/rhapsody/RhapsodyHelper.java104
-rw-r--r--extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/build.properties3
-rwxr-xr-xextraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/models/AnsiCLibrary.di17
-rwxr-xr-xextraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/models/AnsiCLibrary.notation348
-rwxr-xr-xextraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/models/AnsiCLibrary.uml37
-rw-r--r--extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/plugin.xml6
-rw-r--r--extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/src/org/eclipse/papyrus/migration/rhapsody/transformations/RhapsodyImportTransformation.java11
-rw-r--r--extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/MarteProfile.qvto4
-rw-r--r--extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/Rhapsody2PapyrusNotation.qvto23
-rw-r--r--extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/Rhapsody2PapyrusSemanticElements.qvto160
-rw-r--r--extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/RhapsodyUtils.qvto9
-rwxr-xr-xextraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SemanticInternationalization.qvto10
-rw-r--r--extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11BlockDefinitionDiagram.qvto6
-rw-r--r--extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11Diagrams.qvto6
-rw-r--r--extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11InternalBlockDiagram.qvto6
-rw-r--r--extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11ParametricDiagram.qvto6
-rw-r--r--extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11Profile.qvto4
-rwxr-xr-xplugins/doc/org.eclipse.papyrus.migration.rhapsody.doc/src/site/mediawiki/rhapsodyMigrationDev.mediawiki1
-rwxr-xr-xplugins/doc/org.eclipse.papyrus.migration.rhapsody.doc/src/site/mediawiki/rhapsodyMigrationUser.mediawiki7
20 files changed, 187 insertions, 596 deletions
diff --git a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody.blackboxes/plugin.xml b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody.blackboxes/plugin.xml
index 0c79f113249..8f562f538ec 100644
--- a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody.blackboxes/plugin.xml
+++ b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody.blackboxes/plugin.xml
@@ -101,5 +101,20 @@
</metamodel>
</library>
</unit>
+ <unit
+ description="Provides useful Method for Rhapsody elements and Rhapsody libraries"
+ name="RhapsodyHelper"
+ namespace="org.eclipse.papyrus.migration.rhapsody.blackboxes.rhapsody">
+ <library
+ class="org.eclipse.papyrus.migration.rhapsody.blackboxes.rhapsody.RhapsodyHelper"
+ name="RhapsodyHelper">
+ <metamodel
+ nsURI="http://www.eclipse.org/Papyrus/UMLRhapsody/1.0.0">
+ </metamodel>
+ <metamodel
+ nsURI="http://www.eclipse.org/emf/2002/Ecore">
+ </metamodel>
+ </library>
+ </unit>
</extension>
</plugin>
diff --git a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody.blackboxes/src/org/eclipse/papyrus/migration/rhapsody/blackboxes/rhapsody/RhapsodyHelper.java b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody.blackboxes/src/org/eclipse/papyrus/migration/rhapsody/blackboxes/rhapsody/RhapsodyHelper.java
new file mode 100755
index 00000000000..32e3d1b0a37
--- /dev/null
+++ b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody.blackboxes/src/org/eclipse/papyrus/migration/rhapsody/blackboxes/rhapsody/RhapsodyHelper.java
@@ -0,0 +1,104 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.migration.rhapsody.blackboxes.rhapsody;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EAnnotation;
+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.m2m.qvt.oml.blackbox.java.Operation;
+import org.eclipse.m2m.qvt.oml.blackbox.java.Operation.Kind;
+import org.eclipse.papyrus.migration.rhapsody.rhapsodymetamodel.IProject;
+import org.eclipse.papyrus.migration.rhapsody.rhapsodymetamodel.ISubsystem;
+
+/**
+ * This blackboxes provides helper for the Rhapsody metamodel
+ *
+ */
+public class RhapsodyHelper {
+
+ /**
+ *
+ * @param project
+ * an IProject
+ * @return
+ * the subsystem providing from Rhapsody files and referenced by the user model
+ */
+ @Operation(kind = Kind.HELPER)
+ public List<ISubsystem> getISubsystemsFromRhapsodyLibraries(final IProject project) {
+ EcoreUtil.resolveAll(project);
+ final ResourceSet set = project.eResource().getResourceSet();
+ final List<ISubsystem> subs = new ArrayList<ISubsystem>();
+ for (Resource current : set.getResources()) {
+ if (isRhapsodyLibraryResource(current)) {
+ final List<EObject> contents = current.getContents();
+ for (EObject curr : contents) {
+ if (curr instanceof ISubsystem) {
+ subs.add((ISubsystem) curr);
+ }
+ }
+ }
+ }
+ return subs;
+ }
+
+
+
+
+ /**
+ * text used for EAnnotation created during the Rhapsody import
+ */
+ public static final String RHAPSODY_IMPORTER_EANNOTATION_SOURCE = "RhapsodyImporter";//$NON-NLS-1$
+
+ /**
+ * String used to define if the created resource represents a Rhapsody Library (<code>true</code>) or a user resource (<code>false</code>)
+ */
+ public static final String RHAPSODY_IMPORTER_IS_RHAPSODY_LIBRARY_RESOURCE_KEY = "IsRhapsodyLibraryResource";//$NON-NLS-1$
+
+ /**
+ * TODO : duplicated from RhapsodyShareFolderUtils
+ *
+ * @param resource
+ * a resource
+ * @return
+ * <code>true</code> if the resource represents a Rhapsody Library. <code>false</code> otherwise
+ */
+ public boolean isRhapsodyLibraryResource(final Resource resource) {
+ for (EObject content : resource.getContents()) {
+ if (content instanceof EAnnotation) {
+ EAnnotation annotation = (EAnnotation) content;
+ if (RHAPSODY_IMPORTER_EANNOTATION_SOURCE.equals(annotation.getSource())) {
+ return Boolean.TRUE.toString().equals(annotation.getDetails().get(RHAPSODY_IMPORTER_IS_RHAPSODY_LIBRARY_RESOURCE_KEY));
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ *
+ * @param eobject
+ * an eobject
+ * @return
+ * <code>true</code> if the eobject comes from a Rhapsody Library
+ */
+ public boolean isComingFromARhapsodyLibraryResource(final EObject eobject) {
+ return isRhapsodyLibraryResource(eobject.eResource());
+ }
+}
diff --git a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/build.properties b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/build.properties
index 4222821d41c..46bdf842fa8 100644
--- a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/build.properties
+++ b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/build.properties
@@ -5,6 +5,5 @@ bin.includes = META-INF/,\
plugin.xml,\
transform/,\
about.html,\
- OSGI-INF/,\
- models/
+ OSGI-INF/
src.includes = about.html
diff --git a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/models/AnsiCLibrary.di b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/models/AnsiCLibrary.di
deleted file mode 100755
index 27d5dafd653..00000000000
--- a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/models/AnsiCLibrary.di
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
- <pageList>
- <availablePage>
- <emfPageIdentifier href="AnsiCLibrary.notation#_r0SgwOmIEeG_gcDHG3asaQ"/>
- </availablePage>
- </pageList>
- <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
- <windows>
- <children xsi:type="di:TabFolder">
- <children>
- <emfPageIdentifier href="AnsiCLibrary.notation#_r0SgwOmIEeG_gcDHG3asaQ"/>
- </children>
- </children>
- </windows>
- </sashModel>
-</di:SashWindowsMngr>
diff --git a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/models/AnsiCLibrary.notation b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/models/AnsiCLibrary.notation
deleted file mode 100755
index 039e96e9c0b..00000000000
--- a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/models/AnsiCLibrary.notation
+++ /dev/null
@@ -1,348 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xmi:id="_r0SgwOmIEeG_gcDHG3asaQ" type="PapyrusUMLClassDiagram" name="AnsiC" measurementUnit="Pixel">
- <children xmi:type="notation:Shape" xmi:id="_txw6EOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tyJ7oOmIEeG_gcDHG3asaQ" source="ShadowFigure">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tyJ7oemIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tyJ7oumIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tyJ7o-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tyKisOmIEeG_gcDHG3asaQ" source="QualifiedName">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tyKisemIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
- </eAnnotations>
- <children xmi:type="notation:DecorationNode" xmi:id="_tyM-8OmIEeG_gcDHG3asaQ" type="5032"/>
- <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_txw6EemIEeG_gcDHG3asaQ" x="45" y="99"/>
- </children>
- <children xmi:type="notation:Shape" xmi:id="_t56wgOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t56wgumIEeG_gcDHG3asaQ" source="ShadowFigure">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t57XkOmIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t57XkemIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t57XkumIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t57Xk-mIEeG_gcDHG3asaQ" source="QualifiedName">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t57XlOmIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
- </eAnnotations>
- <children xmi:type="notation:DecorationNode" xmi:id="_t57XlemIEeG_gcDHG3asaQ" type="5032"/>
- <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_6j0jABydEduyofBvg4RL2w"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t56wgemIEeG_gcDHG3asaQ" x="171" y="171"/>
- </children>
- <children xmi:type="notation:Shape" xmi:id="_t_tPcOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t_t2gOmIEeG_gcDHG3asaQ" source="ShadowFigure">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t_t2gemIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t_udkOmIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t_udkemIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t_udkumIEeG_gcDHG3asaQ" source="QualifiedName">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t_udk-mIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
- </eAnnotations>
- <children xmi:type="notation:DecorationNode" xmi:id="_t_udlOmIEeG_gcDHG3asaQ" type="5032"/>
- <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_7W3wkBydEduyofBvg4RL2w"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t_tPcemIEeG_gcDHG3asaQ" x="45" y="171"/>
- </children>
- <children xmi:type="notation:Shape" xmi:id="_uE_YEOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uE__IOmIEeG_gcDHG3asaQ" source="ShadowFigure">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uE__IemIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uE__IumIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uE__I-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uE__JOmIEeG_gcDHG3asaQ" source="QualifiedName">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uE__JemIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
- </eAnnotations>
- <children xmi:type="notation:DecorationNode" xmi:id="_uE__JumIEeG_gcDHG3asaQ" type="5032"/>
- <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uE_YEemIEeG_gcDHG3asaQ" x="45" y="324"/>
- </children>
- <children xmi:type="notation:Shape" xmi:id="_uJrDwOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uJrq0emIEeG_gcDHG3asaQ" source="ShadowFigure">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uJrq0umIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uJsR4OmIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uJsR4emIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uJsR4umIEeG_gcDHG3asaQ" source="QualifiedName">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uJsR4-mIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
- </eAnnotations>
- <children xmi:type="notation:DecorationNode" xmi:id="_uJsR5OmIEeG_gcDHG3asaQ" type="5032"/>
- <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uJrq0OmIEeG_gcDHG3asaQ" x="45" y="27"/>
- </children>
- <children xmi:type="notation:Shape" xmi:id="_uOhukOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uOiVoOmIEeG_gcDHG3asaQ" source="ShadowFigure">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uOiVoemIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uOiVoumIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uOiVo-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uOiVpOmIEeG_gcDHG3asaQ" source="QualifiedName">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uOiVpemIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
- </eAnnotations>
- <children xmi:type="notation:DecorationNode" xmi:id="_uOiVpumIEeG_gcDHG3asaQ" type="5032"/>
- <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_8heigBydEduyofBvg4RL2w"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uOhukemIEeG_gcDHG3asaQ" x="45" y="396"/>
- </children>
- <children xmi:type="notation:Shape" xmi:id="_uSY64OmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uSZh8OmIEeG_gcDHG3asaQ" source="ShadowFigure">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uSZh8emIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uSZh8umIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uSZh8-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uSZh9OmIEeG_gcDHG3asaQ" source="QualifiedName">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uSZh9emIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
- </eAnnotations>
- <children xmi:type="notation:DecorationNode" xmi:id="_uSZh9umIEeG_gcDHG3asaQ" type="5032"/>
- <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_DLNPkByeEduyofBvg4RL2w"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uSY64emIEeG_gcDHG3asaQ" x="297" y="171"/>
- </children>
- <children xmi:type="notation:Shape" xmi:id="_uV6I8OmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uV6wAOmIEeG_gcDHG3asaQ" source="ShadowFigure">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uV6wAemIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uV6wAumIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uV6wA-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uV6wBOmIEeG_gcDHG3asaQ" source="QualifiedName">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uV6wBemIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
- </eAnnotations>
- <children xmi:type="notation:DecorationNode" xmi:id="_uV6wBumIEeG_gcDHG3asaQ" type="5032"/>
- <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_K-lFQByeEduyofBvg4RL2w"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uV6I8emIEeG_gcDHG3asaQ" x="45" y="252"/>
- </children>
- <children xmi:type="notation:Shape" xmi:id="_uZYTsOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uZY6wOmIEeG_gcDHG3asaQ" source="ShadowFigure">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uZY6wemIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uZY6wumIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uZY6w-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uZY6xOmIEeG_gcDHG3asaQ" source="QualifiedName">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uZY6xemIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
- </eAnnotations>
- <children xmi:type="notation:DecorationNode" xmi:id="_uZY6xumIEeG_gcDHG3asaQ" type="5032"/>
- <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_LTZesByeEduyofBvg4RL2w"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uZYTsemIEeG_gcDHG3asaQ" x="171" y="324"/>
- </children>
- <children xmi:type="notation:Shape" xmi:id="_uc13YOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uc13YumIEeG_gcDHG3asaQ" source="ShadowFigure">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uc2ecOmIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uc2ecemIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uc2ecumIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uc2ec-mIEeG_gcDHG3asaQ" source="QualifiedName">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uc2edOmIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
- </eAnnotations>
- <children xmi:type="notation:DecorationNode" xmi:id="_uc2edemIEeG_gcDHG3asaQ" type="5032"/>
- <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_V5vyUByeEduyofBvg4RL2w"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uc13YemIEeG_gcDHG3asaQ" x="171" y="252"/>
- </children>
- <children xmi:type="notation:Shape" xmi:id="_uf0S4OmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uf058OmIEeG_gcDHG3asaQ" source="ShadowFigure">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uf058emIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uf058umIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uf058-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uf059OmIEeG_gcDHG3asaQ" source="QualifiedName">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uf059emIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
- </eAnnotations>
- <children xmi:type="notation:DecorationNode" xmi:id="_uf059umIEeG_gcDHG3asaQ" type="5032"/>
- <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_YYWiwByeEduyofBvg4RL2w"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uf0S4emIEeG_gcDHG3asaQ" x="171" y="99"/>
- </children>
- <children xmi:type="notation:Shape" xmi:id="_ujIsoOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ujJTsOmIEeG_gcDHG3asaQ" source="ShadowFigure">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ujJTsemIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ujJTsumIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ujJTs-mIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ujJTtOmIEeG_gcDHG3asaQ" source="QualifiedName">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ujJTtemIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
- </eAnnotations>
- <children xmi:type="notation:DecorationNode" xmi:id="_ujJTtumIEeG_gcDHG3asaQ" type="5032"/>
- <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_a1wZUByeEduyofBvg4RL2w"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ujIsoemIEeG_gcDHG3asaQ" x="171" y="396"/>
- </children>
- <children xmi:type="notation:Shape" xmi:id="_umgJsOmIEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_umgJsumIEeG_gcDHG3asaQ" source="ShadowFigure">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_umgJs-mIEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_umgwwOmIEeG_gcDHG3asaQ" source="displayNameLabelIcon">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_umgwwemIEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_umgwwumIEeG_gcDHG3asaQ" source="QualifiedName">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_umgww-mIEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
- </eAnnotations>
- <children xmi:type="notation:DecorationNode" xmi:id="_umgwxOmIEeG_gcDHG3asaQ" type="5032"/>
- <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_vAIV4I7PEdySGvm5GN66HA"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_umgJsemIEeG_gcDHG3asaQ" x="45" y="468"/>
- </children>
- <children xmi:type="notation:Shape" xmi:id="_V3vUcOmJEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V3wikOmJEeG_gcDHG3asaQ" source="ShadowFigure">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V3wikemJEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V3wikumJEeG_gcDHG3asaQ" source="displayNameLabelIcon">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V3wik-mJEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_V3wilOmJEeG_gcDHG3asaQ" source="QualifiedName">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_V3wilemJEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
- </eAnnotations>
- <children xmi:type="notation:DecorationNode" xmi:id="_V3wilumJEeG_gcDHG3asaQ" type="5032"/>
- <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_V3dAkOmJEeG_gcDHG3asaQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V3vUcemJEeG_gcDHG3asaQ" x="482" y="324"/>
- </children>
- <children xmi:type="notation:Shape" xmi:id="_Y4Nb0OmJEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y4OC4OmJEeG_gcDHG3asaQ" source="ShadowFigure">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y4OC4emJEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y4OC4umJEeG_gcDHG3asaQ" source="displayNameLabelIcon">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y4OC4-mJEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y4OC5OmJEeG_gcDHG3asaQ" source="QualifiedName">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y4OC5emJEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
- </eAnnotations>
- <children xmi:type="notation:DecorationNode" xmi:id="_Y4OC5umJEeG_gcDHG3asaQ" type="5032"/>
- <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_Y3550OmJEeG_gcDHG3asaQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y4Nb0emJEeG_gcDHG3asaQ" x="648" y="324"/>
- </children>
- <children xmi:type="notation:Shape" xmi:id="_yJ0C8OmJEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yJ0qAOmJEeG_gcDHG3asaQ" source="ShadowFigure">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yJ0qAemJEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yJ0qAumJEeG_gcDHG3asaQ" source="displayNameLabelIcon">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yJ0qA-mJEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yJ0qBOmJEeG_gcDHG3asaQ" source="QualifiedName">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yJ0qBemJEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
- </eAnnotations>
- <children xmi:type="notation:DecorationNode" xmi:id="_yJ0qBumJEeG_gcDHG3asaQ" type="5032"/>
- <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_yJpD0OmJEeG_gcDHG3asaQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yJ0C8emJEeG_gcDHG3asaQ" x="483" y="396"/>
- </children>
- <children xmi:type="notation:Shape" xmi:id="_1rBf4OmJEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1rBf4umJEeG_gcDHG3asaQ" source="ShadowFigure">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1rCG8OmJEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1rCG8emJEeG_gcDHG3asaQ" source="displayNameLabelIcon">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1rCG8umJEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1rCG8-mJEeG_gcDHG3asaQ" source="QualifiedName">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1rCG9OmJEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
- </eAnnotations>
- <children xmi:type="notation:DecorationNode" xmi:id="_1rCG9emJEeG_gcDHG3asaQ" type="5032"/>
- <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_1q1SoOmJEeG_gcDHG3asaQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1rBf4emJEeG_gcDHG3asaQ" x="648" y="396"/>
- </children>
- <children xmi:type="notation:Shape" xmi:id="_6hSrQOmJEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6hSrQumJEeG_gcDHG3asaQ" source="ShadowFigure">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6hSrQ-mJEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6hSrROmJEeG_gcDHG3asaQ" source="displayNameLabelIcon">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6hSrRemJEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6hTSUOmJEeG_gcDHG3asaQ" source="QualifiedName">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6hTSUemJEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
- </eAnnotations>
- <children xmi:type="notation:DecorationNode" xmi:id="_6hTSUumJEeG_gcDHG3asaQ" type="5032"/>
- <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_6hHFEOmJEeG_gcDHG3asaQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6hSrQemJEeG_gcDHG3asaQ" x="483" y="468"/>
- </children>
- <children xmi:type="notation:Shape" xmi:id="_8kvJsOmJEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8kvJsumJEeG_gcDHG3asaQ" source="ShadowFigure">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8kvJs-mJEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8kvJtOmJEeG_gcDHG3asaQ" source="displayNameLabelIcon">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8kvwwOmJEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8kvwwemJEeG_gcDHG3asaQ" source="QualifiedName">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8kvwwumJEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
- </eAnnotations>
- <children xmi:type="notation:DecorationNode" xmi:id="_8kvww-mJEeG_gcDHG3asaQ" type="5032"/>
- <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_8kiVYOmJEeG_gcDHG3asaQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8kvJsemJEeG_gcDHG3asaQ" x="648" y="468"/>
- </children>
- <children xmi:type="notation:Shape" xmi:id="_J8FlUOmKEeG_gcDHG3asaQ" type="2012" fontName="Sans Serif" lineColor="0">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J8GMYOmKEeG_gcDHG3asaQ" source="ShadowFigure">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_J8GMYemKEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J8GMYumKEeG_gcDHG3asaQ" source="displayNameLabelIcon">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_J8GMY-mKEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J8GMZOmKEeG_gcDHG3asaQ" source="QualifiedName">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_J8GMZemKEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
- </eAnnotations>
- <children xmi:type="notation:DecorationNode" xmi:id="_J8GMZumKEeG_gcDHG3asaQ" type="5038"/>
- <element xmi:type="uml:Comment" href="AnsiCLibrary.uml#_J6d0sOmKEeG_gcDHG3asaQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J8FlUemKEeG_gcDHG3asaQ" x="549" y="171" width="157" height="46"/>
- </children>
- <children xmi:type="notation:Shape" xmi:id="_b2FFsOmKEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b2FswOmKEeG_gcDHG3asaQ" source="ShadowFigure">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b2FswemKEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b2FswumKEeG_gcDHG3asaQ" source="displayNameLabelIcon">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b2Fsw-mKEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b2FsxOmKEeG_gcDHG3asaQ" source="QualifiedName">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b2GT0OmKEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
- </eAnnotations>
- <children xmi:type="notation:DecorationNode" xmi:id="_b2GT0emKEeG_gcDHG3asaQ" type="5032"/>
- <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_b1zY4OmKEeG_gcDHG3asaQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b2FFsemKEeG_gcDHG3asaQ" x="482" y="99"/>
- </children>
- <children xmi:type="notation:Shape" xmi:id="_zMqxoOmKEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zMrYsOmKEeG_gcDHG3asaQ" source="ShadowFigure">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zMrYsemKEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zMr_wOmKEeG_gcDHG3asaQ" source="displayNameLabelIcon">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zMr_wemKEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zMr_wumKEeG_gcDHG3asaQ" source="QualifiedName">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zMr_w-mKEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
- </eAnnotations>
- <children xmi:type="notation:DecorationNode" xmi:id="_zMr_xOmKEeG_gcDHG3asaQ" type="5032"/>
- <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_zL7x0OmKEeG_gcDHG3asaQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zMqxoemKEeG_gcDHG3asaQ" x="484" y="254"/>
- </children>
- <children xmi:type="notation:Shape" xmi:id="_0_OUYOmKEeG_gcDHG3asaQ" type="2009" fontName="Sans Serif" lineColor="0">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_O7cOmKEeG_gcDHG3asaQ" source="ShadowFigure">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_O7cemKEeG_gcDHG3asaQ" key="ShadowFigure_Value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_O7cumKEeG_gcDHG3asaQ" source="displayNameLabelIcon">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_O7c-mKEeG_gcDHG3asaQ" key="displayNameLabelIcon_value" value="false"/>
- </eAnnotations>
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0_O7dOmKEeG_gcDHG3asaQ" source="QualifiedName">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0_O7demKEeG_gcDHG3asaQ" key="QualifiedNameDepth" value="1000"/>
- </eAnnotations>
- <children xmi:type="notation:DecorationNode" xmi:id="_0_O7dumKEeG_gcDHG3asaQ" type="5032"/>
- <element xmi:type="uml:PrimitiveType" href="AnsiCLibrary.uml#_0-8nkOmKEeG_gcDHG3asaQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0_OUYemKEeG_gcDHG3asaQ" x="646" y="252"/>
- </children>
- <styles xmi:type="notation:DiagramStyle" xmi:id="_r0SgwemIEeG_gcDHG3asaQ"/>
- <element xmi:type="uml:Model" href="AnsiCLibrary.uml#_DV8nkBv8EduZN5aJJITI5w"/>
- <edges xmi:type="notation:Connector" xmi:id="_NZwmEOmKEeG_gcDHG3asaQ" type="4013" source="_J8FlUOmKEeG_gcDHG3asaQ" target="_zMqxoOmKEeG_gcDHG3asaQ" lineColor="0">
- <styles xmi:type="notation:FontStyle" xmi:id="_NZwmEemKEeG_gcDHG3asaQ" fontName="Sans Serif"/>
- <element xsi:nil="true"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NZwmEumKEeG_gcDHG3asaQ" points="[-4, 14, 0, -50]$[14, 61, 18, -3]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nab7gOmKEeG_gcDHG3asaQ" id="(0.15346534653465346,0.7666666666666667)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nab7gemKEeG_gcDHG3asaQ" id="(0.81,0.14)"/>
- </edges>
- <edges xmi:type="notation:Connector" xmi:id="_OAB74OmKEeG_gcDHG3asaQ" type="4013" source="_J8FlUOmKEeG_gcDHG3asaQ" target="_0_OUYOmKEeG_gcDHG3asaQ" lineColor="0">
- <styles xmi:type="notation:FontStyle" xmi:id="_OAB74emKEeG_gcDHG3asaQ" fontName="Sans Serif"/>
- <element xsi:nil="true"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OAB74umKEeG_gcDHG3asaQ" points="[-7, 11, 0, -55]$[-20, 67, -13, 1]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OAP-UOmKEeG_gcDHG3asaQ" id="(0.7707006369426752,0.9130434782608695)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OAP-UemKEeG_gcDHG3asaQ" id="(0.17,0.16)"/>
- </edges>
- <edges xmi:type="notation:Connector" xmi:id="_gCpMwOmKEeG_gcDHG3asaQ" type="4013" source="_J8FlUOmKEeG_gcDHG3asaQ" target="_b2FFsOmKEeG_gcDHG3asaQ" lineColor="0">
- <styles xmi:type="notation:FontStyle" xmi:id="_gCpMwemKEeG_gcDHG3asaQ" fontName="Sans Serif"/>
- <element xsi:nil="true"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gCpMwumKEeG_gcDHG3asaQ" points="[0, -5, 0, 54]$[18, -58, 18, 1]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gC2BEOmKEeG_gcDHG3asaQ" id="(0.14012738853503184,0.10869565217391304)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gC2BEemKEeG_gcDHG3asaQ" id="(0.82,0.54)"/>
- </edges>
-</notation:Diagram>
diff --git a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/models/AnsiCLibrary.uml b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/models/AnsiCLibrary.uml
deleted file mode 100755
index 00ee3486b79..00000000000
--- a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/models/AnsiCLibrary.uml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:l2="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
- <uml:Model xmi:id="_DV8nkBv8EduZN5aJJITI5w" name="AnsiCLibrary">
- <ownedComment xmi:id="_J6d0sOmKEeG_gcDHG3asaQ" annotatedElement="_b1zY4OmKEeG_gcDHG3asaQ _0-8nkOmKEeG_gcDHG3asaQ _zL7x0OmKEeG_gcDHG3asaQ">
- <body>Platform independent fixed size types</body>
- </ownedComment>
- <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_5lVhgBydEduyofBvg4RL2w" name="char"/>
- <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_6j0jABydEduyofBvg4RL2w" name="double"/>
- <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_7W3wkBydEduyofBvg4RL2w" name="float"/>
- <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_7wRIABydEduyofBvg4RL2w" name="int"/>
- <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_8I6RgBydEduyofBvg4RL2w" name="void"/>
- <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_8heigBydEduyofBvg4RL2w" name="long"/>
- <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_DLNPkByeEduyofBvg4RL2w" name="long double"/>
- <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_K-lFQByeEduyofBvg4RL2w" name="short"/>
- <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_LTZesByeEduyofBvg4RL2w" name="unsigned int"/>
- <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_V5vyUByeEduyofBvg4RL2w" name="unsigned short"/>
- <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_YYWiwByeEduyofBvg4RL2w" name="unsigned char"/>
- <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_a1wZUByeEduyofBvg4RL2w" name="unsigned long"/>
- <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_vAIV4I7PEdySGvm5GN66HA" name="bool"/>
- <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_V3dAkOmJEeG_gcDHG3asaQ" name="int16_t"/>
- <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_Y3550OmJEeG_gcDHG3asaQ" name="uint16_t"/>
- <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_yJpD0OmJEeG_gcDHG3asaQ" name="int32_t"/>
- <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_1q1SoOmJEeG_gcDHG3asaQ" name="uint32_t"/>
- <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_6hHFEOmJEeG_gcDHG3asaQ" name="int64_t"/>
- <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_8kiVYOmJEeG_gcDHG3asaQ" name="uint64_t"/>
- <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_b1zY4OmKEeG_gcDHG3asaQ" name="wchar_t"/>
- <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_zL7x0OmKEeG_gcDHG3asaQ" name="int8_t"/>
- <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_0-8nkOmKEeG_gcDHG3asaQ" name="uint8_t"/>
- <profileApplication xmi:id="_a7EN4CAREdu9HM4q-Epbgg">
- <eAnnotations xmi:id="_a7EN4SAREdu9HM4q-Epbgg" source="http://www.eclipse.org/uml2/2.0.0/UML">
- <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2#/"/>
- </eAnnotations>
- <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
- </profileApplication>
- </uml:Model>
- <l2:ModelLibrary xmi:id="_c2eKoCAREdu9HM4q-Epbgg" base_Package="_DV8nkBv8EduZN5aJJITI5w"/>
-</xmi:XMI>
diff --git a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/plugin.xml b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/plugin.xml
index 1ae43c70e78..7fd68d444a1 100644
--- a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/plugin.xml
+++ b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/plugin.xml
@@ -119,10 +119,4 @@
name="Rhapsody Importer">
</page>
</extension>
- <extension
- point="org.eclipse.emf.ecore.uri_mapping">
- <mapping
- source="pathmap://PapyrusC_Cpp_LIBRARIES/"
- target="platform:/plugin/org.eclipse.papyrus.migration.rhapsody/models/"/>
- </extension>
</plugin>
diff --git a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/src/org/eclipse/papyrus/migration/rhapsody/transformations/RhapsodyImportTransformation.java b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/src/org/eclipse/papyrus/migration/rhapsody/transformations/RhapsodyImportTransformation.java
index 94f358e1e03..c746ea42046 100644
--- a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/src/org/eclipse/papyrus/migration/rhapsody/transformations/RhapsodyImportTransformation.java
+++ b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/src/org/eclipse/papyrus/migration/rhapsody/transformations/RhapsodyImportTransformation.java
@@ -437,7 +437,6 @@ public class RhapsodyImportTransformation extends AbstractImportTransformation {
allExtents.add(getInRhapsodyModel());
allExtents.add(getInoutNotationModel());
allExtents.add(getInOutUMLModel());
- allExtents.add(getPrimitivesCUMLModel());
allExtents.add(getSysML1_1Profile());
allExtents.add(getInUMLPrimitivesTypes());
allExtents.add(getInOutInternationalizationModel());
@@ -452,7 +451,7 @@ public class RhapsodyImportTransformation extends AbstractImportTransformation {
return umlPrimitivesTypes;
}
- private ModelExtent inRhapsodyModel, primitivesCTypesModel, umlPrimitivesTypes, labels;
+ private ModelExtent inRhapsodyModel, umlPrimitivesTypes, labels;
public ModelExtent getInRhapsodyModel() {
if (inRhapsodyModel == null) {
@@ -469,14 +468,6 @@ public class RhapsodyImportTransformation extends AbstractImportTransformation {
return sysML11Profile;
}
- public ModelExtent getPrimitivesCUMLModel() {
- // URI primitiveTypesURI = URI.createURI("pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml");
- URI primitiveTypesURI = URI.createURI("pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml");
- Resource primitiveTypes = resourceSet.getResource(primitiveTypesURI, true);
- primitivesCTypesModel = new BasicModelExtent(primitiveTypes.getContents());
- return primitivesCTypesModel;
- }
-
/**
*
diff --git a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/MarteProfile.qvto b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/MarteProfile.qvto
index 441fcc3b051..93b60a86665 100644
--- a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/MarteProfile.qvto
+++ b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/MarteProfile.qvto
@@ -33,8 +33,8 @@ modeltype UMLPrimitivesTypes "strict" uses 'http://www.eclipse.org/uml2/5.0.0/Ty
*
* Nevertheless, to avoid to lose this work, I keep this file in the plugin
*/
-transformation MarteProfile(in inModel:umlrhapsody, out outModel:uml, in ancyCprimitiveTypes:uml, in marteProfile:marte, in primitives:UMLPrimitivesTypes)
-extends Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in ancyCprimitiveTypes:uml, in primitives:UMLPrimitivesTypes)
+transformation MarteProfile(in inModel:umlrhapsody, out outModel:uml, in marteProfile:marte, in primitives:UMLPrimitivesTypes)
+extends Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in primitives:UMLPrimitivesTypes)
{
//TODO : remove this field
diff --git a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/Rhapsody2PapyrusNotation.qvto b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/Rhapsody2PapyrusNotation.qvto
index 990806cb2f3..3405dc9be7a 100644
--- a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/Rhapsody2PapyrusNotation.qvto
+++ b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/Rhapsody2PapyrusNotation.qvto
@@ -16,6 +16,7 @@ import RhapsodyToPapyrus;
import SysML11Diagrams;
import SysML11Profile;
import RhapsodyToPapyrusDiagamCommon;
+
import org.eclipse.papyrus.migration.rhapsody.blackboxes.Rhapsody2PapyrusNotationBlackboxes;
modeltype umlrhapsody "strict" uses 'http://www.eclipse.org/Papyrus/UMLRhapsody/1.0.0';
@@ -33,27 +34,27 @@ modeltype UMLPrimitivesTypes "strict" uses 'http://www.eclipse.org/uml2/5.0.0/Ty
modeltype properties "strict" uses 'http://www.eclipse.org/papyrus/internationalization/model';
-transformation Rhapsody2PapyrusNotation(in semantics : umlrhapsody, out graphics : notation, inout model:uml, in ancyCprimitiveTypes:uml ,in Sysml11Profile:sysml11, in primitives:UMLPrimitivesTypes, inout labels:properties)
-extends Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in ancyCprimitiveTypes:uml, in primitives:UMLPrimitivesTypes)
-access transformation Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in ancyCprimitiveTypes:uml, in primitives:UMLPrimitivesTypes),
-SysML11Diagrams(in semantics : umlrhapsody, out graphics : notation, inout model:uml, in ancyCprimitiveTypes:uml,in Sysml11Profile:sysml11, in primitives:UMLPrimitivesTypes,inout labels:properties),
-SysML11Profile(in inModel:umlrhapsody, out outModel:uml, in ancyCprimitiveTypes:uml,in Sysml11Profile:sysml11, in primitives:UMLPrimitivesTypes),
-SemanticInternationalization(in inModel:umlrhapsody, out outModel:uml, in ancyCprimitiveTypes:uml, in primitives:UMLPrimitivesTypes, inout labels:properties)
-//access transformation RhapsodyUtils
+transformation Rhapsody2PapyrusNotation(in semantics : umlrhapsody, out graphics : notation, inout model:uml, in Sysml11Profile:sysml11, in primitives:UMLPrimitivesTypes, inout labels:properties)
+extends Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in primitives:UMLPrimitivesTypes)
+access transformation Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in primitives:UMLPrimitivesTypes),
+SysML11Diagrams(in semantics : umlrhapsody, out graphics : notation, inout model:uml, in Sysml11Profile:sysml11, in primitives:UMLPrimitivesTypes,inout labels:properties),
+SysML11Profile(in inModel:umlrhapsody, out outModel:uml, in Sysml11Profile:sysml11, in primitives:UMLPrimitivesTypes),
+SemanticInternationalization(in inModel:umlrhapsody, out outModel:uml, in primitives:UMLPrimitivesTypes, inout labels:properties)
+
{
main() {
//we do the semantic transformation for UML
- var rhap2uml := new Rhapsody2PapyrusSemanticElements(semantics, model, ancyCprimitiveTypes, primitives);
+ var rhap2uml := new Rhapsody2PapyrusSemanticElements(semantics, model, primitives);
rhap2uml.transform();
- var internationalization:= new SemanticInternationalization(semantics, model, ancyCprimitiveTypes, primitives, labels);
+ var internationalization:= new SemanticInternationalization(semantics, model, primitives, labels);
internationalization.transform();
//we apply the sysml transformation when required
if(sysml11<>null){
- var sysmlProfile:=new SysML11Profile(semantics, model, ancyCprimitiveTypes, Sysml11Profile, primitives);
+ var sysmlProfile:=new SysML11Profile(semantics, model, Sysml11Profile, primitives);
sysmlProfile.transform();
};
@@ -65,7 +66,7 @@ SemanticInternationalization(in inModel:umlrhapsody, out outModel:uml, in ancyC
// graphics.objectsOfType(Shape)->select(type = '6000').map fixLayout();
//We do the SysML transformation to get SysML 1.1 diagram
- var iDiagramToSysML11 := new SysML11Diagrams(semantics, graphics, model, ancyCprimitiveTypes, Sysml11Profile, primitives, labels);
+ var iDiagramToSysML11 := new SysML11Diagrams(semantics, graphics, model, Sysml11Profile, primitives, labels);
iDiagramToSysML11.transform();
diff --git a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/Rhapsody2PapyrusSemanticElements.qvto b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/Rhapsody2PapyrusSemanticElements.qvto
index 94d9ebf7cea..ba2e7aabd2e 100644
--- a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/Rhapsody2PapyrusSemanticElements.qvto
+++ b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/Rhapsody2PapyrusSemanticElements.qvto
@@ -11,6 +11,7 @@
*****************************************************************************/
import org.eclipse.papyrus.migration.rhapsody.blackboxes.uml.AssociationOwnerHelper;
+import org.eclipse.papyrus.migration.rhapsody.blackboxes.rhapsody.RhapsodyHelper;
import RhapsodyToPapyrusUtils;
import SysMLRhapsodyUtils;
@@ -25,7 +26,7 @@ modeltype sysml11 "strict" uses 'http://www.eclipse.org/papyrus/0.7.0/SysML';
/**
* Transformation rules for importing a Rhapsody Semantic model into a UML model
*/
-transformation Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in ancyCprimitiveTypes:uml, in primitives:UMLPrimitivesTypes);
+transformation Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in primitives:UMLPrimitivesTypes);
property events : Set(IEvent) = null;
@@ -47,10 +48,17 @@ main() {
mapping umlrhapsody::IProject::iProjectToPapyrusModel() : uml::Model {
name:=self.name.replaceAll("\"","");
eAnnotations+=inModel.rootObjects()->selectByType(IProject)![IProject].createEAnnotationForVersioning();
+
+ //managing the rhapsodyType, importing them in the user model
+ var rhapsodyLibraries:Sequence(uml::Package):=getISubsystemsFromRhapsodyLibraries(self).map importRhapsodyTypeLibrary();
+
+ //we map the packaged elements
packagedElement+=self.Subsystems.map iDefaultSubsystemTypeToPackage();
-
- // import primitves types and C type
- //import uml basic primitives Types
+
+ //we add the rhapsody library at the end
+ packagedElement+=rhapsodyLibraries;//we add them add the end of the list. it is a kind of feature, to show firstly in the model the user elements
+
+ //import uml basic primitives Types by default
var importedPackages: Set(PackageImport);
var models : Set(Model) := primitives.objectsOfType(Model);
models->forEach(package){
@@ -59,21 +67,17 @@ mapping umlrhapsody::IProject::iProjectToPapyrusModel() : uml::Model {
};
importedPackages+=packageImport;
};
-
-
- //import ansi C library : TODO should be done by an other QVTo file!
- models := ancyCprimitiveTypes.objectsOfType(Model);
- models->forEach(package){
- var packageImport:=object PackageImport{
- importedPackage:=package;
- };
- importedPackages+=packageImport;
- };
-
packageImport+=importedPackages;
+}
-
+/**
+*
+* dedicated method to import only types from Rhapsody Library
+*/
+mapping umlrhapsody::ISubsystem::importRhapsodyTypeLibrary():uml::Package{
+ name:=self.name;
+ packagedElement += self.Types[IType].oclAsSet().map iTypeToUMLElement().oclAsType(uml::PackageableElement);
}
/**
@@ -224,9 +228,7 @@ mapping umlrhapsody::IType::iTypeToDefault():uml::Class{
*/
mapping umlrhapsody::IType::iTypeToUMLElement() : uml::Element
disjuncts
- umlrhapsody::IType::iTypeFromRhapsodyPredefinedTypesWithUMLPrimitivesTypes,
- umlrhapsody::IType::iTypeFromRhapsodyToUML_ANSI_C_CPPType,
- umlrhapsody::IType::toUMLDatatype,
+ umlrhapsody::IType::toUMLDatatype,
umlrhapsody::IType::toUMLInstanceSpecification,
umlrhapsody::IType::toUMLEnumeration,
umlrhapsody::IType::iTypeToUMLClass,
@@ -270,56 +272,6 @@ query umlrhapsody::IType::mapToBasicType(inout templateableElement:TemplateableE
// return templateableElement;
}
-/**
-*
-* This method allows to map Rhapsody Type defined into the file PredefinedTypes with the UML Primitives Types.
-* So, only these types are managed :
-* <ul>
-* <li>Boolean</li>
-* <li>Integer</li>
-* <li>Real</li>
-* <li>String</li>
-* <li>UnlimitedNatural</li>
-* </ul>
-*/
-mapping umlrhapsody::IType::iTypeFromRhapsodyPredefinedTypesWithUMLPrimitivesTypes():uml::Type when {self.isTranslatableIntoUMLPrimitivesTypes()}{
- init{
- var name:=self.name;
- var umlTypeName:String=null;
- umlTypeName:= switch{
- case (name="RhpBoolean") "Boolean";
- case (name="RhpInteger") "Integer";
- case (name="RhpReal") "Real";
- case (name="RhpString") "String";
- case (name="RhpUnlimitedNatural") "UnlimitedNatural";
- //others case not possible
- };
-
- if(not(umlTypeName.oclIsUndefined())){ //should always be true
- result:=primitives.objectsOfKind(Type)->select(t | t.name=umlTypeName)->selectOne(true);
- };
- }
-}
-
-/**
-*
-* Returns true if the IType can be mapped with a UML PrimitiveTypes from the UML Library
-*/
-helper umlrhapsody::IType::isTranslatableIntoUMLPrimitivesTypes():Boolean{
- var r:Boolean:=false;
- if(self.isRhapsodyPredefinedType()){
- var name:=self.name;
- r:=switch{
- case (name="RhpBoolean") true;
- case (name="RhpInteger") true;
- case (name="RhpReal") true;
- case (name="RhpString") true;
- case (name="RhpUnlimitedNatural") true;
- else {false};
- };
- };
- return r;
-}
/*
* Return true if the object must be converted into a UML DataType
@@ -332,7 +284,7 @@ helper umlrhapsody::IType::isTranslatableIntoUMLPrimitivesTypes():Boolean{
* MySpeed : kind = kind = Typedef and ValueType
*/
query umlrhapsody::IType::isUMLDataType(): Boolean {
- var res:=self.isRhapsodyDataType();
+ var res:=self.isRhapsodyDataType() or self.isRhapsodyLibraryType(); //we decided to import IType defined in Rhapsody library as DataType;
if(res){
res:= self.isKindLanguage() or self.isKindTypedef();
}else{
@@ -368,7 +320,8 @@ query umlrhapsody::IType::isUMLClass(): Boolean{
}
query umlrhapsody::IType::isUMLEnumeration():Boolean{
- return self.isKindEnumeration() and (self.isRhapsodyDataType() or self.isSysMLValueType());
+ return self.isKindEnumeration() and ((self.isRhapsodyDataType() or self.isSysMLValueType()) //TODO to check : is it required to check isDatatYpe and isSysmlValueType ?
+ or self.isRhapsodyLibraryType()); //to create Enumeration for Type defined ni RhapsodyLibrary
}
query umlrhapsody::IType::isUMLInstanceSpecification(): Boolean {
@@ -1167,71 +1120,6 @@ var direction: uml::ParameterDirectionKind;
}
-
-/**
-* Map Rhapsody Predefined Type on a Papyrus UML Predefined Types from ANSI C/CPP Lilbrary
-*
-*/
-mapping umlrhapsody::IType::iTypeFromRhapsodyToUML_ANSI_C_CPPType():uml::PrimitiveType when {self.isAManagedRhapsodyPredefinedTypes()}{
- init{
- result:= switch {
- case (self.name="bool") ancyCprimitiveTypes.objectsOfType(uml::PrimitiveType)->select(t|t.oclAsType(uml::PrimitiveType).name="bool")->any(true);
- case (self.name="char") ancyCprimitiveTypes.objectsOfType(uml::PrimitiveType)->select(t|t.oclAsType(uml::PrimitiveType).name="char")->any(true);
- case (self.name="double") ancyCprimitiveTypes.objectsOfType(uml::PrimitiveType)->select(t|t.oclAsType(uml::PrimitiveType).name="double")->any(true);
- case (self.name="float") ancyCprimitiveTypes.objectsOfType(uml::PrimitiveType)->select(t|t.oclAsType(uml::PrimitiveType).name="float")->any(true);
- case (self.name="int") ancyCprimitiveTypes.objectsOfType(uml::PrimitiveType)->select(t|t.oclAsType(uml::PrimitiveType).name="int")->any(true);
- case (self.name="long") ancyCprimitiveTypes.objectsOfType(uml::PrimitiveType)->select(t|t.oclAsType(uml::PrimitiveType).name="long")->any(true);
- case (self.name="long double") ancyCprimitiveTypes.objectsOfType(uml::PrimitiveType)->select(t|t.oclAsType(uml::PrimitiveType).name="long double")->any(true);
- case (self.name="unsigned char") ancyCprimitiveTypes.objectsOfType(uml::PrimitiveType)->select(t|t.oclAsType(uml::PrimitiveType).name="unsigned char")->any(true);
- case (self.name="unsigned int") ancyCprimitiveTypes.objectsOfType(uml::PrimitiveType)->select(t|t.oclAsType(uml::PrimitiveType).name="unsigned int")->any(true);
- case (self.name="unsigned long") ancyCprimitiveTypes.objectsOfType(uml::PrimitiveType)->select(t|t.oclAsType(uml::PrimitiveType).name="unsigned long")->any(true);
- case (self.name="void") ancyCprimitiveTypes.objectsOfType(uml::PrimitiveType)->select(t|t.oclAsType(uml::PrimitiveType).name="void")->any(true);
- //TODO unsigned short
- //TODO void*
- //TODO OMBoolean
- //TODO : OMString
- //TODO short
- //TODO char*
- //TODO : RiCString
- //TODO :RiCBoolean
-
-
- //from Rhapsody PredefinedTypes
- case (self.name="RhpCharacter") ancyCprimitiveTypes.objectsOfType(uml::PrimitiveType)->select(t|t.oclAsType(uml::PrimitiveType).name="char")->any(true);
-
- };
- }
-}
-
-/**
-*
-* Returns true if the IType is a Rhapsody Predefined Types mapped on a Papyrus UML ANSI C/C++ type
-*/
-query umlrhapsody::IType::isAManagedRhapsodyPredefinedTypes():Boolean{
- var res:Boolean = false;
- if(self.isRhapsodyPredefinedType() or self.isRhapsodyPredefinedC_Type() or self.isRhapsodyPredefinedCPP_Type()){
- var name:String:=self.name;
- res:= switch {
- case (name="bool") true;
- case (name="char") true;
- case (name="double") true;
- case (name="float") true;
- case (name="int") true;
- case (name="long") true;
- case (name="long double") true;
- case (name="unsigned char") true;
- case (name="unsigned int")true;
- case (name="unsigned long") true;
- case (name="void")true;
-
- //from Rhapsody Predefined Types
- case (self.name="RhpCharacter") true;
- else{false};
- };
- };
- return res;
-}
-
mapping umlrhapsody::IEvent::toSignalEvents(): uml::SignalEvent
{
name:= self.name.replaceAll("\"","");
diff --git a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/RhapsodyUtils.qvto b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/RhapsodyUtils.qvto
index bf2f6fe61dd..8402dccfc1c 100644
--- a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/RhapsodyUtils.qvto
+++ b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/RhapsodyUtils.qvto
@@ -11,6 +11,8 @@
*****************************************************************************/
import org.eclipse.papyrus.migration.rhapsody.blackboxes.Rhapsody2PapyrusNotationBlackboxes;
+import org.eclipse.papyrus.migration.rhapsody.blackboxes.rhapsody.RhapsodyHelper;
+
modeltype umlrhapsody "strict" uses 'http://www.eclipse.org/Papyrus/UMLRhapsody/1.0.0';
modeltype ecore "strict" uses 'http://www.eclipse.org/emf/2002/Ecore';
@@ -106,6 +108,13 @@ helper umlrhapsody::IDiagram::isRhapsodyMarteLibraryDiagram():Boolean {
}
/**
+* Returns true if the type come from a Rhapsody Library
+*/
+helper umlrhapsody::IType::isRhapsodyLibraryType():Boolean{
+ return isComingFromARhapsodyLibraryResource(self.oclAsType(EObject));
+}
+
+/**
* Return true if the type is a Rhapsody C type
*/
helper umlrhapsody::IType::isRhapsodyPredefinedC_Type():Boolean {
diff --git a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SemanticInternationalization.qvto b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SemanticInternationalization.qvto
index 7ac809b3f11..4c174d18ca6 100755
--- a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SemanticInternationalization.qvto
+++ b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SemanticInternationalization.qvto
@@ -25,8 +25,8 @@ modeltype properties "strict" uses 'http://www.eclipse.org/papyrus/international
* This transformation allows to import the label of elements defined in Rhapsody models
*/
-transformation SemanticInternationalization(in inModel:umlrhapsody, in outModel:uml, in ancyCprimitiveTypes:uml, in primitives:UMLPrimitivesTypes, out labels:properties)
-extends Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in ancyCprimitiveTypes:uml, in primitives:UMLPrimitivesTypes)
+transformation SemanticInternationalization(in inModel:umlrhapsody, in outModel:uml, in primitives:UMLPrimitivesTypes, out labels:properties)
+extends Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in primitives:UMLPrimitivesTypes)
{
main() {
@@ -135,12 +135,6 @@ helper NamedElement::getRhaposdyLabel():String{
};
- //mapping umlrhapsody::IType::iTypeFromRhapsodyPredefinedTypesWithUMLPrimitivesTypes():uml::Type when {self.isTranslatableIntoUMLPrimitivesTypes()}{
- //already managed by IType::iTypeToUMLElement
- if(rpyElement=null){
- rpyElement:=self.invresolveoneIn(IType::iTypeFromRhapsodyPredefinedTypesWithUMLPrimitivesTypes)->selectByKind(IModelElement)->any(true);
- };
-
//IAssociationEnd doesn't have the feature displayName
//mapping umlrhapsody::IAssociationEnd::toAssociationswithoutProp(): uml::Association
// if(rpyElement=null){
diff --git a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11BlockDefinitionDiagram.qvto b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11BlockDefinitionDiagram.qvto
index 55e804d92bf..605b74c4d65 100644
--- a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11BlockDefinitionDiagram.qvto
+++ b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11BlockDefinitionDiagram.qvto
@@ -26,9 +26,9 @@ modeltype UMLPrimitivesTypes "strict" uses 'http://www.eclipse.org/uml2/5.0.0/Ty
-transformation SysML11BlockDefinitionDiagram(in semantics : umlrhapsody, out graphics : notation, inout model:uml, in ancyCprimitiveTypes:uml ,in Sysml11Profile:sysml11, in primitives:UMLPrimitivesTypes)
-access transformation Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in ancyCprimitiveTypes:uml, in primitives:UMLPrimitivesTypes)
-extends Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in ancyCprimitiveTypes:uml, in primitives:UMLPrimitivesTypes)
+transformation SysML11BlockDefinitionDiagram(in semantics : umlrhapsody, out graphics : notation, inout model:uml ,in Sysml11Profile:sysml11, in primitives:UMLPrimitivesTypes)
+access transformation Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in primitives:UMLPrimitivesTypes)
+extends Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in primitives:UMLPrimitivesTypes)
{
//TODO : maybe we should have a transform method here
}
diff --git a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11Diagrams.qvto b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11Diagrams.qvto
index 0711bff42e4..01e838d894a 100644
--- a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11Diagrams.qvto
+++ b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11Diagrams.qvto
@@ -32,9 +32,9 @@ modeltype properties "strict" uses 'http://www.eclipse.org/papyrus/international
* This transformation does the SysML 1.1 Diagram creation from a Rhapsody Model
*
*/
-transformation SysML11Diagrams(in semantics : umlrhapsody, out graphics : notation, inout model:uml, in ancyCprimitiveTypes:uml,in Sysml11Profile:sysml11, in primitives:UMLPrimitivesTypes, inout labels:properties)
-access transformation Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in ancyCprimitiveTypes:uml, in primitives:UMLPrimitivesTypes)
-extends Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in ancyCprimitiveTypes:uml, in primitives:UMLPrimitivesTypes)
+transformation SysML11Diagrams(in semantics : umlrhapsody, out graphics : notation, inout model:uml,in Sysml11Profile:sysml11, in primitives:UMLPrimitivesTypes, inout labels:properties)
+access transformation Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in primitives:UMLPrimitivesTypes)
+extends Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in primitives:UMLPrimitivesTypes)
{
main() {
if(sysml11<>null){
diff --git a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11InternalBlockDiagram.qvto b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11InternalBlockDiagram.qvto
index fd85d473c8b..a9f668d4b85 100644
--- a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11InternalBlockDiagram.qvto
+++ b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11InternalBlockDiagram.qvto
@@ -32,9 +32,9 @@ modeltype UMLPrimitivesTypes "strict" uses 'http://www.eclipse.org/uml2/5.0.0/Ty
* floating label location
* managing comment link on link
*/
-transformation SysML11InternalBlockDiagram(in semantics : umlrhapsody, out graphics : notation, inout model:uml, in ancyCprimitiveTypes:uml ,in Sysml11Profile:sysml11, in primitives:UMLPrimitivesTypes)
-access transformation Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in ancyCprimitiveTypes:uml, in primitives:UMLPrimitivesTypes)
-extends Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in ancyCprimitiveTypes:uml, in primitives:UMLPrimitivesTypes)
+transformation SysML11InternalBlockDiagram(in semantics : umlrhapsody, out graphics : notation, inout model:uml, in Sysml11Profile:sysml11, in primitives:UMLPrimitivesTypes)
+access transformation Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in primitives:UMLPrimitivesTypes)
+extends Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in primitives:UMLPrimitivesTypes)
{
//nothing to do here
}
diff --git a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11ParametricDiagram.qvto b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11ParametricDiagram.qvto
index d0640f0569f..77861625eec 100644
--- a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11ParametricDiagram.qvto
+++ b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11ParametricDiagram.qvto
@@ -29,9 +29,9 @@ modeltype UMLPrimitivesTypes "strict" uses 'http://www.eclipse.org/uml2/5.0.0/Ty
* This transformation allows to import Rhapsody Parametric Diagram as Papyrus SysML 1.1 Parametric Diagram
*
*/
-transformation SysML11ParametricDiagram(in semantics : umlrhapsody, out graphics : notation, inout model:uml, in ancyCprimitiveTypes:uml ,in Sysml11Profile:sysml11, in primitives:UMLPrimitivesTypes)
-access transformation Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in ancyCprimitiveTypes:uml, in primitives:UMLPrimitivesTypes)
-extends Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in ancyCprimitiveTypes:uml, in primitives:UMLPrimitivesTypes)
+transformation SysML11ParametricDiagram(in semantics : umlrhapsody, out graphics : notation, inout model:uml ,in Sysml11Profile:sysml11, in primitives:UMLPrimitivesTypes)
+access transformation Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in primitives:UMLPrimitivesTypes)
+extends Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in primitives:UMLPrimitivesTypes)
{
//nothing to do here
}
diff --git a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11Profile.qvto b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11Profile.qvto
index 05097f89313..7ac86c53026 100644
--- a/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11Profile.qvto
+++ b/extraplugins/migration/rhapsody/org.eclipse.papyrus.migration.rhapsody/transform/SysML11Profile.qvto
@@ -30,8 +30,8 @@ modeltype UMLPrimitivesTypes "strict" uses 'http://www.eclipse.org/uml2/5.0.0/Ty
* WARNING : ISysMLPort is a part of Rhapsody metamodel and doesn't come from the SysML Rhapsody Profile
*
*/
-transformation SysML11Profile(in inModel:umlrhapsody, out outModel:uml, in ancyCprimitiveTypes:uml, in Sysml11Profile:sysml11, in primitives:UMLPrimitivesTypes)
-extends Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in ancyCprimitiveTypes:uml, in primitives:UMLPrimitivesTypes)
+transformation SysML11Profile(in inModel:umlrhapsody, out outModel:uml, in Sysml11Profile:sysml11, in primitives:UMLPrimitivesTypes)
+extends Rhapsody2PapyrusSemanticElements(in inModel:umlrhapsody, out outModel:uml, in primitives:UMLPrimitivesTypes)
{
main() {
diff --git a/plugins/doc/org.eclipse.papyrus.migration.rhapsody.doc/src/site/mediawiki/rhapsodyMigrationDev.mediawiki b/plugins/doc/org.eclipse.papyrus.migration.rhapsody.doc/src/site/mediawiki/rhapsodyMigrationDev.mediawiki
index 8cb9ab68bb9..65d7208df22 100755
--- a/plugins/doc/org.eclipse.papyrus.migration.rhapsody.doc/src/site/mediawiki/rhapsodyMigrationDev.mediawiki
+++ b/plugins/doc/org.eclipse.papyrus.migration.rhapsody.doc/src/site/mediawiki/rhapsodyMigrationDev.mediawiki
@@ -52,6 +52,7 @@ JUnit tests are provided too. They use EMF-Compare to check that the imported mo
The migration process is done in 3 steps:
#the ''*rpy'' file is parsed by the XText parser (plugin '''org.eclipse.papyrus.migration.rhapsody.parser''') and converted into a first simple model using a first EMF metamodel, '''RpySyntax''', provided by this plugin, then
#this first model is converted into a set of ''*.umlrhapsody'' by the class '''org.eclipse.papyrus.migration.rhapsody.importer.UMLRhapsodyImporter'''. There is a ''*.umlrhapsody'' file for the intial selected ''*rpy'' file, and one other for each dependency of the Rhapsody model (SysML, PredefinedTypes, ...)/
+#the ''*.umlrhapsody'' files representing a Rhapsody Library owns a EAnnotation at the root of the file, indicating they are Rhapsody Library.
#the ''*.umlrhapsody'' files are converted into a Papyrus model.
==What is the purpose of the UMLRhapsody metamodel?==
diff --git a/plugins/doc/org.eclipse.papyrus.migration.rhapsody.doc/src/site/mediawiki/rhapsodyMigrationUser.mediawiki b/plugins/doc/org.eclipse.papyrus.migration.rhapsody.doc/src/site/mediawiki/rhapsodyMigrationUser.mediawiki
index d8a467e9962..ea4c913ba04 100755
--- a/plugins/doc/org.eclipse.papyrus.migration.rhapsody.doc/src/site/mediawiki/rhapsodyMigrationUser.mediawiki
+++ b/plugins/doc/org.eclipse.papyrus.migration.rhapsody.doc/src/site/mediawiki/rhapsodyMigrationUser.mediawiki
@@ -179,11 +179,8 @@ The following stereotypes are supported (not complete list).
|}
===Properties's Type Mapping===
-Several mapping are possible depending on the case, here the list, by order, of these mappings:
-*the type is defined in the Rhapsody model too, we map it with the corresponding UML element created by the transformation.
-*the type is a primitive type which can be mapped on a type defined in the UML Primitives Types library, so we reference it.
-*the type can be mapped with a C++ type defined in the Papyrus Designer library, so we referenced it
-*the type can't be mapped on an existing element, in this case, we create a Class, with the name of the type. This class will be stored at the root of the UML Model file, and a message will be displayed in the '''Log''' during the mapping process.
+* The Rhapsody Types Libraries (like PredefinedTypes, PredefinedTypesC and PredefinedTypesCpp) are imported, when required, as UML Package in the imported Model. By this way, the types of the user model are preserved by the transformation.
+* To ease user experience, we always import the UML Predefined Types library, but we doesn't use the provided types in the imported model.
===Diagram Mapping===
*Papyrus Rhapsody Migration Tools allows to import Rhapsody SysML Diagrams as Papyrus SysML 1.1 Diagrams. The supported diagrams are:

Back to the top