Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/rel2core/PivotNormalizer.java')
-rw-r--r--tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/rel2core/PivotNormalizer.java48
1 files changed, 44 insertions, 4 deletions
diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/rel2core/PivotNormalizer.java b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/rel2core/PivotNormalizer.java
index 482b9f8ee..ca8e3ba96 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/rel2core/PivotNormalizer.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/rel2core/PivotNormalizer.java
@@ -11,6 +11,7 @@
package org.eclipse.qvtd.xtext.qvtrelation.tests.rel2core;
import java.util.ArrayList;
+import java.util.Comparator;
import java.util.List;
import org.eclipse.emf.common.util.ECollections;
@@ -20,14 +21,30 @@ import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.ocl.examples.xtext.tests.XtextTestCase.Normalizer;
+import org.eclipse.ocl.pivot.Model;
import org.eclipse.ocl.pivot.NamedElement;
+import org.eclipse.ocl.pivot.utilities.ClassUtil;
import org.eclipse.ocl.pivot.utilities.NameUtil;
+import org.eclipse.ocl.pivot.utilities.Nameable;
+import org.eclipse.ocl.pivot.utilities.NameUtil.NameableComparator;
import org.eclipse.qvtd.xtext.qvtimperative.tests.ModelNormalizer;
public class PivotNormalizer implements ModelNormalizer
{
public static final @NonNull PivotNormalizer INSTANCE = new PivotNormalizer();
+ public static final class ToStringComparator implements Comparator<Nameable>
+ {
+ public static final @NonNull ToStringComparator INSTANCE = new ToStringComparator();
+
+ @Override
+ public int compare(Nameable o1, Nameable o2) {
+ String n1 = String.valueOf(o1);
+ String n2 = String.valueOf(o2);
+ return ClassUtil.safeCompareTo(n1, n2);
+ }
+ }
+
protected class ClassNormalizer implements Normalizer
{
protected final org.eclipse.ocl.pivot.@NonNull Class asClass;
@@ -48,6 +65,25 @@ public class PivotNormalizer implements ModelNormalizer
}
}
+ protected class ModelNormalizer implements Normalizer
+ {
+ protected final @NonNull Model asModel;
+
+ public ModelNormalizer(@NonNull Model asModel) {
+ this.asModel = asModel;
+ }
+
+ @Override
+ public void denormalize() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void normalize() {
+ ECollections.sort((EList<NamedElement>)(Object)asModel.getOwnedPackages(), NameUtil.NAMEABLE_COMPARATOR);
+ }
+ }
+
protected class PackageNormalizer implements Normalizer
{
protected final org.eclipse.ocl.pivot.@NonNull Package asPackage;
@@ -63,7 +99,7 @@ public class PivotNormalizer implements ModelNormalizer
@Override
public void normalize() {
- ECollections.sort((EList<NamedElement>)(Object)asPackage.getOwnedClasses(), NameUtil.NAMEABLE_COMPARATOR);
+ ECollections.sort((EList<NamedElement>)(Object)asPackage.getOwnedClasses(), ToStringComparator.INSTANCE);
ECollections.sort((EList<NamedElement>)(Object)asPackage.getOwnedPackages(), NameUtil.NAMEABLE_COMPARATOR);
}
}
@@ -72,15 +108,19 @@ public class PivotNormalizer implements ModelNormalizer
List<Normalizer> normalizers = new ArrayList<Normalizer>();
for (TreeIterator<EObject> tit = resource.getAllContents(); tit.hasNext(); ) {
EObject eObject = tit.next();
- if (eObject instanceof org.eclipse.ocl.pivot.Package) {
+ if (eObject instanceof Model) {
+ normalizers.add(new ModelNormalizer((Model)eObject));
+ }
+ else if (eObject instanceof org.eclipse.ocl.pivot.Package) {
normalizers.add(new PackageNormalizer((org.eclipse.ocl.pivot.Package)eObject));
}
else if (eObject instanceof org.eclipse.ocl.pivot.Class) {
+ ((org.eclipse.ocl.pivot.Class)eObject).setUnspecializedElement(null); // Suppress transient value
normalizers.add(new ClassNormalizer((org.eclipse.ocl.pivot.Class)eObject));
}
}
- EList<NamedElement> contents = (EList<NamedElement>)(Object)resource.getContents();
- ECollections.sort(contents, NameUtil.NAMEABLE_COMPARATOR);
+// EList<NamedElement> contents = (EList<NamedElement>)(Object)resource.getContents();
+// ECollections.sort(contents, ToStringComparator.INSTANCE);
for (Normalizer normalizer : normalizers) {
normalizer.normalize();
}

Back to the top