Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rwxr-xr-xplugins/emf/org.eclipse.papyrus.emf/src/org/eclipse/papyrus/emf/resources/AbstractEMFResource.java14
-rw-r--r--plugins/emf/org.eclipse.papyrus.emf/src/org/eclipse/papyrus/emf/resources/AbstractEMFResourceWithUUID.java29
2 files changed, 29 insertions, 14 deletions
diff --git a/plugins/emf/org.eclipse.papyrus.emf/src/org/eclipse/papyrus/emf/resources/AbstractEMFResource.java b/plugins/emf/org.eclipse.papyrus.emf/src/org/eclipse/papyrus/emf/resources/AbstractEMFResource.java
index 7f7d1d9ac5f..660f317cf39 100755
--- a/plugins/emf/org.eclipse.papyrus.emf/src/org/eclipse/papyrus/emf/resources/AbstractEMFResource.java
+++ b/plugins/emf/org.eclipse.papyrus.emf/src/org/eclipse/papyrus/emf/resources/AbstractEMFResource.java
@@ -8,7 +8,6 @@
*
* Contributors:
* Vincent LORENZO (CEA LIST) - Initial API and implementation
- * Vincent LORENZO (CEA LIST) - Bug 535070
*****************************************************************************/
package org.eclipse.papyrus.emf.resources;
@@ -95,16 +94,5 @@ public abstract class AbstractEMFResource extends XMIResourceImpl {
}
return this.defaultLoadOptions;
}
-
- /**
- * @see org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl#assignIDsWhileLoading()
- *
- * @return
- */
- @Override
- protected boolean assignIDsWhileLoading() {
- //bug 535070
- return false; // overridden to avoid to assign XMI_ID to element of previous configuration which are stilling use position to be saved
-
- }
+
}
diff --git a/plugins/emf/org.eclipse.papyrus.emf/src/org/eclipse/papyrus/emf/resources/AbstractEMFResourceWithUUID.java b/plugins/emf/org.eclipse.papyrus.emf/src/org/eclipse/papyrus/emf/resources/AbstractEMFResourceWithUUID.java
index e589fa0ca1a..53436ca660b 100644
--- a/plugins/emf/org.eclipse.papyrus.emf/src/org/eclipse/papyrus/emf/resources/AbstractEMFResourceWithUUID.java
+++ b/plugins/emf/org.eclipse.papyrus.emf/src/org/eclipse/papyrus/emf/resources/AbstractEMFResourceWithUUID.java
@@ -8,12 +8,16 @@
*
* Contributors:
* Vincent LORENZO (CEA LIST) - Initial API and implementation
- *
+ * Vincent LORENZO (CEA LIST) - Bug 535070
*****************************************************************************/
package org.eclipse.papyrus.emf.resources;
+import java.util.Collections;
+import java.util.Map;
+
import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.URIConverter;
/**
* @author Vincent LORENZO
@@ -49,4 +53,27 @@ public abstract class AbstractEMFResourceWithUUID extends AbstractEMFResource {
return true;
}
+ /**
+ * @see org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl#assignIDsWhileLoading()
+ *
+ * @return
+ */
+ @Override
+ protected boolean assignIDsWhileLoading() {
+ // bug 535070
+ // if the resource is read-only, we don't assign XMI_ID (to avoid that writeable resource saves assigned XMI_ID of the current read-only resource which won't be saved.
+ // doing that, we avoid trouble when we reopen the models
+ return !isReadOnly();// overridden to avoid to assign XMI_ID to element of previous configuration which are stilling use position to be saved
+ }
+
+ /**
+ *
+ * @return
+ * <code>true</code> is the resource is read-only
+ */
+ private boolean isReadOnly() {
+ final Map<?, ?> options = Collections.singletonMap(URIConverter.OPTION_REQUESTED_ATTRIBUTES, Collections.singleton(URIConverter.ATTRIBUTE_READ_ONLY));
+ final Map<String, ?> attributes = (getResourceSet()).getURIConverter().getAttributes(getURI(), options);
+ return Boolean.TRUE.equals(attributes.get(URIConverter.ATTRIBUTE_READ_ONLY));
+ }
}

Back to the top