| /******************************************************************************* |
| * 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); |
| } |
| } |