[unrelated] Fixes from hhoyos/qvtr
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/evaluation/QVTiModelManager.java b/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/evaluation/QVTiModelManager.java
index d46a66e..a530fcc 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/evaluation/QVTiModelManager.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/evaluation/QVTiModelManager.java
@@ -14,6 +14,7 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -29,9 +30,11 @@
import org.eclipse.emf.ecore.xmi.XMLResource;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.ocl.examples.domain.elements.DomainPackage;
import org.eclipse.ocl.examples.domain.elements.DomainType;
import org.eclipse.ocl.examples.domain.evaluation.DomainModelManager;
import org.eclipse.ocl.examples.domain.utilities.DomainUtil;
+import org.eclipse.ocl.examples.pivot.Package;
import org.eclipse.ocl.examples.pivot.ParserException;
import org.eclipse.ocl.examples.pivot.PivotPackage;
import org.eclipse.ocl.examples.pivot.Type;
@@ -59,7 +62,7 @@
private @NonNull Set<Type> allInstancesTypes;
/**
- * Array of caches for the unnavigable opposite of each used navigable middle to outer property.
+ * Array of caches for the un-navigable opposite of each used navigable middle to outer property.
* The array index is allocated by the QVTiTransformationAanaysis; it identifies the middle2outerProperty
* of interest. Each cache is from outerObject to middleObject.
*/
@@ -123,7 +126,20 @@
}
public @NonNull Set<EObject> get(@NonNull DomainType type) {
- throw new UnsupportedOperationException();
+
+ Set<EObject> elements = new HashSet<EObject>();
+ // Find the typed model for the type
+ DomainPackage p = type.getPackage();
+ for (TypedModel d : modelResourceMap.keySet()) {
+ for (Package up : d.getUsedPackage()) {
+ if (up.equals(p)) {
+ for (Object o : getElementsByType(d, (Type) type)) {
+ elements.add((EObject) o);
+ }
+ }
+ }
+ }
+ return elements;
}
/**
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/evaluation/QVTiTracingEvaluationVisitor.java b/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/evaluation/QVTiTracingEvaluationVisitor.java
index f4e7015..3f12fe1 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/evaluation/QVTiTracingEvaluationVisitor.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/evaluation/QVTiTracingEvaluationVisitor.java
@@ -106,9 +106,11 @@
// Print the output model after each mapping
logger.info("==============================");
logger.info("Output Model");
- TypedModel tm = ((Mapping)bottomPattern.getArea()).getDomain().get(0).getTypedModel();
- for (EObject eo : ((QVTiModelManager)delegate.getModelManager()).getTypeModelEObjectList(tm)) {
- logger.info(prettyPrintUnident(eo));
+ if (((Mapping)bottomPattern.getArea()).getDomain().size() > 0) {
+ TypedModel tm = ((Mapping)bottomPattern.getArea()).getDomain().get(0).getTypedModel();
+ for (EObject eo : ((QVTiModelManager)delegate.getModelManager()).getTypeModelEObjectList(tm)) {
+ logger.info(prettyPrintUnident(eo));
+ }
}
logger.info("==============================");
}
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/evaluation/QVTiTransformationAnalysis.java b/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/evaluation/QVTiTransformationAnalysis.java
index 382fa2b..ff43c09 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/evaluation/QVTiTransformationAnalysis.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtimperative/src/org/eclipse/qvtd/pivot/qvtimperative/evaluation/QVTiTransformationAnalysis.java
@@ -95,7 +95,23 @@
}
}
}
- }
+ }/* This should have been analised by the OperationCallExp search....
+ else if (eObject instanceof MappingLoop) {
+ MappingLoop mappingLoop = (MappingLoop)eObject;
+ if (mappingLoop.getSource() instanceof OperationCallExp) {
+ OperationCallExp operationCallExp = (OperationCallExp) mappingLoop.getSource();
+ Operation referredOperation = operationCallExp.getReferredOperation();
+ if ((referredOperation != null) && (referredOperation.getOperationId() == allInstancesOperationId)) {
+ OCLExpression source = operationCallExp.getSource();
+ if (source != null) {
+ Type sourceType = source.getType();
+ if (sourceType != null) {
+ allInstancesTypes.add(sourceType);
+ }
+ }
+ }
+ }
+ }*/
}
//
// Second pass