diff options
| author | Laurent Fasani | 2017-07-26 09:27:17 +0000 |
|---|---|---|
| committer | Laurent Fasani | 2017-08-01 14:07:30 +0000 |
| commit | 88f65f8b97038d39d3172aba0c6c912ae12a03c1 (patch) | |
| tree | 93c9e21705e0d7f227217567f5b213a23c508277 | |
| parent | 3315c35daeb217e8747144fd49a9e7db73c4e76d (diff) | |
| download | org.eclipse.sirius-88f65f8b97038d39d3172aba0c6c912ae12a03c1.tar.gz org.eclipse.sirius-88f65f8b97038d39d3172aba0c6c912ae12a03c1.tar.xz org.eclipse.sirius-88f65f8b97038d39d3172aba0c6c912ae12a03c1.zip | |
[516669] Get the DRep from DRepDescriptor.repPath using DRep.uid
* Make Sirius use a generic mechanism to retrieve DRepresentation from
DRepresentationDescriptor.repPath using DRepresentation.uid
* Consequently, remove the obsolete dRepresentationURIFragmentStrategy
extension point
* Change viewpoint.ecore MM to add DRepresentation.uid feature.
* Add a migration participant to set DRep.uid and update
DRepDesc.repPath
* Add a migration participant test
* Complete release notes
Bug: 516669
Change-Id: Ic953dcc42e55ebc50a68b1377d8442c4ae01a253
Signed-off-by: Laurent Fasani <laurent.fasani@obeo.fr>
22 files changed, 700 insertions, 502 deletions
diff --git a/plugins/org.eclipse.sirius.doc/doc/Release_Notes.html b/plugins/org.eclipse.sirius.doc/doc/Release_Notes.html index a9ee3bac88..5ef608ab82 100644 --- a/plugins/org.eclipse.sirius.doc/doc/Release_Notes.html +++ b/plugins/org.eclipse.sirius.doc/doc/Release_Notes.html @@ -153,6 +153,12 @@ <code>org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure</code>, you must now use the new <code>SiriusDefaultSizeNodeFigure</code> instead. </li> + <li><span class="label label-success">Added</span> A migration has been added to add an + <code>uid</code> to all instances of type DRepresentation.This + <code>uid</code> is used to reference the DRepresentation from the DRepresentationDescriptor. + <code>DRepresentationDescriptor.repPath</code> has been changed to have + <code>uid</code> as fragment. + </li> </ul> <h2 id="sirius5.0.1">Changes in Sirius 5.0.1</h2> <p>Sirius 5.0.1 is a maintenance release with only bugfixes and small tweaks to the UI of diff --git a/plugins/org.eclipse.sirius.doc/doc/Release_Notes.textile b/plugins/org.eclipse.sirius.doc/doc/Release_Notes.textile index 1d501c3411..339d67b4c2 100644 --- a/plugins/org.eclipse.sirius.doc/doc/Release_Notes.textile +++ b/plugins/org.eclipse.sirius.doc/doc/Release_Notes.textile @@ -25,6 +25,7 @@ h4. Migrations * <span class="label label-success">Added</span> A migration has been added to fix diagram with edge labels corrupted (see "bugzilla #518870":https://bugs.eclipse.org/bugs/show_bug.cgi?id=518870 for more details). The corresponding version, stored in attribute version of viewpoint:DAnalysis of the aird file, is _12.1.0.201706291600_. * <span class="label label-success">Added</span> A new class @org.eclipse.sirius.ext.gmf.runtime.gef.ui.figures.SiriusDefaultSizeNodeFigure@ has been added in plugin @org.eclipse.sirius.ext.gmf.runtime@. The goal of the class is to workaround a "GMF bug":https://bugs.eclipse.org/bugs/show_bug.cgi?id=519250. So if you have created class which inherits from @org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure@, you must now use the new @SiriusDefaultSizeNodeFigure@ instead. +* <span class="label label-success">Added</span> A migration has been added to add an @uid@ to all instances of type DRepresentation.This @uid@ is used to reference the DRepresentation from the DRepresentationDescriptor. @DRepresentationDescriptor.repPath@ has been changed to have @uid@ as fragment. h2(#sirius5.0.1). Changes in Sirius 5.0.1 diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/migration/do_not_migrate/addRepresentationUid/addRepresentationUidMigration.aird b/plugins/org.eclipse.sirius.tests.junit/data/unit/migration/do_not_migrate/addRepresentationUid/addRepresentationUidMigration.aird new file mode 100644 index 0000000000..af51986b9d --- /dev/null +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/migration/do_not_migrate/addRepresentationUid/addRepresentationUidMigration.aird @@ -0,0 +1,45 @@ +<?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:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style"> + <viewpoint:DAnalysis xmi:id="_qslf4HKfEeeTqriorWNPUQ" selectedViews="_uPMD8HKfEeeTqriorWNPUQ" version="12.1.0.201707271000"> + <semanticResources>addRepresentationUidMigration.ecore</semanticResources> + <ownedViews xmi:type="viewpoint:DView" xmi:id="_uPMD8HKfEeeTqriorWNPUQ"> + <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/> + <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" xmi:id="_iw80IHKhEeeTqriorWNPUQ" name=" package entities" repPath="#_iapM8HKhEeeTqriorWNPUQ"> + <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> + <target xmi:type="ecore:EPackage" href="addRepresentationUidMigration.ecore#/"/> + </ownedRepresentationDescriptors> + </ownedViews> + </viewpoint:DAnalysis> + <diagram:DSemanticDiagram xmi:id="_iapM8HKhEeeTqriorWNPUQ" name=" package entities"> + <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_iapM8XKhEeeTqriorWNPUQ" source="DANNOTATION_CUSTOMIZATION_KEY"> + <data xmi:type="diagram:ComputedStyleDescriptionRegistry" xmi:id="_iapM8nKhEeeTqriorWNPUQ"/> + </ownedAnnotationEntries> + <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_ixcjYHKhEeeTqriorWNPUQ" source="GMF_DIAGRAMS"> + <data xmi:type="notation:Diagram" xmi:id="_ixcjYXKhEeeTqriorWNPUQ" type="Sirius" element="_iapM8HKhEeeTqriorWNPUQ" measurementUnit="Pixel"> + <children xmi:type="notation:Node" xmi:id="_ixdKcHKhEeeTqriorWNPUQ" type="2003" element="_iapM9HKhEeeTqriorWNPUQ"> + <children xmi:type="notation:Node" xmi:id="_ixeYkHKhEeeTqriorWNPUQ" type="5007"/> + <children xmi:type="notation:Node" xmi:id="_ixe_oHKhEeeTqriorWNPUQ" type="7004"> + <styles xmi:type="notation:SortingStyle" xmi:id="_ixe_oXKhEeeTqriorWNPUQ"/> + <styles xmi:type="notation:FilteringStyle" xmi:id="_ixe_onKhEeeTqriorWNPUQ"/> + </children> + <styles xmi:type="notation:ShapeStyle" xmi:id="_ixdKcXKhEeeTqriorWNPUQ" fontName="Segoe UI" fontHeight="8"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ixdKcnKhEeeTqriorWNPUQ"/> + </children> + <styles xmi:type="notation:DiagramStyle" xmi:id="_ixcjYnKhEeeTqriorWNPUQ"/> + </data> + </ownedAnnotationEntries> + <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_iapM9HKhEeeTqriorWNPUQ" name="NewEClass1" tooltipText=".NewEClass1"> + <target xmi:type="ecore:EClass" href="addRepresentationUidMigration.ecore#//NewEClass1"/> + <semanticElements xmi:type="ecore:EClass" href="addRepresentationUidMigration.ecore#//NewEClass1"/> + <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_iapM9XKhEeeTqriorWNPUQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="GradientTopToBottom"> + <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> + </ownedStyle> + <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> + </ownedDiagramElements> + <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> + <filterVariableHistory xmi:type="diagram:FilterVariableHistory" xmi:id="_iapM9nKhEeeTqriorWNPUQ"/> + <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> + <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/> + <target xmi:type="ecore:EPackage" href="addRepresentationUidMigration.ecore#/"/> + </diagram:DSemanticDiagram> +</xmi:XMI> diff --git a/plugins/org.eclipse.sirius.tests.junit/data/unit/migration/do_not_migrate/addRepresentationUid/addRepresentationUidMigration.ecore b/plugins/org.eclipse.sirius.tests.junit/data/unit/migration/do_not_migrate/addRepresentationUid/addRepresentationUidMigration.ecore new file mode 100644 index 0000000000..1e360daa9e --- /dev/null +++ b/plugins/org.eclipse.sirius.tests.junit/data/unit/migration/do_not_migrate/addRepresentationUid/addRepresentationUidMigration.ecore @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ecore:EPackage 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" name=""> + <eClassifiers xsi:type="ecore:EClass" name="NewEClass1"/> +</ecore:EPackage> diff --git a/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/diagram/migration/AddRepresentationUidMigrationTest.java b/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/diagram/migration/AddRepresentationUidMigrationTest.java new file mode 100644 index 0000000000..58c104f705 --- /dev/null +++ b/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/diagram/migration/AddRepresentationUidMigrationTest.java @@ -0,0 +1,150 @@ +/******************************************************************************* + * Copyright (c) 2017 Obeo. + * 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: + * Obeo - initial API and implementation + *******************************************************************************/ +package org.eclipse.sirius.tests.unit.diagram.migration; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Collections; + +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ExtensibleURIConverterImpl; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.sirius.business.internal.migration.DRepInDViewToRootObjectsAndWithDRepDescRepPathMigrationParticipant; +import org.eclipse.sirius.business.internal.migration.RepresentationsFileMigrationService; +import org.eclipse.sirius.common.tools.api.util.StringUtil; +import org.eclipse.sirius.ecore.extender.tool.api.ModelUtils; +import org.eclipse.sirius.tests.SiriusTestsPlugin; +import org.eclipse.sirius.tests.support.api.SiriusTestCase; +import org.eclipse.sirius.tools.api.command.ICommandFactory; +import org.eclipse.sirius.viewpoint.DAnalysis; +import org.eclipse.sirius.viewpoint.DRepresentation; +import org.osgi.framework.Version; +import org.xml.sax.Attributes; +import org.xml.sax.SAXException; +import org.xml.sax.helpers.DefaultHandler; + +/** + * Test class to test the AddRepresentationUidMigrationParticipant participant. + * + * @author lfasani + */ +public class AddRepresentationUidMigrationTest extends SiriusTestCase { + + private static final String PATH = "/data/unit/migration/do_not_migrate/addRepresentationUid/"; + + private static final String SESSION_RESOURCE_NAME = "addRepresentationUidMigration.aird"; + + private static final String SEMANTIC_MODEL_FILENAME = "addRepresentationUidMigration.ecore"; + + @Override + protected void setUp() throws Exception { + copyFilesToTestProject(SiriusTestsPlugin.PLUGIN_ID, PATH, SEMANTIC_MODEL_FILENAME, SESSION_RESOURCE_NAME); + } + + /** + * Test that the data were not migrated on the repo. It allows to check the effect of the migration in the other + * test. + */ + public void testMigrationIsNeededOnData() { + Version participantVersion = DRepInDViewToRootObjectsAndWithDRepDescRepPathMigrationParticipant.MIGRATION_VERSION_REP_PATH_UID; + + // Check that the representation file migration is needed. + URI uri = URI.createPlatformPluginURI(SiriusTestsPlugin.PLUGIN_ID + PATH + SESSION_RESOURCE_NAME, true); + Version loadedVersion = checkRepresentationFileMigrationStatus(uri, true); + assertTrue("The AddRepresentationUidMigrationParticipant migration should be required on test data.", participantVersion.compareTo(loadedVersion) > 0); + + checkFileDoNotContainDRepresentationUid(uri); + } + + private void checkFileDoNotContainDRepresentationUid(URI uri) { + ExtensibleURIConverterImpl uriConverterImpl = new ExtensibleURIConverterImpl(); + InputStream inputStream = null; + try { + inputStream = uriConverterImpl.createInputStream(uri); + SAXParserFactory factory = SAXParserFactory.newInstance(); + SAXParser saxParser = factory.newSAXParser(); + saxParser.parse(inputStream, new DefaultHandler() { + + @Override + public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { + if (qName.equals("diagram:DSemanticDiagram") && !StringUtil.isEmpty(attributes.getValue("uid"))) { + throw new SAXException("There should not be any uid attribute for diagram:DSemanticDiagram tag"); + } + } + }); + } catch (Exception e) { + failCheckData(); + } finally { + if (inputStream != null) { + try { + inputStream.close(); + } catch (final IOException e) { + failCheckData(); + } + } + } + } + + private void failCheckData() { + fail("Check the test data, we should not fail here."); + } + + /** + * Check the migration is done and does not produce errors during load. + */ + public void testAddRepresentationUidMigrationParticipantMigrationDone() { + ResourceSet set = new ResourceSetImpl(); + DAnalysis analysis = null; + try { + analysis = (DAnalysis) ModelUtils.load(URI.createPlatformResourceURI(TEMPORARY_PROJECT_NAME + "/" + SESSION_RESOURCE_NAME, true), set); + } catch (IOException e) { + failCheckData(); + } + + // Check that the migration was done. + assertNotNull("Check the representation file test data.", analysis); + + // The version will change on save, so migration service will still + // indicate that the migration is needed. + String version = analysis.getVersion(); + assertTrue("Before save, the migration framework should return true even if the migration has been done during load.", + RepresentationsFileMigrationService.getInstance().isMigrationNeeded(Version.parseVersion(version))); + + try { + analysis.eResource().save(Collections.emptyMap()); + } catch (IOException e) { + failCheckData(); + } + // save should update the version. + version = analysis.getVersion(); + assertFalse("The version tag should now be set telling that the migration was done.", RepresentationsFileMigrationService.getInstance().isMigrationNeeded(Version.parseVersion(version))); + checkMigration(analysis); + + assertFalse(getErrorLoggersMessage(), doesAnErrorOccurs()); + } + + private void checkMigration(DAnalysis dAnalysis) { + dAnalysis.getOwnedViews().stream().flatMap(v -> v.getOwnedRepresentationDescriptors().stream()).forEachOrdered(repDesc -> { + DRepresentation representation = repDesc.getRepresentation(); + assertNotNull("DRepresentationDescriptor.representation is null. DRepresentationDescriptor.repPath uri may not contain the DRep.uid fragment ", representation); + assertTrue("The DRepresentation.uid is empty.", !StringUtil.isEmpty(representation.getUid())); + }); + } + + @Override + protected ICommandFactory getCommandFactory() { + return null; + } +} diff --git a/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/diagram/migration/DRepInDViewToRootObjectsAndWithDRepDescRepPathMigrationTest.java b/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/diagram/migration/DRepInDViewToRootObjectsAndWithDRepDescRepPathMigrationTest.java index a53ff63326..227822457e 100644 --- a/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/diagram/migration/DRepInDViewToRootObjectsAndWithDRepDescRepPathMigrationTest.java +++ b/plugins/org.eclipse.sirius.tests.junit/src/org/eclipse/sirius/tests/unit/diagram/migration/DRepInDViewToRootObjectsAndWithDRepDescRepPathMigrationTest.java @@ -73,7 +73,7 @@ public class DRepInDViewToRootObjectsAndWithDRepDescRepPathMigrationTest extends * effect of the migration in the other test. */ public void testMigrationIsNeededOnData() { - Version dRepresentationMoveVersion = DRepInDViewToRootObjectsAndWithDRepDescRepPathMigrationParticipant.MIGRATION_VERSION; + Version dRepresentationMoveVersion = DRepInDViewToRootObjectsAndWithDRepDescRepPathMigrationParticipant.MIGRATION_VERSION_REP_IN_DVIEW_TO_ROOT_OBJECT; // Check that the representation file migration is needed. URI uri = URI.createPlatformPluginURI(SiriusTestsPlugin.PLUGIN_ID + PATH + SESSION_RESOURCE_NAME, true); diff --git a/plugins/org.eclipse.sirius.ui/plugin.properties b/plugins/org.eclipse.sirius.ui/plugin.properties index af672d1fa7..1e7a0740fd 100644 --- a/plugins/org.eclipse.sirius.ui/plugin.properties +++ b/plugins/org.eclipse.sirius.ui/plugin.properties @@ -1481,6 +1481,7 @@ _UI_DecorationDescription_tooltipExpression_description = Expression that provid _UI_DecorationDescription_distributionDirection_description = Used when there are more than one decoration at a given position. _UI_DRepresentationDescriptor_repPath_feature = Rep Path _UI_DAnnotation_references_feature = References +_UI_DRepresentation_uid_feature = Uid CreateEMFModelWizard_windowTitle=Create model diff --git a/plugins/org.eclipse.sirius.ui/src-gen/org/eclipse/sirius/viewpoint/provider/DRepresentationItemProvider.java b/plugins/org.eclipse.sirius.ui/src-gen/org/eclipse/sirius/viewpoint/provider/DRepresentationItemProvider.java index c51aef644a..b5d696ebd6 100644 --- a/plugins/org.eclipse.sirius.ui/src-gen/org/eclipse/sirius/viewpoint/provider/DRepresentationItemProvider.java +++ b/plugins/org.eclipse.sirius.ui/src-gen/org/eclipse/sirius/viewpoint/provider/DRepresentationItemProvider.java @@ -58,6 +58,7 @@ public class DRepresentationItemProvider extends DocumentedElementItemProvider { addOwnedRepresentationElementsPropertyDescriptor(object); addRepresentationElementsPropertyDescriptor(object); addNamePropertyDescriptor(object); + addUidPropertyDescriptor(object); } return itemPropertyDescriptors; } @@ -101,6 +102,18 @@ public class DRepresentationItemProvider extends DocumentedElementItemProvider { } /** + * This adds a property descriptor for the Uid feature. <!-- begin-user-doc --> <!-- end-user-doc --> + * + * @generated + */ + protected void addUidPropertyDescriptor(Object object) { + itemPropertyDescriptors + .add(createItemPropertyDescriptor(((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(), getResourceLocator(), getString("_UI_DRepresentation_uid_feature"), //$NON-NLS-1$ + getString("_UI_PropertyDescriptor_description", "_UI_DRepresentation_uid_feature", "_UI_DRepresentation_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + ViewpointPackage.Literals.DREPRESENTATION__UID, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)); + } + + /** * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}. <!-- begin-user-doc --> <!-- @@ -157,6 +170,7 @@ public class DRepresentationItemProvider extends DocumentedElementItemProvider { switch (notification.getFeatureID(DRepresentation.class)) { case ViewpointPackage.DREPRESENTATION__NAME: + case ViewpointPackage.DREPRESENTATION__UID: fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true)); return; case ViewpointPackage.DREPRESENTATION__EANNOTATIONS: diff --git a/plugins/org.eclipse.sirius/model/viewpoint.ecore b/plugins/org.eclipse.sirius/model/viewpoint.ecore index 1e773f9f22..e8228674cd 100644 --- a/plugins/org.eclipse.sirius/model/viewpoint.ecore +++ b/plugins/org.eclipse.sirius/model/viewpoint.ecore @@ -121,6 +121,7 @@ upperBound="-1" eType="#//description/AnnotationEntry" containment="true"/> <eStructuralFeatures xsi:type="ecore:EReference" name="uiState" eType="#//UIState" transient="true" containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="uid" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="DRepresentationElement" abstract="true" eSuperTypes="#//DMappingBased #//DStylizable #//DRefreshable #//DSemanticDecorator"> diff --git a/plugins/org.eclipse.sirius/model/viewpoint.genmodel b/plugins/org.eclipse.sirius/model/viewpoint.genmodel index f0b646c1df..8df6bd8eb2 100644 --- a/plugins/org.eclipse.sirius/model/viewpoint.genmodel +++ b/plugins/org.eclipse.sirius/model/viewpoint.genmodel @@ -69,6 +69,7 @@ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute viewpoint.ecore#//DRepresentation/name"/> <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference viewpoint.ecore#//DRepresentation/ownedAnnotationEntries"/> <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference viewpoint.ecore#//DRepresentation/uiState"/> + <genFeatures createChild="false" ecoreFeature="ecore:EAttribute viewpoint.ecore#//DRepresentation/uid"/> </genClasses> <genClasses image="false" ecoreClass="viewpoint.ecore#//DRepresentationElement"> <genFeatures createChild="false" ecoreFeature="ecore:EAttribute viewpoint.ecore#//DRepresentationElement/name"/> diff --git a/plugins/org.eclipse.sirius/plugin.properties b/plugins/org.eclipse.sirius/plugin.properties index 0c5c573888..f923a6dc92 100644 --- a/plugins/org.eclipse.sirius/plugin.properties +++ b/plugins/org.eclipse.sirius/plugin.properties @@ -73,7 +73,6 @@ extension-point.viewpointResourceType.name = org.eclipse.sirius.viewpointResourc extension-point.viewpointSpecificationModel.name = org.eclipse.sirius.viewpointSpecificationModel extension-point.modelOperationManager.name= org.eclipse.sirius.modelOperationManager extension-point.dRepresentationLocationRule.name= org.eclipse.sirius.dRepresentationLocationRule -extension-point.dRepresentationURIFragmentStrategy.name= org.eclipse.sirius.dRepresentationURIFragmentStrategy extension.modelingMarker.name = Modeling Marker extension.sessionEditingDomainFactory.name = Local Session EditingDomain Factory extension.siriusMarker.name = Sirius Marker diff --git a/plugins/org.eclipse.sirius/plugin.xml b/plugins/org.eclipse.sirius/plugin.xml index 97af602fe1..3cb88180d8 100644 --- a/plugins/org.eclipse.sirius/plugin.xml +++ b/plugins/org.eclipse.sirius/plugin.xml @@ -31,7 +31,6 @@ <extension-point id="interpretedExpressionQueryProvider" name="%extension-point.interpretedExpressionQueryProvider.name" schema="schema/interpretedExpressionQueryProvider.exsd"/> <extension-point id="modelOperationManager" name="%extension-point.modelOperationManager.name" schema="schema/modelOperationManager.exsd"/> <extension-point id="dRepresentationLocationRule" name="%extension-point.dRepresentationLocationRule.name" schema="schema/dRepresentationLocationRule.exsd"/> - <extension-point id="dRepresentationURIFragmentStrategy" name="%extension-point.dRepresentationURIFragmentStrategy.name" schema="schema/dRepresentationURIFragmentStrategy.exsd"/> <extension point="org.eclipse.emf.ecore.generated_package"> <!-- @generated viewpoint --> @@ -425,10 +424,6 @@ class="org.eclipse.sirius.business.internal.migration.EmptyMigrationForPropertyViewMigrationParticipant" kind="VSM"> </participant> - <participant - class="org.eclipse.sirius.business.internal.migration.ReplaceRepresentationByRepPathMigrationParticipant" - kind="RepresentationsFile"> - </participant> </extension> <extension point="org.eclipse.emf.ecore.generated_package"> <!-- @generated contribution --> diff --git a/plugins/org.eclipse.sirius/schema/dRepresentationURIFragmentStrategy.exsd b/plugins/org.eclipse.sirius/schema/dRepresentationURIFragmentStrategy.exsd deleted file mode 100644 index 05f8a0edff..0000000000 --- a/plugins/org.eclipse.sirius/schema/dRepresentationURIFragmentStrategy.exsd +++ /dev/null @@ -1,90 +0,0 @@ -<?xml version='1.0' encoding='UTF-8'?> -<!-- Schema file written by PDE --> -<schema targetNamespace="org.eclipse.sirius" xmlns="http://www.w3.org/2001/XMLSchema"> -<annotation> - <appInfo> - <meta.schema plugin="org.eclipse.sirius" id="dRepresentationURIFragmentStrategy" name="org.eclipse.sirius.dRepresentationURIFragmentStrategy"/> - </appInfo> - <documentation> - This extension point allows to extend the way the DRepresentationDescriptor#repPath URI fragment is set and interpreted. - </documentation> - </annotation> - - <element name="extension"> - <annotation> - <appInfo> - <meta.element /> - </appInfo> - </annotation> - <complexType> - <sequence> - <element ref="strategy"/> - </sequence> - <attribute name="point" type="string" use="required"> - <annotation> - <documentation> - - </documentation> - </annotation> - </attribute> - <attribute name="id" type="string"> - <annotation> - <documentation> - - </documentation> - </annotation> - </attribute> - <attribute name="name" type="string"> - <annotation> - <documentation> - - </documentation> - <appInfo> - <meta.attribute translatable="true"/> - </appInfo> - </annotation> - </attribute> - </complexType> - </element> - - <element name="strategy"> - <complexType> - <attribute name="class" type="string"> - <annotation> - <documentation> - - </documentation> - <appInfo> - <meta.attribute kind="java" basedOn=":org.eclipse.sirius.business.internal.representation.DRepresentationURIFragmentStrategy"/> - </appInfo> - </annotation> - </attribute> - </complexType> - </element> - - <annotation> - <appInfo> - <meta.section type="since"/> - </appInfo> - <documentation> - 5.0 - </documentation> - </annotation> - - - - - <annotation> - <appInfo> - <meta.section type="copyright"/> - </appInfo> - <documentation> - Copyright (c) 2017 THALES GLOBAL SERVICES<br> -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 -<a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a> - </documentation> - </annotation> - -</schema> diff --git a/plugins/org.eclipse.sirius/src-gen/org/eclipse/sirius/viewpoint/DRepresentation.java b/plugins/org.eclipse.sirius/src-gen/org/eclipse/sirius/viewpoint/DRepresentation.java index 9f72bfdacd..c66e95e523 100644 --- a/plugins/org.eclipse.sirius/src-gen/org/eclipse/sirius/viewpoint/DRepresentation.java +++ b/plugins/org.eclipse.sirius/src-gen/org/eclipse/sirius/viewpoint/DRepresentation.java @@ -130,4 +130,30 @@ public interface DRepresentation extends DocumentedElement, DRefreshable, DModel */ void setUiState(UIState value); + /** + * Returns the value of the '<em><b>Uid</b></em>' attribute. <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Uid</em>' attribute isn't clear, there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * + * @return the value of the '<em>Uid</em>' attribute. + * @see #setUid(String) + * @see org.eclipse.sirius.viewpoint.ViewpointPackage#getDRepresentation_Uid() + * @model + * @generated + */ + String getUid(); + + /** + * Sets the value of the '{@link org.eclipse.sirius.viewpoint.DRepresentation#getUid <em>Uid</em>}' attribute. <!-- + * begin-user-doc --> <!-- end-user-doc --> + * + * @param value + * the new value of the '<em>Uid</em>' attribute. + * @see #getUid() + * @generated + */ + void setUid(String value); + } // DRepresentation diff --git a/plugins/org.eclipse.sirius/src-gen/org/eclipse/sirius/viewpoint/ViewpointPackage.java b/plugins/org.eclipse.sirius/src-gen/org/eclipse/sirius/viewpoint/ViewpointPackage.java index 94a3b4e723..046e804425 100644 --- a/plugins/org.eclipse.sirius/src-gen/org/eclipse/sirius/viewpoint/ViewpointPackage.java +++ b/plugins/org.eclipse.sirius/src-gen/org/eclipse/sirius/viewpoint/ViewpointPackage.java @@ -413,13 +413,21 @@ public interface ViewpointPackage extends EPackage { int DREPRESENTATION__UI_STATE = DescriptionPackage.DOCUMENTED_ELEMENT_FEATURE_COUNT + 5; /** + * The feature id for the '<em><b>Uid</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc --> + * + * @generated + * @ordered + */ + int DREPRESENTATION__UID = DescriptionPackage.DOCUMENTED_ELEMENT_FEATURE_COUNT + 6; + + /** * The number of structural features of the '<em>DRepresentation</em>' class. <!-- begin-user-doc --> <!-- * end-user-doc --> * * @generated * @ordered */ - int DREPRESENTATION_FEATURE_COUNT = DescriptionPackage.DOCUMENTED_ELEMENT_FEATURE_COUNT + 6; + int DREPRESENTATION_FEATURE_COUNT = DescriptionPackage.DOCUMENTED_ELEMENT_FEATURE_COUNT + 7; /** * The meta object id for the '{@link org.eclipse.sirius.viewpoint.impl.DRepresentationElementImpl @@ -1545,6 +1553,17 @@ public interface ViewpointPackage extends EPackage { EReference getDRepresentation_UiState(); /** + * Returns the meta object for the attribute '{@link org.eclipse.sirius.viewpoint.DRepresentation#getUid + * <em>Uid</em>}'. <!-- begin-user-doc --> <!-- end-user-doc --> + * + * @return the meta object for the attribute '<em>Uid</em>'. + * @see org.eclipse.sirius.viewpoint.DRepresentation#getUid() + * @see #getDRepresentation() + * @generated + */ + EAttribute getDRepresentation_Uid(); + + /** * Returns the meta object for class '{@link org.eclipse.sirius.viewpoint.DRepresentationElement <em>DRepresentation * Element</em>}'. <!-- begin-user-doc --> <!-- end-user-doc --> * @@ -2392,6 +2411,14 @@ public interface ViewpointPackage extends EPackage { EReference DREPRESENTATION__UI_STATE = ViewpointPackage.eINSTANCE.getDRepresentation_UiState(); /** + * The meta object literal for the '<em><b>Uid</b></em>' attribute feature. <!-- begin-user-doc --> <!-- + * end-user-doc --> + * + * @generated + */ + EAttribute DREPRESENTATION__UID = ViewpointPackage.eINSTANCE.getDRepresentation_Uid(); + + /** * The meta object literal for the '{@link org.eclipse.sirius.viewpoint.impl.DRepresentationElementImpl * <em>DRepresentation Element</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc --> * diff --git a/plugins/org.eclipse.sirius/src-gen/org/eclipse/sirius/viewpoint/impl/DRepresentationImpl.java b/plugins/org.eclipse.sirius/src-gen/org/eclipse/sirius/viewpoint/impl/DRepresentationImpl.java index a7d3300f11..f84d014e1d 100644 --- a/plugins/org.eclipse.sirius/src-gen/org/eclipse/sirius/viewpoint/impl/DRepresentationImpl.java +++ b/plugins/org.eclipse.sirius/src-gen/org/eclipse/sirius/viewpoint/impl/DRepresentationImpl.java @@ -20,6 +20,7 @@ import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.ecore.util.InternalEList; import org.eclipse.sirius.viewpoint.DRefreshable; import org.eclipse.sirius.viewpoint.DRepresentation; @@ -105,6 +106,25 @@ public abstract class DRepresentationImpl extends DocumentedElementImpl implemen protected UIState uiState; /** + * The default value of the '{@link #getUid() <em>Uid</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc + * --> + * + * @see #getUid() + * @generated + * @ordered + */ + protected static final String UID_EDEFAULT = null; + + /** + * The cached value of the '{@link #getUid() <em>Uid</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc --> + * + * @see #getUid() + * @generated + * @ordered + */ + protected String uid = DRepresentationImpl.UID_EDEFAULT; + + /** * <!-- begin-user-doc --> <!-- end-user-doc --> * * @generated NOT @@ -112,6 +132,7 @@ public abstract class DRepresentationImpl extends DocumentedElementImpl implemen protected DRepresentationImpl() { super(); setUiState(ViewpointFactory.eINSTANCE.createUIState()); + setUid(EcoreUtil.generateUUID()); } /** @@ -263,6 +284,30 @@ public abstract class DRepresentationImpl extends DocumentedElementImpl implemen * @generated */ @Override + public String getUid() { + return uid; + } + + /** + * <!-- begin-user-doc --> <!-- end-user-doc --> + * + * @generated + */ + @Override + public void setUid(String newUid) { + String oldUid = uid; + uid = newUid; + if (eNotificationRequired()) { + eNotify(new ENotificationImpl(this, Notification.SET, ViewpointPackage.DREPRESENTATION__UID, oldUid, uid)); + } + } + + /** + * <!-- begin-user-doc --> <!-- end-user-doc --> + * + * @generated + */ + @Override public DAnnotation getDAnnotation(String source) { // TODO: implement this method // Ensure that you remove @generated or mark it @generated NOT @@ -319,6 +364,8 @@ public abstract class DRepresentationImpl extends DocumentedElementImpl implemen return getOwnedAnnotationEntries(); case ViewpointPackage.DREPRESENTATION__UI_STATE: return getUiState(); + case ViewpointPackage.DREPRESENTATION__UID: + return getUid(); } return super.eGet(featureID, resolve, coreType); } @@ -346,6 +393,9 @@ public abstract class DRepresentationImpl extends DocumentedElementImpl implemen case ViewpointPackage.DREPRESENTATION__UI_STATE: setUiState((UIState) newValue); return; + case ViewpointPackage.DREPRESENTATION__UID: + setUid((String) newValue); + return; } super.eSet(featureID, newValue); } @@ -370,6 +420,9 @@ public abstract class DRepresentationImpl extends DocumentedElementImpl implemen case ViewpointPackage.DREPRESENTATION__UI_STATE: setUiState((UIState) null); return; + case ViewpointPackage.DREPRESENTATION__UID: + setUid(DRepresentationImpl.UID_EDEFAULT); + return; } super.eUnset(featureID); } @@ -394,6 +447,8 @@ public abstract class DRepresentationImpl extends DocumentedElementImpl implemen return ownedAnnotationEntries != null && !ownedAnnotationEntries.isEmpty(); case ViewpointPackage.DREPRESENTATION__UI_STATE: return uiState != null; + case ViewpointPackage.DREPRESENTATION__UID: + return DRepresentationImpl.UID_EDEFAULT == null ? uid != null : !DRepresentationImpl.UID_EDEFAULT.equals(uid); } return super.eIsSet(featureID); } @@ -460,6 +515,8 @@ public abstract class DRepresentationImpl extends DocumentedElementImpl implemen StringBuffer result = new StringBuffer(super.toString()); result.append(" (name: "); //$NON-NLS-1$ result.append(name); + result.append(", uid: "); //$NON-NLS-1$ + result.append(uid); result.append(')'); return result.toString(); } diff --git a/plugins/org.eclipse.sirius/src-gen/org/eclipse/sirius/viewpoint/impl/ViewpointPackageImpl.java b/plugins/org.eclipse.sirius/src-gen/org/eclipse/sirius/viewpoint/impl/ViewpointPackageImpl.java index a28c6a24c3..7febafa3e4 100644 --- a/plugins/org.eclipse.sirius/src-gen/org/eclipse/sirius/viewpoint/impl/ViewpointPackageImpl.java +++ b/plugins/org.eclipse.sirius/src-gen/org/eclipse/sirius/viewpoint/impl/ViewpointPackageImpl.java @@ -66,224 +66,224 @@ import org.eclipse.sirius.viewpoint.description.validation.impl.ValidationPackag /** * <!-- begin-user-doc --> An implementation of the model <b>Package</b>. <!-- end-user-doc --> - * + * * @generated */ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPackage { /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass dAnalysisEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass dFeatureExtensionEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass dStylizableEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass dRefreshableEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass dMappingBasedEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass dSemanticDecoratorEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass dRepresentationDescriptorEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass dRepresentationEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass dRepresentationElementEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass dViewEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass metaModelExtensionEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass decorationEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass dAnalysisCustomDataEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass labelStyleEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass styleEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass dAnalysisSessionEObjectEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass sessionManagerEObjectEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass dResourceEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass dFileEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass dResourceContainerEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass dProjectEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass dFolderEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass dModelEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass basicLabelStyleEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass customizableEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EClass uiStateEClass = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EEnum fontFormatEEnum = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EEnum labelAlignmentEEnum = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EEnum syncStatusEEnum = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EDataType rgbValuesEDataType = null; /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private EDataType resourceDescriptorEDataType = null; @@ -307,7 +307,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private static boolean isInited = false; @@ -319,7 +319,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka * This method is used to initialize {@link ViewpointPackage#eINSTANCE} when that field is accessed. Clients should * not invoke it directly. Instead, they should simply access that field to obtain the package. <!-- begin-user-doc * --> <!-- end-user-doc --> - * + * * @see #eNS_URI * @see #createPackageContents() * @see #initializePackageContents() @@ -377,7 +377,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -387,7 +387,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -397,7 +397,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -407,7 +407,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -417,7 +417,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -427,7 +427,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -437,7 +437,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -447,7 +447,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -457,7 +457,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -467,7 +467,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -477,7 +477,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -487,7 +487,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -497,7 +497,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -507,7 +507,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -517,7 +517,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -527,7 +527,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -537,7 +537,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -547,7 +547,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -557,7 +557,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -567,7 +567,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -577,7 +577,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -587,7 +587,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -597,7 +597,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -607,7 +607,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -617,7 +617,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -627,7 +627,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -637,7 +637,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -647,7 +647,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -657,7 +657,17 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * + * @generated + */ + @Override + public EAttribute getDRepresentation_Uid() { + return (EAttribute) dRepresentationEClass.getEStructuralFeatures().get(5); + } + + /** + * <!-- begin-user-doc --> <!-- end-user-doc --> + * * @generated */ @Override @@ -667,7 +677,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -677,7 +687,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -687,7 +697,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -697,7 +707,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -707,7 +717,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -717,7 +727,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -727,7 +737,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -737,7 +747,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -747,7 +757,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -757,7 +767,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -767,7 +777,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -777,7 +787,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -787,7 +797,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -797,7 +807,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -807,7 +817,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -817,7 +827,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -827,7 +837,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -837,7 +847,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -847,7 +857,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -857,7 +867,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -867,7 +877,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -877,7 +887,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -887,7 +897,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -897,7 +907,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -907,7 +917,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -917,7 +927,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -927,7 +937,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -937,7 +947,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -947,7 +957,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -957,7 +967,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -967,7 +977,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -977,7 +987,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -987,7 +997,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -997,7 +1007,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -1007,7 +1017,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -1017,7 +1027,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -1027,7 +1037,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -1037,7 +1047,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -1047,7 +1057,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -1057,7 +1067,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -1067,7 +1077,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -1077,7 +1087,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -1087,7 +1097,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -1097,7 +1107,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -1107,7 +1117,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -1117,7 +1127,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -1127,7 +1137,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -1137,7 +1147,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -1147,7 +1157,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -1157,7 +1167,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -1167,7 +1177,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -1177,7 +1187,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -1187,7 +1197,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -1197,7 +1207,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ @Override @@ -1207,7 +1217,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private boolean isCreated = false; @@ -1215,7 +1225,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * Creates the meta-model objects for the package. This method is guarded to have no affect on any invocation but * its first. <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ public void createPackageContents() { @@ -1260,6 +1270,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka createEAttribute(dRepresentationEClass, ViewpointPackage.DREPRESENTATION__NAME); createEReference(dRepresentationEClass, ViewpointPackage.DREPRESENTATION__OWNED_ANNOTATION_ENTRIES); createEReference(dRepresentationEClass, ViewpointPackage.DREPRESENTATION__UI_STATE); + createEAttribute(dRepresentationEClass, ViewpointPackage.DREPRESENTATION__UID); dRepresentationElementEClass = createEClass(ViewpointPackage.DREPRESENTATION_ELEMENT); createEAttribute(dRepresentationElementEClass, ViewpointPackage.DREPRESENTATION_ELEMENT__NAME); @@ -1340,7 +1351,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ private boolean isInitialized = false; @@ -1348,7 +1359,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * Complete the initialization of the package and its meta-model. This method is guarded to have no affect on any * invocation but its first. <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ public void initializePackageContents() { @@ -1397,26 +1408,29 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka // Initialize classes and features; add operations and parameters initEClass(dAnalysisEClass, DAnalysis.class, "DAnalysis", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ initEReference(getDAnalysis_ReferencedAnalysis(), this.getDAnalysis(), null, "referencedAnalysis", null, 0, -1, DAnalysis.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$ - EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, - EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, + EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEAttribute(getDAnalysis_SemanticResources(), this.getResourceDescriptor(), "semanticResources", null, 0, -1, DAnalysis.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$ - EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, + !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEReference(getDAnalysis_Models(), theEcorePackage.getEObject(), null, "models", null, 0, -1, DAnalysis.class, EPackageImpl.IS_TRANSIENT, EPackageImpl.IS_VOLATILE, //$NON-NLS-1$ - EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, EPackageImpl.IS_DERIVED, - EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, + !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEReference(getDAnalysis_EAnnotations(), theDescriptionPackage.getDAnnotationEntry(), null, "eAnnotations", null, 0, -1, DAnalysis.class, !EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$ - !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE, !EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, - !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, + EPackageImpl.IS_COMPOSITE, !EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEReference(getDAnalysis_OwnedViews(), this.getDView(), null, "ownedViews", null, 0, -1, DAnalysis.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, //$NON-NLS-1$ - EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, + !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEReference(getDAnalysis_SelectedViews(), this.getDView(), null, "selectedViews", null, 0, -1, DAnalysis.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$ - EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, - EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, + EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEReference(getDAnalysis_OwnedFeatureExtensions(), this.getDFeatureExtension(), null, "ownedFeatureExtensions", null, 0, -1, DAnalysis.class, !EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$ - !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, - !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, + EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEAttribute(getDAnalysis_Version(), theEcorePackage.getEString(), "version", null, 0, 1, DAnalysis.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, //$NON-NLS-1$ - !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, + !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEClass(dFeatureExtensionEClass, DFeatureExtension.class, "DFeatureExtension", EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ initEReference(getDFeatureExtension_Description(), theDescriptionPackage.getFeatureExtensionDescription(), null, "description", null, 1, 1, DFeatureExtension.class, !EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$ @@ -1437,122 +1451,146 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka initEClass(dSemanticDecoratorEClass, DSemanticDecorator.class, "DSemanticDecorator", EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ initEReference(getDSemanticDecorator_Target(), theEcorePackage.getEObject(), null, "target", null, 1, 1, DSemanticDecorator.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$ - EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, - EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, + EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEClass(dRepresentationDescriptorEClass, DRepresentationDescriptor.class, "DRepresentationDescriptor", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, //$NON-NLS-1$ EPackageImpl.IS_GENERATED_INSTANCE_CLASS); initEAttribute(getDRepresentationDescriptor_Name(), theEcorePackage.getEString(), "name", "", 0, 1, DRepresentationDescriptor.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$//$NON-NLS-2$ - EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, + !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEReference(getDRepresentationDescriptor_Description(), theDescriptionPackage.getRepresentationDescription(), null, "description", null, 1, 1, DRepresentationDescriptor.class, //$NON-NLS-1$ !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEReference(getDRepresentationDescriptor_Target(), theEcorePackage.getEObject(), null, "target", null, 1, 1, DRepresentationDescriptor.class, !EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$ - !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, - !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, + !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEReference(getDRepresentationDescriptor_Representation(), this.getDRepresentation(), null, "representation", null, 1, 1, DRepresentationDescriptor.class, EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$ - EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, - EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + EPackageImpl.IS_VOLATILE, + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, EPackageImpl.IS_DERIVED, + EPackageImpl.IS_ORDERED); initEAttribute(getDRepresentationDescriptor_RepPath(), this.getResourceDescriptor(), "repPath", null, 1, 1, DRepresentationDescriptor.class, !EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$ - !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, + !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEClass(dRepresentationEClass, DRepresentation.class, "DRepresentation", EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ initEReference(getDRepresentation_OwnedRepresentationElements(), this.getDRepresentationElement(), null, "ownedRepresentationElements", null, 0, -1, DRepresentation.class, //$NON-NLS-1$ - EPackageImpl.IS_TRANSIENT, EPackageImpl.IS_VOLATILE, !EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, - EPackageImpl.IS_UNIQUE, EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); - initEReference(getDRepresentation_RepresentationElements(), this.getDRepresentationElement(), null, "representationElements", null, 0, -1, DRepresentation.class, EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$ + EPackageImpl.IS_TRANSIENT, EPackageImpl.IS_VOLATILE, !EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + initEReference(getDRepresentation_RepresentationElements(), this.getDRepresentationElement(), null, "representationElements", null, 0, -1, DRepresentation.class, EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$ + EPackageImpl.IS_VOLATILE, + !EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, EPackageImpl.IS_DERIVED, + EPackageImpl.IS_ORDERED); initEAttribute(getDRepresentation_Name(), theEcorePackage.getEString(), "name", "", 0, 1, DRepresentation.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$//$NON-NLS-2$ - EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, + !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEReference(getDRepresentation_OwnedAnnotationEntries(), theDescriptionPackage.getAnnotationEntry(), null, "ownedAnnotationEntries", null, 0, -1, DRepresentation.class, //$NON-NLS-1$ - !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, - EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + !EPackageImpl.IS_TRANSIENT, + !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, + !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEReference(getDRepresentation_UiState(), this.getUIState(), null, "uiState", null, 0, 1, DRepresentation.class, EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$ - EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE, !EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, - EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE, + !EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + initEAttribute(getDRepresentation_Uid(), ecorePackage.getEString(), "uid", null, 0, 1, DRepresentation.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, //$NON-NLS-1$ + !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, + !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEClass(dRepresentationElementEClass, DRepresentationElement.class, "DRepresentationElement", EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, //$NON-NLS-1$ EPackageImpl.IS_GENERATED_INSTANCE_CLASS); initEAttribute(getDRepresentationElement_Name(), theEcorePackage.getEString(), "name", "", 0, 1, DRepresentationElement.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$//$NON-NLS-2$ - EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, + !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEReference(getDRepresentationElement_SemanticElements(), theEcorePackage.getEObject(), null, "semanticElements", null, 0, -1, DRepresentationElement.class, !EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$ - !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, - !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + !EPackageImpl.IS_VOLATILE, + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, + EPackageImpl.IS_ORDERED); initEClass(dViewEClass, DView.class, "DView", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ initEReference(getDView_Viewpoint(), theDescriptionPackage.getViewpoint(), null, "viewpoint", null, 1, 1, DView.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$ - EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, - EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, + EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEReference(getDView_OwnedRepresentationDescriptors(), this.getDRepresentationDescriptor(), null, "ownedRepresentationDescriptors", null, 0, -1, DView.class, !EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$ - !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, - !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); - initEReference(getDView_OwnedExtensions(), this.getMetaModelExtension(), null, "ownedExtensions", null, 0, 1, DView.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$ + !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + initEReference(getDView_OwnedExtensions(), this.getMetaModelExtension(), null, "ownedExtensions", null, 0, 1, DView.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$ + EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE, + EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEReference(getDView_Models(), theEcorePackage.getEObject(), null, "models", null, 0, -1, DView.class, EPackageImpl.IS_TRANSIENT, EPackageImpl.IS_VOLATILE, !EPackageImpl.IS_CHANGEABLE, //$NON-NLS-1$ - !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, + !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEClass(metaModelExtensionEClass, MetaModelExtension.class, "MetaModelExtension", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ initEReference(getMetaModelExtension_ExtensionGroup(), theEcorePackage.getEObject(), null, "extensionGroup", null, 1, 1, MetaModelExtension.class, !EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$ - !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, - !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, + !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEClass(decorationEClass, Decoration.class, "Decoration", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ initEReference(getDecoration_Description(), theDescriptionPackage.getDecorationDescription(), null, "description", null, 1, 1, Decoration.class, !EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$ - !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, - !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, + !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEClass(dAnalysisCustomDataEClass, DAnalysisCustomData.class, "DAnalysisCustomData", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ initEAttribute(getDAnalysisCustomData_Key(), theEcorePackage.getEString(), "key", null, 1, 1, DAnalysisCustomData.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$ - EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, + EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEReference(getDAnalysisCustomData_Data(), theEcorePackage.getEObject(), null, "data", null, 1, 1, DAnalysisCustomData.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$ - EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, - EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE, + EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEClass(labelStyleEClass, LabelStyle.class, "LabelStyle", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ initEAttribute(getLabelStyle_LabelAlignment(), this.getLabelAlignment(), "labelAlignment", null, 0, 1, LabelStyle.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$ - EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, + EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEClass(styleEClass, Style.class, "Style", EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ initEReference(getStyle_Description(), theStylePackage.getStyleDescription(), null, "description", null, 0, 1, Style.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$ - EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, - EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, + EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEClass(dAnalysisSessionEObjectEClass, DAnalysisSessionEObject.class, "DAnalysisSessionEObject", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, //$NON-NLS-1$ EPackageImpl.IS_GENERATED_INSTANCE_CLASS); initEAttribute(getDAnalysisSessionEObject_Open(), theEcorePackage.getEBoolean(), "open", null, 1, 1, DAnalysisSessionEObject.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$ - EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, + !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEAttribute(getDAnalysisSessionEObject_Resources(), theEcorePackage.getEResource(), "resources", null, 0, -1, DAnalysisSessionEObject.class, EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$ - !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, + !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEAttribute(getDAnalysisSessionEObject_ControlledResources(), theEcorePackage.getEResource(), "controlledResources", null, 0, -1, DAnalysisSessionEObject.class, EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$ - !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + !EPackageImpl.IS_VOLATILE, + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEReference(getDAnalysisSessionEObject_ActivatedViewpoints(), theDescriptionPackage.getViewpoint(), null, "activatedViewpoints", null, 0, -1, DAnalysisSessionEObject.class, //$NON-NLS-1$ - !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, - EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + !EPackageImpl.IS_TRANSIENT, + !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, + !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEReference(getDAnalysisSessionEObject_Analyses(), this.getDAnalysis(), null, "analyses", null, 0, -1, DAnalysisSessionEObject.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$ - EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, - EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, + !EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEAttribute(getDAnalysisSessionEObject_SynchronizationStatus(), this.getSyncStatus(), "synchronizationStatus", "dirty", 1, 1, DAnalysisSessionEObject.class, !EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$//$NON-NLS-2$ - !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + !EPackageImpl.IS_VOLATILE, + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEClass(sessionManagerEObjectEClass, SessionManagerEObject.class, "SessionManagerEObject", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ initEReference(getSessionManagerEObject_OwnedSessions(), this.getDAnalysisSessionEObject(), null, "ownedSessions", null, 0, -1, SessionManagerEObject.class, !EPackageImpl.IS_TRANSIENT, //$NON-NLS-1$ - !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, - !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + !EPackageImpl.IS_VOLATILE, + EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, + EPackageImpl.IS_ORDERED); initEClass(dResourceEClass, DResource.class, "DResource", EPackageImpl.IS_ABSTRACT, EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ initEAttribute(getDResource_Name(), theEcorePackage.getEString(), "name", null, 1, 1, DResource.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, //$NON-NLS-1$ - !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, + !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEAttribute(getDResource_Path(), theEcorePackage.getEString(), "path", null, 1, 1, DResource.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, //$NON-NLS-1$ - !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, + !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEClass(dFileEClass, DFile.class, "DFile", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ initEClass(dResourceContainerEClass, DResourceContainer.class, "DResourceContainer", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ initEReference(getDResourceContainer_Members(), this.getDResource(), null, "members", null, 0, -1, DResourceContainer.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$ - EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, - EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE, + EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEClass(dProjectEClass, DProject.class, "DProject", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ @@ -1562,33 +1600,41 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka initEClass(basicLabelStyleEClass, BasicLabelStyle.class, "BasicLabelStyle", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ initEAttribute(getBasicLabelStyle_LabelSize(), theEcorePackage.getEInt(), "labelSize", "8", 0, 1, BasicLabelStyle.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$//$NON-NLS-2$ - EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, + EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEAttribute(getBasicLabelStyle_LabelFormat(), this.getFontFormat(), "labelFormat", null, 0, 4, BasicLabelStyle.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$ - EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, + EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEAttribute(getBasicLabelStyle_ShowIcon(), theEcorePackage.getEBoolean(), "showIcon", "true", 0, 1, BasicLabelStyle.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$//$NON-NLS-2$ - EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, + !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEAttribute(getBasicLabelStyle_IconPath(), theEcorePackage.getEString(), "iconPath", "", 0, 1, BasicLabelStyle.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$//$NON-NLS-2$ - EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, + EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEAttribute(getBasicLabelStyle_LabelColor(), this.getRGBValues(), "labelColor", "0,0,0", 0, 1, BasicLabelStyle.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$//$NON-NLS-2$ - EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, + EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEClass(customizableEClass, Customizable.class, "Customizable", EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ initEAttribute(getCustomizable_CustomFeatures(), theEcorePackage.getEString(), "customFeatures", null, 0, -1, Customizable.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$ - EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, + !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEClass(uiStateEClass, UIState.class, "UIState", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$ initEAttribute(getUIState_InverseSelectionOrder(), theEcorePackage.getEBoolean(), "inverseSelectionOrder", "false", 0, 1, UIState.class, EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$//$NON-NLS-2$ - EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, + !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); initEReference(getUIState_ElementsToSelect(), theEcorePackage.getEObject(), null, "elementsToSelect", null, 0, -1, UIState.class, EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, //$NON-NLS-1$ - EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, !EPackageImpl.IS_RESOLVE_PROXIES, EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, - EPackageImpl.IS_ORDERED); + EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_COMPOSITE, + !EPackageImpl.IS_RESOLVE_PROXIES, EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); EGenericType g1 = createEGenericType(theEcorePackage.getEMap()); EGenericType g2 = createEGenericType(this.getDecoration()); g1.getETypeArguments().add(g2); g2 = createEGenericType(ecorePackage.getEJavaObject()); g1.getETypeArguments().add(g2); initEAttribute(getUIState_DecorationImage(), g1, "decorationImage", null, 0, 1, UIState.class, EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, //$NON-NLS-1$ - !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); + !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, + EPackageImpl.IS_ORDERED); // Initialize enums and add enum literals initEEnum(fontFormatEEnum, FontFormat.class, "FontFormat"); //$NON-NLS-1$ @@ -1620,7 +1666,7 @@ public class ViewpointPackageImpl extends EPackageImpl implements ViewpointPacka /** * Initializes the annotations for <b>Tags</b>. <!-- begin-user-doc --> <!-- end-user-doc --> - * + * * @generated */ protected void createTagsAnnotations() { diff --git a/plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/api/dialect/AbstractRepresentationDialectServices.java b/plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/api/dialect/AbstractRepresentationDialectServices.java index e68826eeee..fc00b6bb63 100644 --- a/plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/api/dialect/AbstractRepresentationDialectServices.java +++ b/plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/api/dialect/AbstractRepresentationDialectServices.java @@ -205,6 +205,7 @@ public abstract class AbstractRepresentationDialectServices implements DialectSe EcoreUtil.Copier copier = new EcoreUtil.Copier(); DRepresentation newRepresentation = (DRepresentation) copier.copy(representation); copier.copyReferences(); + newRepresentation.setUid(EcoreUtil.generateUUID()); /* Set the correct name */ newRepresentation.setName(name); diff --git a/plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/internal/migration/DRepInDViewToRootObjectsAndWithDRepDescRepPathMigrationParticipant.java b/plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/internal/migration/DRepInDViewToRootObjectsAndWithDRepDescRepPathMigrationParticipant.java index 752a78a688..7295ce8c68 100644 --- a/plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/internal/migration/DRepInDViewToRootObjectsAndWithDRepDescRepPathMigrationParticipant.java +++ b/plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/internal/migration/DRepInDViewToRootObjectsAndWithDRepDescRepPathMigrationParticipant.java @@ -10,26 +10,52 @@ *******************************************************************************/ package org.eclipse.sirius.business.internal.migration; +import java.util.Optional; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.common.util.WrappedException; +import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.sirius.business.api.migration.AbstractRepresentationsFileMigrationParticipant; +import org.eclipse.sirius.business.api.resource.ResourceDescriptor; import org.eclipse.sirius.business.internal.query.DRepresentationDescriptorInternalHelper; +import org.eclipse.sirius.viewpoint.DAnalysis; import org.eclipse.sirius.viewpoint.DRepresentation; import org.eclipse.sirius.viewpoint.DRepresentationDescriptor; import org.eclipse.sirius.viewpoint.DView; +import org.eclipse.sirius.viewpoint.ViewpointPackage; import org.osgi.framework.Version; /** - * Migration to handle the move of {@link DRepresentation} from DView.ownedRepresentations to the root objects of the - * aird resource. + * This class handle multiple migrations:</br> + * * Migration to handle the move of {@link DRepresentation} from DView.ownedRepresentations to the root objects of the + * aird resource.</br> + * * This migration participant is about setting the repPath feature instead of representation. The + * DRepresentationDescriptor#representation feature is now derived, transient and volatile. It has been replaced by the + * repPath feature that contains the URI as a String. </br> + * * Migration to have an uid on DRpresentation which is used to reference DRpresentation from the + * DRpresentationDescriptor using the part of DRpresentationDescriptor.repPath. * * @author lfasani */ public class DRepInDViewToRootObjectsAndWithDRepDescRepPathMigrationParticipant extends AbstractRepresentationsFileMigrationParticipant { /** - * The version for which this migration is added. + * The version corresponds to the move of DRep owned by DRepDesc to root objects. + */ + public static final Version MIGRATION_VERSION_REP_IN_DVIEW_TO_ROOT_OBJECT = new Version("11.1.0.201608251200"); //$NON-NLS-1$ + + /** + * This version corresponds to repPath migration. The repPath is initialized from the old DRepDesc.representation */ - public static final Version MIGRATION_VERSION = new Version("11.1.0.201608251200"); //$NON-NLS-1$ + public static final Version MIGRATION_VERSION_REP_PATH_XMIID = new Version("12.0.0.201704191300"); //$NON-NLS-1$ + + /** + * This version corresponds to repPath migration. The repPath fragment is changed from rep xmiid to rep uid. + */ + public static final Version MIGRATION_VERSION_REP_PATH_UID = new Version("12.1.0.201707281200"); //$NON-NLS-1$ /** * The name of the feature DView.ownedRepresentations which has been deleted. @@ -38,23 +64,92 @@ public class DRepInDViewToRootObjectsAndWithDRepDescRepPathMigrationParticipant @Override public Version getMigrationVersion() { - return MIGRATION_VERSION; + return MIGRATION_VERSION_REP_PATH_UID; } @Override protected void handleFeature(EObject owner, EStructuralFeature unkownFeature, Object valueOfUnknownFeature) { if (DVIEW_OWNED_REPRESENTATIONS_UNKNOWN_FEATURE.equals(unkownFeature.getName())) { if (valueOfUnknownFeature instanceof DRepresentation && owner instanceof DView) { + DRepresentation representation = (DRepresentation) valueOfUnknownFeature; // First, move the DRepresentation as root object of the resource so that its URI can be computed // correctly - owner.eResource().getContents().add((EObject) valueOfUnknownFeature); + owner.eResource().getContents().add(representation); // Create DRepresentationDescriptor // The method will call DRepresentationDescriptor.setRepresentation that will, in fact, get the // DRepresentation URI and set it on DRepresentationDescriptor.repPath - DRepresentationDescriptor descriptor = DRepresentationDescriptorInternalHelper.createDescriptor((DRepresentation) valueOfUnknownFeature); + DRepresentationDescriptor descriptor = DRepresentationDescriptorInternalHelper.createDescriptor(representation); ((DView) owner).getOwnedRepresentationDescriptors().add(descriptor); } } } + + @Override + public Object getValue(EObject object, EStructuralFeature feature, Object value, String loadedVersion) { + if (Version.parseVersion(loadedVersion).compareTo(MIGRATION_VERSION_REP_IN_DVIEW_TO_ROOT_OBJECT) >= 0 && Version.parseVersion(loadedVersion).compareTo(MIGRATION_VERSION_REP_PATH_XMIID) < 0) { + if (ViewpointPackage.eINSTANCE.getDRepresentationDescriptor_Representation().equals(feature)) { + // Thanks to the getAffiliation overload, the return value will + // be used to create a ResourceDescriptor. + // The representation uri has already been resolved and is absolute. + if (value instanceof DRepresentation) { + DRepresentation rep = (DRepresentation) value; + + // create the rep URI (with rep uid as fragment) which will be set as DRepDesc.repPath + // DRep.uid is initialized in constructor but DRepDesc.repPath has never been initialized with that + // uid + URI repURI = EcoreUtil.getURI(rep); + URI newRepURI = URI.createHierarchicalURI(repURI.scheme(), repURI.authority(), repURI.device(), repURI.segments(), repURI.query(), rep.getUid()); + + return newRepURI.toString(); + } + } + } + return super.getValue(object, feature, value, loadedVersion); + } + + @Override + public EStructuralFeature getAffiliation(EClass eClass, EStructuralFeature eStructuralFeature, String loadedVersion) { + if (Version.parseVersion(loadedVersion).compareTo(MIGRATION_VERSION_REP_IN_DVIEW_TO_ROOT_OBJECT) >= 0 && Version.parseVersion(loadedVersion).compareTo(MIGRATION_VERSION_REP_PATH_XMIID) < 0) { + if (ViewpointPackage.eINSTANCE.getDRepresentationDescriptor_Representation().equals(eStructuralFeature)) { + return ViewpointPackage.eINSTANCE.getDRepresentationDescriptor_RepPath(); + } + } + return super.getAffiliation(eClass, eStructuralFeature, loadedVersion); + } + + @Override + protected void postLoad(DAnalysis dAnalysis, Version loadedVersion) { + if (loadedVersion.compareTo(MIGRATION_VERSION_REP_PATH_XMIID) >= 0 && loadedVersion.compareTo(MIGRATION_VERSION_REP_PATH_UID) < 0) { + dAnalysis.getOwnedViews().stream().flatMap(view -> view.getOwnedRepresentationDescriptors().stream()).forEach(repDesc -> { + Optional.ofNullable(getRepresentationFromURI(repDesc)).ifPresent(rep -> { + // DRep.uid is initialized in constructor but DRepDesc.repPath has never been initialized with that + // uid + repDesc.updateRepresentation(rep); + }); + }); + super.postLoad(dAnalysis, loadedVersion); + } + } + + /** + * Try to get the DRepresentation supposing that DRepresentationDescriptor.repPath is a real URI, having the DRep + * xmiid as fragment which should be the case when this participant is executed.</br> + * If + * + * @param repDescriptor + * @return the representation + */ + private DRepresentation getRepresentationFromURI(DRepresentationDescriptor repDescriptor) { + ResourceDescriptor resourceDescriptor = repDescriptor.getRepPath(); + Resource resource = repDescriptor.eResource(); + if (resourceDescriptor != null) { + try { + return Optional.ofNullable(resource).map(Resource::getResourceSet).map(rSet -> rSet.getEObject(resourceDescriptor.getResourceURI(), true)).filter(DRepresentation.class::isInstance) + .map(DRepresentation.class::cast).orElse(null); + } catch (WrappedException e) { + } + } + return null; + } } diff --git a/plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/internal/migration/ReplaceRepresentationByRepPathMigrationParticipant.java b/plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/internal/migration/ReplaceRepresentationByRepPathMigrationParticipant.java deleted file mode 100644 index 5b24f8f610..0000000000 --- a/plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/internal/migration/ReplaceRepresentationByRepPathMigrationParticipant.java +++ /dev/null @@ -1,66 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2017 Obeo. - * 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: - * Obeo - initial API and implementation - *******************************************************************************/ -package org.eclipse.sirius.business.internal.migration; - -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EStructuralFeature; -import org.eclipse.emf.ecore.InternalEObject; -import org.eclipse.emf.ecore.util.EcoreUtil; -import org.eclipse.sirius.business.api.migration.AbstractRepresentationsFileMigrationParticipant; -import org.eclipse.sirius.viewpoint.ViewpointPackage; -import org.osgi.framework.Version; - -/** - * The DRepresentationDescriptor#representation feature is now derived, transient and volatile. It has been replaced by - * the repPath feature that contains the URI as a String. This migration participant is about setting the repPath - * feature instead of representation. - * - * @author Florian Barbin - */ -public class ReplaceRepresentationByRepPathMigrationParticipant extends AbstractRepresentationsFileMigrationParticipant { - - /** - * The aird version for which this migration is added. - */ - public static final Version MIGRATION_VERSION = new Version("12.0.0.201704191300"); //$NON-NLS-1$ - - @Override - public Version getMigrationVersion() { - return MIGRATION_VERSION; - } - - @Override - public Object getValue(EObject object, EStructuralFeature feature, Object value, String loadedVersion) { - if (Version.parseVersion(loadedVersion).compareTo(ReplaceRepresentationByRepPathMigrationParticipant.MIGRATION_VERSION) < 0) { - if (ViewpointPackage.eINSTANCE.getDRepresentationDescriptor_Representation().equals(feature)) { - // Thanks to the getAffiliation overload, the return value will - // be used to create a ResourceDescriptor. - // The representation uri has already been resolved and is absolute. - if (value instanceof InternalEObject) { - String strvalue = EcoreUtil.getURI((EObject) value).toString(); - return strvalue; - } - } - } - return super.getValue(object, feature, value, loadedVersion); - } - - @Override - public EStructuralFeature getAffiliation(EClass eClass, EStructuralFeature eStructuralFeature, String loadedVersion) { - if (Version.parseVersion(loadedVersion).compareTo(ReplaceRepresentationByRepPathMigrationParticipant.MIGRATION_VERSION) < 0) { - if (ViewpointPackage.eINSTANCE.getDRepresentationDescriptor_Representation().equals(eStructuralFeature)) { - return ViewpointPackage.eINSTANCE.getDRepresentationDescriptor_RepPath(); - } - } - return super.getAffiliation(eClass, eStructuralFeature, loadedVersion); - } -} diff --git a/plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/internal/representation/DRepresentationDescriptorToDRepresentationLinkManager.java b/plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/internal/representation/DRepresentationDescriptorToDRepresentationLinkManager.java index f62b8e1924..0bdb00fb2a 100644 --- a/plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/internal/representation/DRepresentationDescriptorToDRepresentationLinkManager.java +++ b/plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/internal/representation/DRepresentationDescriptorToDRepresentationLinkManager.java @@ -10,21 +10,15 @@ *******************************************************************************/ package org.eclipse.sirius.business.internal.representation; -import java.text.MessageFormat; import java.util.Optional; -import org.eclipse.core.runtime.Assert; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.sirius.business.api.query.EObjectQuery; import org.eclipse.sirius.business.api.resource.ResourceDescriptor; import org.eclipse.sirius.business.api.session.Session; -import org.eclipse.sirius.common.tools.api.util.EclipseUtil; import org.eclipse.sirius.viewpoint.DRepresentation; import org.eclipse.sirius.viewpoint.DRepresentationDescriptor; -import org.eclipse.sirius.viewpoint.Messages; -import org.eclipse.sirius.viewpoint.SiriusPlugin; /** * This class is intended to manage the link between the {@link DRepresentationDescriptor} and its @@ -50,33 +44,19 @@ public class DRepresentationDescriptorToDRepresentationLinkManager { * Set the repPath attribute according to the given newRepresentation. This method should not be called by client. * Call {@link DRepresentationDescriptor#setRepresentation(DRepresentation)} instead. * - * @param newRepresentation - * the new representation to set. Can be null. If the newRepresentation is not null, - * newRepresentation.eResource must not be null. + * @param representation + * the representation to set. Can be null. If the representation is not null, representation.eResource + * must not be null. */ - public void setRepresentation(DRepresentation newRepresentation) { - if (newRepresentation != null) { - Optional.ofNullable(newRepresentation).ifPresent(rep -> Assert.isNotNull(rep.eResource())); - Optional<DRepresentationURIFragmentStrategy> fragmentStrategy = EclipseUtil - .getExtensionPlugins(DRepresentationURIFragmentStrategy.class, DRepresentationURIFragmentStrategy.ID, DRepresentationURIFragmentStrategy.CLASS_ATTRIBUTE).stream() - .filter(strategy -> strategy.providesSetter(newRepresentation)).findFirst(); - if (fragmentStrategy.isPresent()) { - fragmentStrategy.get().setRepresentation(repDescriptor, newRepresentation); - } else { - setRepresentationPathFromURI(newRepresentation); - } + public void setRepresentation(DRepresentation representation) { + if (representation != null) { + String iD = representation.getUid(); + Optional.ofNullable(representation.eResource()).map(resource -> resource.getURI().appendFragment(iD)).ifPresent(uri -> repDescriptor.setRepPath(new ResourceDescriptor(uri))); } else { repDescriptor.setRepPath(null); } } - private void setRepresentationPathFromURI(DRepresentation newRepresentation) { - URI uri = EcoreUtil.getURI(newRepresentation); - if (uri != null) { - repDescriptor.setRepPath(new ResourceDescriptor(uri)); - } - } - /** * Retrieves the DRepresentation using the repPath attribute. This method should not be called by client. Call * {@link DRepresentationDescriptor#getRepresentation()} instead. @@ -100,33 +80,23 @@ public class DRepresentationDescriptorToDRepresentationLinkManager { } private Optional<DRepresentation> getRepresentationInternal(boolean loadOnDemand) { - Optional<DRepresentationURIFragmentStrategy> fragmentStrategy = EclipseUtil - .getExtensionPlugins(DRepresentationURIFragmentStrategy.class, DRepresentationURIFragmentStrategy.ID, DRepresentationURIFragmentStrategy.CLASS_ATTRIBUTE).stream() - .filter(strategy -> strategy.providesGetter(repDescriptor)).findFirst(); - if (fragmentStrategy.isPresent()) { - return fragmentStrategy.get().getRepresentation(repDescriptor, loadOnDemand); - } - return Optional.ofNullable(getRepresentationFromURI(loadOnDemand)); - } - - private DRepresentation getRepresentationFromURI(boolean loadOnDemand) { ResourceDescriptor resourceDescriptor = repDescriptor.getRepPath(); Resource resource = repDescriptor.eResource(); - if (resourceDescriptor != null) { - try { - // @formatter:off - return Optional.ofNullable(resource).map(Resource::getResourceSet) - .map(rSet -> rSet.getEObject(resourceDescriptor.getResourceURI(), loadOnDemand)) - .filter(DRepresentation.class::isInstance) - .map(DRepresentation.class::cast) - .orElse(null); - // @formatter:on - // CHECKSTYLE:OFF - } catch (Exception e) { - // CHECKSTYLE:ON - SiriusPlugin.getDefault().error(MessageFormat.format(Messages.DRepresentationDescriptorToDRepresentationLinkManager_repLoading, resourceDescriptor.getResourceURI()), e); + + // We retrieve the URI from descriptor. + Optional<URI> uri = Optional.ofNullable(resourceDescriptor).map(desc -> desc.getResourceURI()); + if (uri.isPresent()) { + // We retrieve the representation resource from the uri. + Optional<Resource> representationResource = Optional.ofNullable(resource).map(rsr -> rsr.getResourceSet()) + .map(resourceSet -> resourceSet.getResource(uri.get().trimFragment(), loadOnDemand)); + String repId = uri.get().fragment(); + if (representationResource.isPresent() && repId != null) { + // We look for the representation with the repId (retrieved from + // the uri fragment) within the representation resource. + return representationResource.get().getContents().stream().filter(DRepresentation.class::isInstance).map(DRepresentation.class::cast) + .filter(dRepresentation -> repId.equals(dRepresentation.getUid())).findFirst(); } } - return null; + return Optional.empty(); } } diff --git a/plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/internal/representation/DRepresentationURIFragmentStrategy.java b/plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/internal/representation/DRepresentationURIFragmentStrategy.java deleted file mode 100644 index 2691b048eb..0000000000 --- a/plugins/org.eclipse.sirius/src/org/eclipse/sirius/business/internal/representation/DRepresentationURIFragmentStrategy.java +++ /dev/null @@ -1,86 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2017 THALES GLOBAL SERVICES 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: - * Obeo - initial API and implementation - *******************************************************************************/ -package org.eclipse.sirius.business.internal.representation; - -import java.util.Optional; - -import org.eclipse.sirius.viewpoint.DRepresentation; -import org.eclipse.sirius.viewpoint.DRepresentationDescriptor; - -/** - * This interface allows to extend the way the DRepresentationDescriptor#repPath URI fragment is set and interpreted. - * This interface is not intended to be implemented by clients. - * - * @author fbarbin - * - */ -public interface DRepresentationURIFragmentStrategy { - - /** - * The extension point ID. - */ - String ID = "org.eclipse.sirius.dRepresentationURIFragmentStrategy"; //$NON-NLS-1$ - - /** - * The class attribute. - */ - String CLASS_ATTRIBUTE = "class"; //$NON-NLS-1$ - - /** - * Whether this strategy can by applied on this kind of descriptor before calling - * {@link DRepresentationURIFragmentStrategy#getRepresentation(DRepresentationDescriptor, boolean)}. - * - * @param descriptor - * the current descriptor. The descriptor is contained in a {@link Resource}. - * @return true if this strategy can be applied, false otherwise. - */ - boolean providesGetter(DRepresentationDescriptor descriptor); - - /** - * Whether this strategy can by applied on this kind of representation before calling - * {@link DRepresentationURIFragmentStrategy#setRepresentation(DRepresentationDescriptor, DRepresentation)}. - * - * @param representation - * the current representation. The representation must be contained in a {@link Resource}. - * @return true if this strategy can be applied, false otherwise. - */ - boolean providesSetter(DRepresentation representation); - - /** - * Provides the DRepresentation referenced by the {@link DRepresentationDescriptor#getRepPath()} feature. This - * method is called in the context of {@link DRepresentationDescriptor#getRepresentation()} method. - * - * @param descriptor - * the {@link DRepresentationDescriptor} that references the {@link DRepresentation} to return. The - * descriptor must be contained in a {@link Resource}. - * @param loadOnDemand - * whether to create and load the resource, if it doesn't already exists. - * @return an optional DRepresentation. - */ - Optional<DRepresentation> getRepresentation(DRepresentationDescriptor descriptor, boolean loadOnDemand); - - /** - * Set the provided {@link DRepresentation} to the given {@link DRepresentationDescriptor}. This method is called in - * the context of {@link DRepresentationDescriptor#setRepresentation(DRepresentation)} method. The implementation - * must set the repPath value by calling - * {@link DRepresentationDescriptor#setRepPath(org.eclipse.sirius.business.api.resource.ResourceDescriptor)} and may - * also perform model changes so that the representation can be retrieved. - * - * @param descriptor - * the {@link DRepresentationDescriptor} for which we want to set the repPath. - * @param representation - * the {@link DRepresentation} argument from - * {@link DRepresentationDescriptor#setRepresentation(DRepresentation)}. It must be contained in a - * {@link Resource}. - */ - void setRepresentation(DRepresentationDescriptor descriptor, DRepresentation representation); - -} |
