Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Willink2016-05-03 17:49:58 +0000
committerEd Willink2016-05-03 17:49:58 +0000
commite79b195bc9cc47c2142d46588229b40201e4b05c (patch)
treeb13ee7c78ec3900674ac6eb5c7576e3051f0a27c
parent21384023fecccdcc9c8705aa49cf6588e618e9a5 (diff)
downloadorg.eclipse.ocl-ewillink/492430.tar.gz
org.eclipse.ocl-ewillink/492430.tar.xz
org.eclipse.ocl-ewillink/492430.zip
-rw-r--r--plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/PackageImpl.java7
-rw-r--r--plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLmetamodel.java34
-rw-r--r--plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/ecore/es2as/Ecore2AS.java96
-rw-r--r--plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/resource/ASResourceImpl.java4
-rw-r--r--plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/utilities/PivotUtilInternal.java2
5 files changed, 117 insertions, 26 deletions
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/PackageImpl.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/PackageImpl.java
index a0421e72b7..b191c56898 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/PackageImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/internal/PackageImpl.java
@@ -799,4 +799,11 @@ public class PackageImpl
public String toString() {
return super.toString();
}
+
+ @Override
+ protected void eBasicSetContainer(InternalEObject newContainer,
+ int newContainerFeatureID) {
+ // TODO Auto-generated method stub
+ super.eBasicSetContainer(newContainer, newContainerFeatureID);
+ }
} //PackageImpl
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLmetamodel.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLmetamodel.java
index caee158926..469747a7ab 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLmetamodel.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLmetamodel.java
@@ -17,30 +17,41 @@
*******************************************************************************/
package org.eclipse.ocl.pivot.model;
-import java.math.BigInteger;
import java.util.List;
import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.ocl.pivot.*;
+import org.eclipse.ocl.pivot.AnyType;
+import org.eclipse.ocl.pivot.AssociativityKind;
+import org.eclipse.ocl.pivot.BagType;
import org.eclipse.ocl.pivot.Class;
+import org.eclipse.ocl.pivot.CollectionKind;
+import org.eclipse.ocl.pivot.CollectionType;
+import org.eclipse.ocl.pivot.DataType;
+import org.eclipse.ocl.pivot.Enumeration;
+import org.eclipse.ocl.pivot.EnumerationLiteral;
+import org.eclipse.ocl.pivot.Model;
+import org.eclipse.ocl.pivot.Operation;
+import org.eclipse.ocl.pivot.OrderedSetType;
import org.eclipse.ocl.pivot.Package;
+import org.eclipse.ocl.pivot.Parameter;
+import org.eclipse.ocl.pivot.PivotPackage;
+import org.eclipse.ocl.pivot.PrimitiveType;
+import org.eclipse.ocl.pivot.Property;
+import org.eclipse.ocl.pivot.PseudostateKind;
+import org.eclipse.ocl.pivot.SequenceType;
+import org.eclipse.ocl.pivot.SetType;
+import org.eclipse.ocl.pivot.TemplateParameter;
+import org.eclipse.ocl.pivot.TransitionKind;
import org.eclipse.ocl.pivot.ids.IdManager;
import org.eclipse.ocl.pivot.internal.complete.StandardLibraryInternal;
import org.eclipse.ocl.pivot.internal.resource.ASResourceImpl;
import org.eclipse.ocl.pivot.internal.resource.OCLASResourceFactory;
import org.eclipse.ocl.pivot.internal.utilities.AbstractContents;
-import org.eclipse.ocl.pivot.library.LibraryFeature;
-import org.eclipse.ocl.pivot.model.OCLstdlib;
+import org.eclipse.ocl.pivot.internal.utilities.PivotObjectImpl;
import org.eclipse.ocl.pivot.utilities.ClassUtil;
import org.eclipse.ocl.pivot.utilities.PivotConstants;
-import org.eclipse.ocl.pivot.utilities.PivotUtil;
-
-import org.eclipse.ocl.pivot.oclstdlib.OCLstdlibPackage;
-import org.eclipse.ocl.pivot.PivotPackage;
/**
* This is the pivot representation of the http://www.eclipse.org/ocl/2015/Pivot metamodel
@@ -533,6 +544,9 @@ public class OCLmetamodel extends ASResourceImpl
private final @NonNull CollectionType _UniqueCollection_Vertex = createCollectionType(_UniqueCollection, _Vertex);
private void installClassTypes() {
+
+ ((PivotObjectImpl)_Boolean).setESObject(PivotPackage.Literals.BOOLEAN);
+
List<Class> ownedClasses;
List<Class> superClasses;
Class type;
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 6d3681f9bb..36a8a96e9a 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
@@ -68,6 +68,7 @@ import org.eclipse.ocl.pivot.resource.ProjectManager.IProjectDescriptor;
import org.eclipse.ocl.pivot.resource.ProjectManager.IProjectDescriptor.IProjectDescriptorExtension;
import org.eclipse.ocl.pivot.resource.ProjectManager.IResourceDescriptor;
import org.eclipse.ocl.pivot.utilities.ClassUtil;
+import org.eclipse.ocl.pivot.utilities.LabelUtil;
import org.eclipse.ocl.pivot.utilities.NameUtil;
import org.eclipse.ocl.pivot.utilities.ParserException;
import org.eclipse.ocl.pivot.utilities.PivotConstants;
@@ -231,6 +232,7 @@ public class Ecore2AS extends AbstractExternal2AS
public Ecore2AS(@NonNull Resource ecoreResource, @NonNull EnvironmentFactoryInternal environmentFactory) {
super(environmentFactory);
+ PivotUtilInternal.debugPrintln("Create " + NameUtil.debugSimpleName(this) + " " + NameUtil.debugSimpleName(ecoreResource) + " " + ecoreResource.getURI());
this.ecoreResource = ecoreResource;
this.environmentFactory.addExternal2AS(this);
}
@@ -331,22 +333,31 @@ public class Ecore2AS extends AbstractExternal2AS
public @NonNull Model getASModel() {
Model pivotModel2 = pivotModel;
if (pivotModel2 == null) {
- loadImports(ecoreResource);
- pivotModel2 = pivotModel = importObjects(ClassUtil.nonNullEMF(ecoreResource.getContents()), createPivotURI());
- @SuppressWarnings("null") @NonNull Resource asResource = pivotModel2.eResource();
- AliasAdapter ecoreAdapter = AliasAdapter.findAdapter(ecoreResource);
- if (ecoreAdapter != null) {
- Map<EObject, String> ecoreAliasMap = ecoreAdapter.getAliasMap();
- AliasAdapter pivotAdapter = AliasAdapter.getAdapter(asResource);
- Map<EObject, String> pivotAliasMap = pivotAdapter.getAliasMap();
- for (EObject eObject : ecoreAliasMap.keySet()) {
- String alias = ecoreAliasMap.get(eObject);
- Element element = newCreateMap.get(eObject);
- pivotAliasMap.put(element, alias);
+ URI asURI = createPivotURI();
+ Resource asResource = metamodelManager.getASResourceSet().getResource(asURI, false);
+ if (asResource != null) {
+ pivotModel2 = pivotModel = loadEcore(asResource);
+//rredundant metamodelManager.installResource(asResource);
+ installImports();
+ }
+ else {
+ loadImports(ecoreResource);
+ pivotModel2 = pivotModel = importObjects(ClassUtil.nonNullEMF(ecoreResource.getContents()), asURI);
+ asResource = pivotModel2.eResource();
+ AliasAdapter ecoreAdapter = AliasAdapter.findAdapter(ecoreResource);
+ if (ecoreAdapter != null) {
+ Map<EObject, String> ecoreAliasMap = ecoreAdapter.getAliasMap();
+ AliasAdapter pivotAdapter = AliasAdapter.getAdapter(asResource);
+ Map<EObject, String> pivotAliasMap = pivotAdapter.getAliasMap();
+ for (EObject eObject : ecoreAliasMap.keySet()) {
+ String alias = ecoreAliasMap.get(eObject);
+ Element element = newCreateMap.get(eObject);
+ pivotAliasMap.put(element, alias);
+ }
}
+ metamodelManager.installResource(asResource);
+ installImports();
}
- metamodelManager.installResource(asResource);
- installImports();
}
return pivotModel2;
}
@@ -593,6 +604,63 @@ public class Ecore2AS extends AbstractExternal2AS
return true;
}
+ private @NonNull Model loadEcore(@NonNull Resource asResource) {
+ newCreateMap = new HashMap<@NonNull EObject, @NonNull Element>();
+ Model asModel = null;
+ for (@NonNull TreeIterator<EObject> tit = asResource.getAllContents(); tit.hasNext(); ) {
+ EObject eObject = tit.next();
+ if (eObject instanceof Model) {
+ assert asModel == null;
+ asModel = (Model)eObject;
+ }
+ if ((eObject instanceof Element) && (eObject instanceof PivotObjectImpl)) {
+ PivotObjectImpl asElement = (PivotObjectImpl)eObject;
+ EObject esObject = asElement.getESObject();
+ if (esObject != null) {
+ newCreateMap.put(esObject, (Element)asElement);
+ }
+ }
+ }
+// loadEcoreEPackages(ClassUtil.nullFree(asModel.getOwnedPackages()), (List<@NonNull EPackage>)(Object)ClassUtil.nullFree(ecoreResource.getContents()));
+ assert asModel != null;
+ return asModel;
+ }
+
+/* private void loadEcoreEClassifiers(@NonNull List<org.eclipse.ocl.pivot.@NonNull Class> asClasses, @NonNull List<@NonNull EClassifier> eClassifiers) {
+ for (@NonNull EClassifier eClassifier : eClassifiers) {
+ org.eclipse.ocl.pivot.Class asClass = NameUtil.getNameable(asClasses, eClassifier.getName());
+ if (asClass == null) {
+
+ }
+ if (asClass != null) {
+ newCreateMap.put(eClassifier, asClass);
+ if (asClass instanceof PivotObjectImpl) {
+ ((PivotObjectImpl)asClass).setESObject(eClassifier);
+ }
+ }
+ else {
+ System.out.println("Missing AS Class for " + LabelUtil.getLabel(eClassifier));
+ }
+ }
+ }
+
+ private void loadEcoreEPackages(@NonNull List<org.eclipse.ocl.pivot.@NonNull Package> asPackages, @NonNull List<@NonNull EPackage> ePackages) {
+ for (@NonNull EPackage ePackage : ePackages) {
+ org.eclipse.ocl.pivot.Package asPackage = NameUtil.getNameable(asPackages, ePackage.getName());
+ if (asPackage != null) {
+ newCreateMap.put(ePackage, asPackage);
+ if (asPackage instanceof PivotObjectImpl) {
+ ((PivotObjectImpl)asPackage).setESObject(ePackage);
+ }
+ loadEcoreEPackages(ClassUtil.nullFree(asPackage.getOwnedPackages()), ClassUtil.nullFree(ePackage.getESubpackages()));
+ loadEcoreEClassifiers(ClassUtil.nullFree(asPackage.getOwnedClasses()), ClassUtil.nullFree(ePackage.getEClassifiers()));
+ }
+ else {
+ System.out.println("Missing AS Package for " + LabelUtil.getLabel(ePackage));
+ }
+ }
+ } */
+
/**
* Load all transitively referenced *.ecore files and identify any EPackages identified
* as OCL AS Metamodels.
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/resource/ASResourceImpl.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/resource/ASResourceImpl.java
index 64eae6e2cc..514f4aaf5a 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/resource/ASResourceImpl.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/resource/ASResourceImpl.java
@@ -23,7 +23,9 @@ import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.ocl.pivot.Model;
import org.eclipse.ocl.pivot.internal.utilities.AS2XMIid;
import org.eclipse.ocl.pivot.internal.utilities.PivotObjectImpl;
+import org.eclipse.ocl.pivot.internal.utilities.PivotUtilInternal;
import org.eclipse.ocl.pivot.resource.ASResource;
+import org.eclipse.ocl.pivot.utilities.NameUtil;
import org.eclipse.ocl.pivot.utilities.XMIUtil;
public class ASResourceImpl extends XMIResourceImpl implements ASResource
@@ -36,7 +38,7 @@ public class ASResourceImpl extends XMIResourceImpl implements ASResource
public ASResourceImpl(@NonNull URI uri, @NonNull ASResourceFactory asResourceFactory) {
super(uri);
this.asResourceFactory = asResourceFactory;
-// PivotUtilInternal.debugPrintln("Create " + NameUtil.debugSimpleName(this));
+ PivotUtilInternal.debugPrintln("Create " + NameUtil.debugSimpleName(this) + " " + uri);
}
@Override
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/utilities/PivotUtilInternal.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/utilities/PivotUtilInternal.java
index 988758527e..74004ecb8c 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/utilities/PivotUtilInternal.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/utilities/PivotUtilInternal.java
@@ -66,7 +66,7 @@ import org.eclipse.ocl.pivot.utilities.Pivotable;
public class PivotUtilInternal //extends PivotUtil
{
private static final Logger logger = Logger.getLogger(PivotUtilInternal.class);
- public static boolean noDebug = true;
+ public static boolean noDebug = false;
private static long startTime = System.currentTimeMillis();
public static void debugPrintln(@Nullable Object string) {

Back to the top