blob: d2bd22b6c1ba3326d0dab1196e448f2bd662e1db [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008 E.D.Willink and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* E.D.Willink - initial API and implementation
*******************************************************************************/
package org.eclipse.m2m.qvt.oml.test.emof.qvtoperational;
import java.io.IOException;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EcorePackage;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.m2m.qvt.oml.emof.ImperativeOCL.ImperativeOCLPackage;
import org.eclipse.m2m.qvt.oml.emof.QVTOperational.QVTOperationalPackage;
import org.eclipse.m2m.qvt.oml.emof.QVTOperational.util.QVTOperationalMappingMetaData;
import org.eclipse.m2m.qvt.oml.test.emof.imperativeocl.ImperativeOCLConsistencyTest;
import org.eclipse.qvt.declarative.ecore.mappings.IMappingMetaDataRegistry;
import org.eclipse.qvt.declarative.ecore.mappings.MappingConfigurationException;
import org.eclipse.qvt.declarative.emof.QVTRelation.QVTRelationPackage;
import org.eclipse.qvt.declarative.test.emof.emof.EMOFConsistencyTest;
import org.eclipse.qvt.declarative.test.emof.essentialocl.AbstractEssentialOCLConsistencyTest;
import org.eclipse.qvt.declarative.test.emof.essentialocl.EssentialOCLConsistencyTest;
import org.eclipse.qvt.declarative.test.emof.qvtrelation.QVTRelationConsistencyTest;
import org.eclipse.qvt.declarative.test.emof.tools.EcoreDifference;
import org.eclipse.qvt.declarative.test.emof.tools.EquivalenceHelper;
import org.eclipse.qvt.declarative.test.emof.tools.EquivalenceMap;
public class QVTOperationalConsistencyTest extends AbstractEssentialOCLConsistencyTest
{
public static void expectedEcoreDifferences(EquivalenceHelper helper, Set<EcoreDifference> differences, ResourceSet rightResourceSet) {
changeOfURI(differences, helper, org.eclipse.m2m.qvt.oml.ecore.QVTOperational.QVTOperationalPackage.eINSTANCE);
changeOfPrefix(differences, helper, org.eclipse.m2m.qvt.oml.ecore.QVTOperational.QVTOperationalPackage.eINSTANCE);
//
// EMOF to Ecore
//
changeOfObject(differences, helper, org.eclipse.m2m.qvt.oml.ecore.QVTOperational.QVTOperationalPackage.Literals.MODULE__OWNED_TAG, EcorePackage.Literals.ETYPED_ELEMENT__ETYPE);
//
// Ecore limitation on EBoolean rather than EBooleanObject
//
changeOfUnsettable(differences, helper, org.eclipse.m2m.qvt.oml.ecore.QVTOperational.QVTOperationalPackage.Literals.HELPER__IS_QUERY);
changeOfUnsettable(differences, helper, org.eclipse.m2m.qvt.oml.ecore.QVTOperational.QVTOperationalPackage.Literals.IMPERATIVE_OPERATION__IS_BLACKBOX);
changeOfUnsettable(differences, helper, org.eclipse.m2m.qvt.oml.ecore.QVTOperational.QVTOperationalPackage.Literals.MAPPING_CALL_EXP__IS_STRICT);
changeOfUnsettable(differences, helper, org.eclipse.m2m.qvt.oml.ecore.QVTOperational.QVTOperationalPackage.Literals.MODULE__IS_BLACKBOX);
changeOfUnsettable(differences, helper, org.eclipse.m2m.qvt.oml.ecore.QVTOperational.QVTOperationalPackage.Literals.RESOLVE_EXP__IS_DEFERRED);
changeOfUnsettable(differences, helper, org.eclipse.m2m.qvt.oml.ecore.QVTOperational.QVTOperationalPackage.Literals.RESOLVE_EXP__IS_INVERSE);
changeOfUnsettable(differences, helper, org.eclipse.m2m.qvt.oml.ecore.QVTOperational.QVTOperationalPackage.Literals.RESOLVE_EXP__ONE);
//
// Ecore added value
//
missingConstraint(differences, helper, org.eclipse.m2m.qvt.oml.ecore.QVTOperational.QVTOperationalPackage.Literals.ENTRY_OPERATION);
missingConstraint(differences, helper, org.eclipse.m2m.qvt.oml.ecore.QVTOperational.QVTOperationalPackage.Literals.IMPERATIVE_CALL_EXP);
missingConstraint(differences, helper, org.eclipse.m2m.qvt.oml.ecore.QVTOperational.QVTOperationalPackage.Literals.MODULE);
missingConstraint(differences, helper, org.eclipse.m2m.qvt.oml.ecore.QVTOperational.QVTOperationalPackage.Literals.OBJECT_EXP);
missingConstraint(differences, helper, org.eclipse.m2m.qvt.oml.ecore.QVTOperational.QVTOperationalPackage.Literals.OPERATIONAL_TRANSFORMATION);
missingConstraint(differences, helper, org.eclipse.m2m.qvt.oml.ecore.QVTOperational.QVTOperationalPackage.Literals.RESOLVE_EXP);
missingConstraint(differences, helper, org.eclipse.m2m.qvt.oml.ecore.QVTOperational.QVTOperationalPackage.Literals.RESOLVE_IN_EXP);
}
@Override
protected Set<EcoreDifference> getExpectedEcore2EmofDifferences(EquivalenceHelper helper, EPackage rightPackage) {
ResourceSet rightResourceSet = rightPackage.eResource().getResourceSet();
Set<EcoreDifference> differences = new HashSet<EcoreDifference>();
QVTOperationalConsistencyTest.expectedEcoreDifferences(helper, differences, rightResourceSet);
helper.setLogStream(null);
EssentialOCLConsistencyTest.expectedEcoreDifferences(differences, helper, rightResourceSet);
EMOFConsistencyTest.expectedEcore2RoseDifferences(helper, differences, rightResourceSet);
return differences;
}
@Override
protected Set<EcoreDifference> getExpectedEmof2OmgEcoreDifferences(EquivalenceHelper helper, EPackage rightPackage) {
Set<EcoreDifference> differences = new HashSet<EcoreDifference>();
changeOfURI(differences, helper, QVTOperationalPackage.eINSTANCE);
changeOfPrefix(differences, helper, QVTOperationalPackage.eINSTANCE);
changeOfName(differences, helper, QVTOperationalPackage.eINSTANCE);
changeOfName(differences, helper, QVTOperationalPackage.Literals.MAPPING_PARAMETER__REFERRED_DOMAIN);
changeOfMappedObject(differences, helper, QVTOperationalPackage.Literals.MODULE__ENTRY, EcorePackage.Literals.ETYPED_ELEMENT__ETYPE);
changeOfList(differences, helper, QVTOperationalPackage.Literals.IMPERATIVE_CALL_EXP, EcorePackage.Literals.ECLASS__ESUPER_TYPES);
changeOfList(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION, EcorePackage.Literals.ECLASS__ESUPER_TYPES);
changeOfList(differences, helper, QVTOperationalPackage.Literals.MODEL_TYPE, EcorePackage.Literals.ECLASS__ESUPER_TYPES);
changeOfList(differences, helper, QVTOperationalPackage.Literals.RESOLVE_EXP, EcorePackage.Literals.ECLASS__ESUPER_TYPES);
changeOfUpper(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION__WHEN);
changeOfUpper(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION__WHERE);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MODEL_TYPE__METAMODEL);
changeOfDefaultValue(differences, helper, QVTOperationalPackage.Literals.IMPERATIVE_CALL_EXP__IS_VIRTUAL);
changeOfDefaultValue(differences, helper, QVTOperationalPackage.Literals.MODEL_TYPE__CONFORMANCE_KIND);
changeOfOrdered(differences, helper, QVTOperationalPackage.Literals.MODULE__OWNED_VARIABLE);
changeOfOrdered(differences, helper, QVTOperationalPackage.Literals.OPERATION_BODY__VARIABLE);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.CONTEXTUAL_PROPERTY__INIT_EXPRESSION);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.CONTEXTUAL_PROPERTY__OVERRIDDEN);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.IMPERATIVE_OPERATION__OVERRIDDEN);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MAPPING_BODY__END_SECTION);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MAPPING_BODY__INIT_SECTION);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION__DISJUNCT);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION__INHERITED);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION__MERGED);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION__REFINED_RELATION);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION__WHEN);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION__WHERE);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MAPPING_PARAMETER__REFERRED_DOMAIN);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MODEL_TYPE__ADDITIONAL_CONDITION);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MODULE_IMPORT__IMPORTED_MODULE);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MODULE__ENTRY);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MODULE__OWNED_TAG);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MODULE__OWNED_VARIABLE);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.OBJECT_EXP__REFERRED_OBJECT);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.OPERATION_BODY__CONTENT);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.OPERATION_BODY__VARIABLE);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.OPERATIONAL_TRANSFORMATION__INTERMEDIATE_CLASS);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.OPERATIONAL_TRANSFORMATION__INTERMEDIATE_PROPERTY);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.OPERATIONAL_TRANSFORMATION__MODEL_PARAMETER);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.OPERATIONAL_TRANSFORMATION__REFINED);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.OPERATIONAL_TRANSFORMATION__RELATION);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.RESOLVE_IN_EXP__IN_MAPPING);
helper.setLogStream(null);
ResourceSet rightResourceSet = rightPackage.eResource().getResourceSet();
QVTRelationConsistencyTest.expectedEmofDifferences(differences, helper, rightResourceSet);
ImperativeOCLConsistencyTest.expectedEmofDifferences(differences, helper, rightPackage.eResource().getResourceSet());
EssentialOCLConsistencyTest.expectedEmofDifferences(differences, helper, rightResourceSet);
EMOFConsistencyTest.expectedEmofDifferences(differences, helper, rightResourceSet);
return differences;
}
@Override
protected Set<EcoreDifference> getExpectedEmof2OmgEmofDifferences(EquivalenceHelper helper, EPackage rightPackage) {
Set<EcoreDifference> differences = new HashSet<EcoreDifference>();
missingURI(differences, helper, QVTOperationalPackage.eINSTANCE);
changeOfName(differences, helper, QVTOperationalPackage.eINSTANCE);
changeOfName(differences, helper, QVTOperationalPackage.Literals.MAPPING_PARAMETER__REFERRED_DOMAIN);
changeOfMappedObject(differences, helper, QVTOperationalPackage.Literals.MODULE__ENTRY, EcorePackage.Literals.ETYPED_ELEMENT__ETYPE);
changeOfList(differences, helper, QVTOperationalPackage.Literals.IMPERATIVE_CALL_EXP, EcorePackage.Literals.ECLASS__ESUPER_TYPES);
changeOfList(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION, EcorePackage.Literals.ECLASS__ESUPER_TYPES);
changeOfList(differences, helper, QVTOperationalPackage.Literals.MODEL_TYPE, EcorePackage.Literals.ECLASS__ESUPER_TYPES);
changeOfList(differences, helper, QVTOperationalPackage.Literals.RESOLVE_EXP, EcorePackage.Literals.ECLASS__ESUPER_TYPES);
changeOfSize(differences, helper, QVTOperationalPackage.Literals.DIRECTION_KIND, EcorePackage.Literals.EENUM__ELITERALS);
missingEnumerationLiteral(differences, helper, QVTOperationalPackage.Literals.DIRECTION_KIND.getEEnumLiteral("in"));
missingEnumerationLiteral(differences, helper, QVTOperationalPackage.Literals.DIRECTION_KIND.getEEnumLiteral("inout"));
missingEnumerationLiteral(differences, helper, QVTOperationalPackage.Literals.DIRECTION_KIND.getEEnumLiteral("out"));
changeOfSize(differences, helper, QVTOperationalPackage.Literals.IMPORT_KIND, EcorePackage.Literals.EENUM__ELITERALS);
missingEnumerationLiteral(differences, helper, QVTOperationalPackage.Literals.IMPORT_KIND.getEEnumLiteral("access"));
missingEnumerationLiteral(differences, helper, QVTOperationalPackage.Literals.IMPORT_KIND.getEEnumLiteral("extension"));
changeOfDefaultValue(differences, helper, QVTOperationalPackage.Literals.IMPERATIVE_CALL_EXP__IS_VIRTUAL);
changeOfDefaultValue(differences, helper, QVTOperationalPackage.Literals.MODEL_TYPE__CONFORMANCE_KIND);
changeOfTransient(differences, helper, QVTOperationalPackage.Literals.MODULE_IMPORT__MODULE);
changeOfTransient(differences, helper, QVTOperationalPackage.Literals.OPERATION_BODY__OPERATION);
changeOfTransient(differences, helper, QVTOperationalPackage.Literals.VAR_PARAMETER__CTX_OWNER);
changeOfTransient(differences, helper, QVTOperationalPackage.Literals.VAR_PARAMETER__RES_OWNER);
changeOfUpper(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION__WHEN);
changeOfUpper(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION__WHERE);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.CONTEXTUAL_PROPERTY__INIT_EXPRESSION);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.CONTEXTUAL_PROPERTY__OVERRIDDEN);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.HELPER__IS_QUERY);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.IMPERATIVE_CALL_EXP__IS_VIRTUAL);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.IMPERATIVE_OPERATION__BODY);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.IMPERATIVE_OPERATION__CONTEXT);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.IMPERATIVE_OPERATION__IS_BLACKBOX);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.IMPERATIVE_OPERATION__OVERRIDDEN);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.IMPERATIVE_OPERATION__RESULT);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MAPPING_BODY__END_SECTION);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MAPPING_BODY__INIT_SECTION);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MAPPING_CALL_EXP__IS_STRICT);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION__DISJUNCT);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MAPPING_PARAMETER__EXTENT);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION__INHERITED);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION__MERGED);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION__REFINED_RELATION);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION__WHEN);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION__WHERE);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MAPPING_PARAMETER__REFERRED_DOMAIN);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MODEL_TYPE__ADDITIONAL_CONDITION);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MODEL_TYPE__CONFORMANCE_KIND);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MODULE_IMPORT__BINDING);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MODULE_IMPORT__KIND);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MODULE_IMPORT__MODULE);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MODULE__CONFIG_PROPERTY);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MODULE__ENTRY);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MODULE__IS_BLACKBOX);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MODULE__MODULE_IMPORT);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MODULE__OWNED_TAG);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MODULE__OWNED_VARIABLE);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MODULE__USED_MODEL_TYPE);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.OPERATION_BODY__CONTENT);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.OPERATION_BODY__OPERATION);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.OPERATION_BODY__VARIABLE);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.OPERATIONAL_TRANSFORMATION__INTERMEDIATE_CLASS);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.OPERATIONAL_TRANSFORMATION__INTERMEDIATE_PROPERTY);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.OPERATIONAL_TRANSFORMATION__MODEL_PARAMETER);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.OPERATIONAL_TRANSFORMATION__REFINED);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.OPERATIONAL_TRANSFORMATION__RELATION);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.RESOLVE_EXP__CONDITION);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.RESOLVE_EXP__IS_DEFERRED);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.RESOLVE_EXP__IS_INVERSE);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.RESOLVE_EXP__ONE);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.RESOLVE_EXP__TARGET);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.RESOLVE_IN_EXP__IN_MAPPING);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.VAR_PARAMETER__CTX_OWNER);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.VAR_PARAMETER__KIND);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.VAR_PARAMETER__RES_OWNER);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.CONTEXTUAL_PROPERTY__INIT_EXPRESSION);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.CONTEXTUAL_PROPERTY__OVERRIDDEN);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.IMPERATIVE_OPERATION__OVERRIDDEN);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MAPPING_BODY__END_SECTION);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MAPPING_BODY__INIT_SECTION);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION__DISJUNCT);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION__INHERITED);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION__MERGED);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION__REFINED_RELATION);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION__WHEN);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION__WHERE);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MAPPING_PARAMETER__REFERRED_DOMAIN);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MODEL_TYPE__ADDITIONAL_CONDITION);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MODULE_IMPORT__IMPORTED_MODULE);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MODULE__ENTRY);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MODULE__OWNED_TAG);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.MODULE__OWNED_VARIABLE);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.OBJECT_EXP__REFERRED_OBJECT);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.OPERATION_BODY__CONTENT);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.OPERATION_BODY__VARIABLE);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.OPERATIONAL_TRANSFORMATION__INTERMEDIATE_CLASS);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.OPERATIONAL_TRANSFORMATION__INTERMEDIATE_PROPERTY);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.OPERATIONAL_TRANSFORMATION__MODEL_PARAMETER);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.OPERATIONAL_TRANSFORMATION__REFINED);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.OPERATIONAL_TRANSFORMATION__RELATION);
missingOpposite(differences, helper, QVTOperationalPackage.Literals.RESOLVE_IN_EXP__IN_MAPPING);
helper.setLogStream(null);
ResourceSet rightResourceSet = rightPackage.eResource().getResourceSet();
// missingOppositeAnnotation(differences, helper, QVTOperationalPackage.Literals.PROPERTY_ASSIGNMENT__SLOT_EXPRESSION);
missingPrefix(differences, helper, QVTOperationalPackage.eINSTANCE);
QVTRelationConsistencyTest.expectedEmof2OmgEmofDifferences(differences, helper, rightResourceSet);
ImperativeOCLConsistencyTest.expectedEmof2OmgEmofDifferences(differences, helper, rightResourceSet);
EssentialOCLConsistencyTest.expectedEmof2OmgEmofDifferences(differences, helper, rightResourceSet);
EMOFConsistencyTest.expectedEmof2OmgEmofDifferences(differences, helper, rightResourceSet);
return differences;
}
@Override
protected Set<EcoreDifference> getExpectedEmof2OmgRoseDifferences(EquivalenceHelper helper, EPackage rightPackage) {
Set<EcoreDifference> differences = new HashSet<EcoreDifference>();
changeOfPrefix(differences, helper, QVTOperationalPackage.eINSTANCE);
changeOfURI(differences, helper, QVTOperationalPackage.eINSTANCE);
changeOfName(differences, helper, QVTOperationalPackage.eINSTANCE);
changeOfName(differences, helper, QVTOperationalPackage.Literals.MAPPING_PARAMETER__REFERRED_DOMAIN);
changeOfList(differences, helper, QVTOperationalPackage.Literals.IMPERATIVE_CALL_EXP, EcorePackage.Literals.ECLASS__ESUPER_TYPES);
changeOfList(differences, helper, QVTOperationalPackage.Literals.MAPPING_OPERATION, EcorePackage.Literals.ECLASS__ESUPER_TYPES);
changeOfList(differences, helper, QVTOperationalPackage.Literals.MODEL_TYPE, EcorePackage.Literals.ECLASS__ESUPER_TYPES);
changeOfList(differences, helper, QVTOperationalPackage.Literals.RESOLVE_EXP, EcorePackage.Literals.ECLASS__ESUPER_TYPES);
changeOfMappedObject(differences, helper, QVTOperationalPackage.Literals.MODULE__ENTRY, EcorePackage.Literals.ETYPED_ELEMENT__ETYPE);
changeOfLower(differences, helper, QVTOperationalPackage.Literals.MODEL_TYPE__METAMODEL);
changeOfDefaultValue(differences, helper, QVTOperationalPackage.Literals.IMPERATIVE_CALL_EXP__IS_VIRTUAL);
changeOfDefaultValue(differences, helper, QVTOperationalPackage.Literals.MODEL_TYPE__CONFORMANCE_KIND);
changeOfOrdered(differences, helper, QVTOperationalPackage.Literals.OPERATION_BODY__CONTENT);
changeOfOppositeAnnotation(differences, helper, QVTOperationalPackage.Literals.MAPPING_PARAMETER__REFERRED_DOMAIN, getFeature(getClass(rightPackage, "MappingParameter"), "refinedDomain"));
helper.setLogStream(null);
ResourceSet rightResourceSet = rightPackage.eResource().getResourceSet();
QVTRelationConsistencyTest.expectedEmofDifferences(differences, helper, rightResourceSet);
ImperativeOCLConsistencyTest.expectedEmofDifferences(differences, helper, rightResourceSet);
EssentialOCLConsistencyTest.expectedEmofDifferences(differences, helper, rightResourceSet);
EMOFConsistencyTest.expectedEmofDifferences(differences, helper, rightResourceSet);
return differences;
}
@Override
protected Set<EcoreDifference> getExpectedEmof2RoseDifferences(EquivalenceHelper helper, EPackage rightPackage) {
Set<EcoreDifference> differences = new HashSet<EcoreDifference>();
changeOfPrefix(differences, helper, QVTOperationalPackage.eINSTANCE);
return differences;
}
@Override
protected IMappingMetaDataRegistry getMappingMetaDataRegistry() {
IMappingMetaDataRegistry mappingMetaDataRegistry = super.getMappingMetaDataRegistry();
QVTOperationalMappingMetaData.INSTANCE.getFactory(mappingMetaDataRegistry);
return mappingMetaDataRegistry;
}
@Override
public String getPackageName() {
return QVTOPERATIONAL_PACKAGE_NAME;
}
@Override
protected void installEcoreEclipseMappings(EquivalenceMap comparator, ResourceSet resourceSet) {
super.installEcoreEclipseMappings(comparator, resourceSet);
comparator.putEquivalence(org.eclipse.m2m.qvt.oml.ecore.QVTOperational.QVTOperationalPackage.eINSTANCE, getPackage(resourceSet, QVTOPERATIONAL_PACKAGE_NAME));
}
@Override
protected void installEmofEclipseMappings(EquivalenceMap comparator, ResourceSet resourceSet) {
super.installEmofEclipseMappings(comparator, resourceSet);
comparator.putEquivalence(QVTOperationalPackage.eINSTANCE, getPackage(resourceSet, QVTOPERATIONAL_PACKAGE_NAME));
}
@Override
protected void installEmofOmgMappings(EquivalenceMap comparator, ResourceSet resourceSet) {
super.installEmofOmgMappings(comparator, resourceSet);
EPackage emofPackage = getPackage(resourceSet, IMPERATIVE_OCL_PACKAGE_NAME.toLowerCase());
comparator.putEquivalence(ImperativeOCLPackage.eINSTANCE, emofPackage);
comparator.putEquivalence(ImperativeOCLPackage.Literals.LIST_LITERAL_EXP, null);
comparator.putEquivalence(null, getClass(emofPackage, "TemplateParameterType"));
comparator.putEquivalence(QVTRelationPackage.eINSTANCE, getPackage(resourceSet, QVTRELATION_PACKAGE_NAME.toLowerCase()));
comparator.putEquivalence(QVTOperationalPackage.eINSTANCE, getPackage(resourceSet, QVTOPERATIONAL_PACKAGE_NAME.toLowerCase()));
comparator.putEquivalence(QVTOperationalPackage.Literals.MAPPING_PARAMETER__REFERRED_DOMAIN, getFeature(getClass(getPackage(resourceSet, QVTOPERATIONAL_PACKAGE_NAME.toLowerCase()), "MappingParameter"), "refinedDomain"));
}
@Override
protected void installEmof2EmofMappings(EquivalenceMap comparator, ResourceSet resourceSet) {
super.installEmof2EmofMappings(comparator, resourceSet);
comparator.putEquivalence(ImperativeOCLPackage.eINSTANCE, getPackage(resourceSet, IMPERATIVE_OCL_PACKAGE_NAME.toLowerCase()));
comparator.putEquivalence(QVTRelationPackage.eINSTANCE, getPackage(resourceSet, QVTRELATION_PACKAGE_NAME.toLowerCase()));
comparator.putEquivalence(QVTOperationalPackage.eINSTANCE, getPackage(resourceSet, QVTOPERATIONAL_PACKAGE_NAME.toLowerCase()));
comparator.putEquivalence(QVTOperationalPackage.Literals.MAPPING_PARAMETER__REFERRED_DOMAIN, getFeature(getClass(getPackage(resourceSet, QVTOPERATIONAL_PACKAGE_NAME.toLowerCase()), "MappingParameter"), "refinedDomain"));
}
public void testQVTOperationalConsistency() throws IOException, MappingConfigurationException {
Map<InconsistencyKey, InconsistencyValue> ecoreInconsistencies = new HashMap<InconsistencyKey, InconsistencyValue>();
Map<InconsistencyKey, InconsistencyValue> adaptingInconsistencies = new HashMap<InconsistencyKey, InconsistencyValue>();
htmlStream.setEnabled(false);
getExpectedDerivedPackageInconsistencies(ecoreInconsistencies, adaptingInconsistencies);
htmlStream.setEnabled(true);
ecore2EmofAdapterConsistencyTest(ecoreInconsistencies, adaptingInconsistencies);
emof2OmgRoseConsistencyTest(QVTOperationalPackage.eNS_URI, "qvtoperational.ecore");
emof2OmgEcoreConsistencyTest(QVTOperationalPackage.eNS_URI, "qvtoperational.ecore");
emof2OmgEmofConsistencyTest(QVTOperationalPackage.eNS_URI);
emof2RoseConsistencyTest(QVTOperationalPackage.eNS_URI, "QVTOperational.ecore");
ecore2EmofConsistencyTest(org.eclipse.m2m.qvt.oml.ecore.QVTOperational.QVTOperationalPackage.eNS_URI,
QVTOperationalPackage.eINSTANCE,
org.eclipse.m2m.qvt.oml.emof.ImperativeOCL.ImperativeOCLPackage.eINSTANCE,
org.eclipse.qvt.declarative.emof.EssentialOCL.EssentialOCLPackage.eINSTANCE,
org.eclipse.qvt.declarative.emof.EMOF.EMOFPackage.eINSTANCE);
}
}