[579037] Avoid assuming custom PrimitiveTypes
diff --git a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLCommonXtend.xtend b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLCommonXtend.xtend
index bcefe13..e1bb5e7 100644
--- a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLCommonXtend.xtend
+++ b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLCommonXtend.xtend
@@ -123,7 +123,7 @@
«FOR pkge : sortedPackages»
«FOR type : ClassUtil.nullFree(pkge2primitiveTypes.get(pkge))»
- private final @NonNull PrimitiveType «type.getPrefixedSymbolNameWithoutNormalization("_" + type.partialName())» = createPrimitiveType("«type.name»");
+ private final @NonNull Class «type.getPrefixedSymbolNameWithoutNormalization("_" + type.partialName())» = createPrimitiveType("«type.name»");
«ENDFOR»
«ENDFOR»
'''
@@ -272,6 +272,8 @@
«FOR name : externals»«var element = ClassUtil.nonNullState(name2external.get(name))»
«IF element instanceof Package»
private final @NonNull Package «getPrefixedSymbolName(element, name)» = «element.getExternalReference()»;
+ «ELSEIF element instanceof PrimitiveType»
+ private final @NonNull Class «getPrefixedSymbolName(element, name)» = «element.getExternalReference()»;
«ELSE»
private final @NonNull «element.eClass().getName()» «getPrefixedSymbolName(element, name)» = «element.getExternalReference()»;
«ENDIF»
diff --git a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLmetamodelXtend.xtend b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLmetamodelXtend.xtend
index 42bda99..7e37cdb 100644
--- a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLmetamodelXtend.xtend
+++ b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLmetamodelXtend.xtend
@@ -84,42 +84,51 @@
* Do not edit it.
*******************************************************************************/
package «javaPackageName»;
-
+
import java.io.IOException;
- import java.math.BigInteger;
import java.util.List;
import java.util.Map;
-
+
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
- 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.BagType;
+ import org.eclipse.ocl.pivot.BooleanType;
import org.eclipse.ocl.pivot.Class;
+ 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.Property;
+ import org.eclipse.ocl.pivot.SequenceType;
+ import org.eclipse.ocl.pivot.SetType;
+ import org.eclipse.ocl.pivot.TemplateParameter;
import org.eclipse.ocl.pivot.ids.IdManager;
import org.eclipse.ocl.pivot.internal.complete.StandardLibraryInternal;
import org.eclipse.ocl.pivot.internal.library.StandardLibraryContribution;
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.utilities.ClassUtil;
import org.eclipse.ocl.pivot.utilities.PivotConstants;
- import org.eclipse.ocl.pivot.internal.utilities.PivotObjectImpl;
- import org.eclipse.ocl.pivot.utilities.PivotUtil;
«IF ((externalPackages !== null) && !externalPackages.isEmpty())»
-
+
«FOR externalPackage : externalPackages»
«externalPackage.declarePackageImport()»
«ENDFOR»
«ENDIF»
-
+
/**
* This is the pivot representation of the «uri» metamodel
* auto-generated from «sourceFile».
diff --git a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLstdlibXtend.xtend b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLstdlibXtend.xtend
index 0e1b09b..8780ec7 100644
--- a/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLstdlibXtend.xtend
+++ b/examples/org.eclipse.ocl.examples.build/src/org/eclipse/ocl/examples/build/xtend/GenerateOCLstdlibXtend.xtend
@@ -136,31 +136,44 @@
* Do not edit it.
*******************************************************************************/
package «javaPackageName»;
-
+
import java.io.IOException;
- import java.util.ArrayList;
import java.util.List;
import java.util.Map;
- import java.util.Set;
-
+
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
- import org.eclipse.emf.common.util.TreeIterator;
import org.eclipse.emf.common.util.URI;
- import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
- import org.eclipse.emf.ecore.EReference;
- import org.eclipse.emf.ecore.impl.BasicEObjectImpl;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
- 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.CollectionType;
+ import org.eclipse.ocl.pivot.InvalidType;
+ import org.eclipse.ocl.pivot.Iteration;
+ import org.eclipse.ocl.pivot.LambdaType;
+ import org.eclipse.ocl.pivot.Library;
+ import org.eclipse.ocl.pivot.MapType;
+ 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.Precedence;
+ import org.eclipse.ocl.pivot.PrimitiveType;
+ import org.eclipse.ocl.pivot.Property;
+ import org.eclipse.ocl.pivot.SelfType;
+ import org.eclipse.ocl.pivot.SequenceType;
+ import org.eclipse.ocl.pivot.SetType;
+ import org.eclipse.ocl.pivot.TemplateParameter;
+ import org.eclipse.ocl.pivot.TupleType;
+ import org.eclipse.ocl.pivot.VoidType;
import org.eclipse.ocl.pivot.ids.IdManager;
- import org.eclipse.ocl.pivot.ids.PackageId;
import org.eclipse.ocl.pivot.internal.library.StandardLibraryContribution;
import org.eclipse.ocl.pivot.internal.resource.ASResourceImpl;
import org.eclipse.ocl.pivot.internal.resource.OCLASResourceFactory;
@@ -168,16 +181,14 @@
import org.eclipse.ocl.pivot.internal.utilities.PivotUtilInternal;
import org.eclipse.ocl.pivot.model.OCLmetamodel;
import org.eclipse.ocl.pivot.utilities.ClassUtil;
- import org.eclipse.ocl.pivot.utilities.MetamodelManager;
import org.eclipse.ocl.pivot.utilities.PivotConstants;
- import org.eclipse.ocl.pivot.utilities.PivotUtil;
«IF ((externalPackages !== null) && !externalPackages.isEmpty())»
-
+
«FOR externalPackage : externalPackages»
«externalPackage.declarePackageImport()»
«ENDFOR»
«ENDIF»
-
+
/**
* This is the «uri» Standard Library
* auto-generated from «sourceFile».
diff --git a/examples/org.eclipse.ocl.examples.codegen/emf-gen/org/eclipse/ocl/examples/codegen/model/CGLibrary.java b/examples/org.eclipse.ocl.examples.codegen/emf-gen/org/eclipse/ocl/examples/codegen/model/CGLibrary.java
index d3ab3af..b30f0bb 100644
--- a/examples/org.eclipse.ocl.examples.codegen/emf-gen/org/eclipse/ocl/examples/codegen/model/CGLibrary.java
+++ b/examples/org.eclipse.ocl.examples.codegen/emf-gen/org/eclipse/ocl/examples/codegen/model/CGLibrary.java
@@ -252,11 +252,11 @@
}
private final @NonNull Package _ocl = getPackage(org.eclipse.ocl.pivot.model.OCLstdlib.getDefaultModel(), "ocl");
- private final @NonNull PrimitiveType _Boolean = getPrimitiveType(_ocl, "Boolean");
- private final @NonNull PrimitiveType _Integer = getPrimitiveType(_ocl, "Integer");
+ private final @NonNull Class _Boolean = getPrimitiveType(_ocl, "Boolean");
+ private final @NonNull Class _Integer = getPrimitiveType(_ocl, "Integer");
private final @NonNull AnyType _OclAny = getAnyType(_ocl, "OclAny");
private final @NonNull Class _OclElement = getClass(_ocl, "OclElement");
- private final @NonNull PrimitiveType _String = getPrimitiveType(_ocl, "String");
+ private final @NonNull Class _String = getPrimitiveType(_ocl, "String");
private void installPackages() {
model.getOwnedPackages().add(ocl);
diff --git a/plugins/org.eclipse.ocl.pivot/.settings/.api_filters b/plugins/org.eclipse.ocl.pivot/.settings/.api_filters
index e046322..ff62169 100644
--- a/plugins/org.eclipse.ocl.pivot/.settings/.api_filters
+++ b/plugins/org.eclipse.ocl.pivot/.settings/.api_filters
@@ -1515,6 +1515,14 @@
</message_arguments>
</filter>
</resource>
+ <resource path="src/org/eclipse/ocl/pivot/internal/utilities/AbstractContents.java" type="org.eclipse.ocl.pivot.internal.utilities.AbstractContents">
+ <filter id="338792546">
+ <message_arguments>
+ <message_argument value="org.eclipse.ocl.pivot.internal.utilities.AbstractContents"/>
+ <message_argument value="getPrimitiveType(Package, String)"/>
+ </message_arguments>
+ </filter>
+ </resource>
<resource path="src/org/eclipse/ocl/pivot/internal/utilities/AbstractTechnology.java" type="org.eclipse.ocl.pivot.internal.utilities.AbstractTechnology">
<filter comment="Bug 512402 workaround" id="576725006">
<message_arguments>
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 77ca920..c916825 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
@@ -42,7 +42,6 @@
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.SequenceType;
import org.eclipse.ocl.pivot.SetType;
@@ -55,6 +54,9 @@
import org.eclipse.ocl.pivot.internal.utilities.AbstractContents;
import org.eclipse.ocl.pivot.utilities.PivotConstants;
+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
* auto-generated from /org.eclipse.ocl.pivot/model/Pivot.ecore.
@@ -259,20 +261,20 @@
private final @NonNull Package _ocl = standardLibrary;
private final @NonNull BagType _Bag = getBagType(_ocl, "Bag");
- private final @NonNull BooleanType _Boolean = getBooleanType(_ocl, "Boolean");
+ private final @NonNull Class _Boolean = getBooleanType(_ocl, "Boolean");
private final @NonNull CollectionType _Collection = getCollectionType(_ocl, "Collection");
- private final @NonNull PrimitiveType _Integer = getPrimitiveType(_ocl, "Integer");
+ private final @NonNull Class _Integer = getPrimitiveType(_ocl, "Integer");
private final @NonNull AnyType _OclAny = getAnyType(_ocl, "OclAny");
private final @NonNull Class _OclElement = getClass(_ocl, "OclElement");
private final @NonNull Class _OclEnumeration = getClass(_ocl, "OclEnumeration");
private final @NonNull CollectionType _OrderedCollection = getCollectionType(_ocl, "OrderedCollection");
private final @NonNull OrderedSetType _OrderedSet = getOrderedSetType(_ocl, "OrderedSet");
- private final @NonNull PrimitiveType _Real = getPrimitiveType(_ocl, "Real");
+ private final @NonNull Class _Real = getPrimitiveType(_ocl, "Real");
private final @NonNull SequenceType _Sequence = getSequenceType(_ocl, "Sequence");
private final @NonNull SetType _Set = getSetType(_ocl, "Set");
- private final @NonNull PrimitiveType _String = getPrimitiveType(_ocl, "String");
+ private final @NonNull Class _String = getPrimitiveType(_ocl, "String");
private final @NonNull CollectionType _UniqueCollection = getCollectionType(_ocl, "UniqueCollection");
- private final @NonNull PrimitiveType _UnlimitedNatural = getPrimitiveType(_ocl, "UnlimitedNatural");
+ private final @NonNull Class _UnlimitedNatural = getPrimitiveType(_ocl, "UnlimitedNatural");
private final @NonNull TemplateParameter _Bag_T = getTemplateParameter(_Bag, 0);
private final @NonNull TemplateParameter _Collection_T = getTemplateParameter(_Collection, 0);
private final @NonNull TemplateParameter _OrderedCollection_T = getTemplateParameter(_OrderedCollection, 0);
diff --git a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLstdlib.java b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLstdlib.java
index eecdabb..8252a1d 100644
--- a/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLstdlib.java
+++ b/plugins/org.eclipse.ocl.pivot/emf-gen/org/eclipse/ocl/pivot/model/OCLstdlib.java
@@ -59,10 +59,11 @@
import org.eclipse.ocl.pivot.internal.resource.OCLASResourceFactory;
import org.eclipse.ocl.pivot.internal.utilities.AbstractContents;
import org.eclipse.ocl.pivot.internal.utilities.PivotUtilInternal;
-import org.eclipse.ocl.pivot.oclstdlib.OCLstdlibPackage;
import org.eclipse.ocl.pivot.utilities.ClassUtil;
import org.eclipse.ocl.pivot.utilities.PivotConstants;
+import org.eclipse.ocl.pivot.oclstdlib.OCLstdlibPackage;
+
/**
* This is the http://www.eclipse.org/ocl/2015/Library Standard Library
* auto-generated from /org.eclipse.ocl.pivot/model/OCL-2.5.oclstdlib.
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/utilities/AbstractContents.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/utilities/AbstractContents.java
index 417b3e3..dba20ef 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/utilities/AbstractContents.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/utilities/AbstractContents.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2018 Willink Transformations and others.
+ * Copyright (c) 2012, 2022 Willink Transformations and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
@@ -35,7 +35,6 @@
import org.eclipse.ocl.pivot.OrderedSetType;
import org.eclipse.ocl.pivot.ParameterVariable;
import org.eclipse.ocl.pivot.PivotFactory;
-import org.eclipse.ocl.pivot.PrimitiveType;
import org.eclipse.ocl.pivot.Property;
import org.eclipse.ocl.pivot.SelfType;
import org.eclipse.ocl.pivot.SequenceType;
@@ -420,8 +419,11 @@
return ClassUtil.nonNullState(NameUtil.getNameable(asModel.getOwnedPackages(), name));
}
- protected @NonNull PrimitiveType getPrimitiveType(org.eclipse.ocl.pivot.@NonNull Package asPackage, @NonNull String name) {
- return (PrimitiveType) ClassUtil.nonNullState(asPackage.getOwnedClass(name));
+ /**
+ * @since 1.18
+ */
+ protected org.eclipse.ocl.pivot.@NonNull Class getPrimitiveType(org.eclipse.ocl.pivot.@NonNull Package asPackage, @NonNull String name) {
+ return ClassUtil.nonNullState(asPackage.getOwnedClass(name));
}
protected @NonNull Property getProperty(org.eclipse.ocl.pivot.@NonNull Class asClass, @NonNull String name) {