wip
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/ecore/EcoreASResourceImpl.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/ecore/EcoreASResourceImpl.java
index 021fedc..6f54e4e 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/ecore/EcoreASResourceImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/ecore/EcoreASResourceImpl.java
@@ -23,6 +23,9 @@
{
public EcoreASResourceImpl(@NonNull URI uri, @NonNull ASResourceFactory asResourceFactory) {
super(uri, asResourceFactory);
+ if (uri.toString().contains("Pivot")) {
+ getClass();
+ }
// setSaveable(false); -- FIXME change to require explicit srtSaveable(true) policy
}
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/ecore/es2as/Ecore2AS.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/ecore/es2as/Ecore2AS.java
index e459c58..289a4d1 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/ecore/es2as/Ecore2AS.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/ecore/es2as/Ecore2AS.java
@@ -348,6 +348,9 @@
Model pivotModel2 = pivotModel;
if (pivotModel2 == null) {
loadImports(ecoreResource);
+ if ((ecoreURI != null) && ecoreURI.toString().contains("QVTtemplate")) {
+ getClass();
+ }
pivotModel2 = pivotModel = importObjects(ClassUtil.nonNullEMF(ecoreResource.getContents()), createPivotURI());
installImports();
}
@@ -914,6 +917,9 @@
* Define the loadableURI to be used to form the AS URI that is then used as part of the serialized XMI.
*/
public void setEcoreURI(URI ecoreURI) {
+ if ((ecoreURI != null) && ecoreURI.toString().contains("QVTtemplate")) {
+ getClass();
+ }
this.ecoreURI = ecoreURI;
}
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/manager/PivotMetamodelManager.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/manager/PivotMetamodelManager.java
index f023ae6..0f9f59e 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/manager/PivotMetamodelManager.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/manager/PivotMetamodelManager.java
@@ -119,6 +119,8 @@
import org.eclipse.ocl.pivot.model.OCLmetamodel;
import org.eclipse.ocl.pivot.model.OCLstdlib;
import org.eclipse.ocl.pivot.resource.ASResource;
+import org.eclipse.ocl.pivot.resource.ProjectManager.IPackageDescriptor;
+import org.eclipse.ocl.pivot.resource.ProjectManager.IResourceDescriptor;
import org.eclipse.ocl.pivot.util.PivotPlugin;
import org.eclipse.ocl.pivot.utilities.ClassUtil;
import org.eclipse.ocl.pivot.utilities.FeatureFilter;
@@ -2030,6 +2032,9 @@
@Override
public @Nullable Element loadResource(@NonNull URI uri, String zzalias, @Nullable ResourceSet resourceSet) throws ParserException {
+ if (uri.toString().contains("Pivot")) {
+ getClass();
+ }
// FIXME alias not used
URI resourceURI = uri.trimFragment();
if (PivotUtilInternal.isASURI(resourceURI)) {
@@ -2046,6 +2051,18 @@
}
return asElement;
}
+ URI normalizedURI = environmentFactory.getResourceSet().getURIConverter().normalize(resourceURI);
+ URI nsURI = null;
+ IResourceDescriptor resourceDescriptor = environmentFactory.getProjectManager().getResourceDescriptor(resourceURI);
+ if (resourceDescriptor != null) {
+ for (IPackageDescriptor packageDescriptor : resourceDescriptor.getPackageDescriptors()) {
+ nsURI = packageDescriptor.getNsURI();
+ // resourceURI = nsURI;
+ break;
+ }
+ }
+ IPackageDescriptor packageDescriptor1 = environmentFactory.getProjectManager().getPackageDescriptor(resourceURI);
+ IPackageDescriptor packageDescriptor2 = environmentFactory.getProjectManager().getPackageDescriptor(normalizedURI);
// if (EPackage.Registry.INSTANCE.containsKey(resourceOrNsURI))
// return EPackage.Registry.INSTANCE.getEPackage(resourceOrNsURI);
ResourceSet externalResourceSet = resourceSet != null ? resourceSet : environmentFactory.getResourceSet();
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/resource/StandaloneProjectMap.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/resource/StandaloneProjectMap.java
index 7580a94..35ebe11 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/resource/StandaloneProjectMap.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/resource/StandaloneProjectMap.java
@@ -1257,9 +1257,19 @@
return eObject;
}
+ @Override
+ public EList<Diagnostic> getErrors() {
+ return eResource != null ? eResource.getErrors() : super.getErrors();
+ }
+
public @NonNull Resource getResource() {
return eResource != null ? eResource : this;
}
+
+ @Override
+ public EList<Diagnostic> getWarnings() {
+ return eResource != null ? eResource.getWarnings() : super.getWarnings();
+ }
}
public static class MultiplePackageResourceLoadStatus extends AbstractResourceLoadStatus