diff options
author | Ed Willink | 2016-10-13 13:26:43 +0000 |
---|---|---|
committer | Ed Willink | 2016-10-13 15:17:23 +0000 |
commit | b5458dafc451c05d3ff40b796bf955fb09de1560 (patch) | |
tree | b244e2893ef92e3151e79ee2920d78832461110e /tests/org.eclipse.qvtd.doc.bigmde2016.tests | |
parent | a2a5194a6002184442357da8d2631f75bd05bf4e (diff) | |
download | org.eclipse.qvtd-b5458dafc451c05d3ff40b796bf955fb09de1560.tar.gz org.eclipse.qvtd-b5458dafc451c05d3ff40b796bf955fb09de1560.tar.xz org.eclipse.qvtd-b5458dafc451c05d3ff40b796bf955fb09de1560.zip |
[505814] Remove BigMDE2016 QVTc exports, add separate test
Diffstat (limited to 'tests/org.eclipse.qvtd.doc.bigmde2016.tests')
47 files changed, 6403 insertions, 317 deletions
diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/.classpath b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/.classpath index da98864b0..1c89ecb7e 100644 --- a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/.classpath +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/.classpath @@ -12,5 +12,6 @@ </classpathentry> <classpathentry excluding="**/*.launch" kind="src" path="src"/> <classpathentry kind="src" path="test-gen"/> + <classpathentry kind="src" path="src-copy"/> <classpathentry kind="output" path="bin"/> </classpath> diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/META-INF/MANIFEST.MF index 327848697..d0e1cf763 100644 --- a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/META-INF/MANIFEST.MF +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/META-INF/MANIFEST.MF @@ -25,3 +25,4 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", Bundle-ActivationPolicy: lazy Bundle-Vendor: %providerName Bundle-Localization: plugin +Export-Package: org.eclipse.qvtd.doc.bigmde2016.tests.qvtc diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/ReadMe.txt b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/ReadMe.txt new file mode 100644 index 000000000..78ef13633 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/ReadMe.txt @@ -0,0 +1,3 @@ +The files in src-copy are copied from equivalently named files in org.eclipse.qvtd.xtext.qvtcore.tests. + +Imports/@Overrides are fixed up to reduce warnings. diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/FamiliesFactory.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/FamiliesFactory.java new file mode 100644 index 000000000..7c7f188bc --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/FamiliesFactory.java @@ -0,0 +1,59 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Families; + +import org.eclipse.emf.ecore.EFactory; + +/** + * <!-- begin-user-doc --> + * The <b>Factory</b> for the model. + * It provides a create method for each non-abstract class of the model. + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage + * @generated + */ +public interface FamiliesFactory extends EFactory { + /** + * The singleton instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + FamiliesFactory eINSTANCE = org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.FamiliesFactoryImpl.init(); + + /** + * Returns a new object of class '<em>Family</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Family</em>'. + * @generated + */ + Family createFamily(); + + /** + * Returns a new object of class '<em>Member</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Member</em>'. + * @generated + */ + Member createMember(); + + /** + * Returns the package supported by this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the package supported by this factory. + * @generated + */ + FamiliesPackage getFamiliesPackage(); + +} //FamiliesFactory diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/FamiliesPackage.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/FamiliesPackage.java new file mode 100644 index 000000000..4a9b3175b --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/FamiliesPackage.java @@ -0,0 +1,469 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Families; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +/** + * <!-- begin-user-doc --> + * The <b>Package</b> for the model. + * It contains accessors for the meta objects to represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each operation of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesFactory + * @model kind="package" + * @generated + */ +public interface FamiliesPackage extends EPackage { + /** + * The package name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNAME = "Families"; + + /** + * The package namespace URI. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_URI = "http://www.eclipse.org/qvtd/xtext/qvtcore/tests/Upper2Lower/1.0/Families"; + + /** + * The package namespace name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_PREFIX = "families"; + + /** + * The singleton instance of the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + FamiliesPackage eINSTANCE = org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.FamiliesPackageImpl.init(); + + /** + * The meta object id for the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.FamilyImpl <em>Family</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.FamilyImpl + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.FamiliesPackageImpl#getFamily() + * @generated + */ + int FAMILY = 0; + + /** + * The feature id for the '<em><b>Last Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FAMILY__LAST_NAME = 0; + + /** + * The feature id for the '<em><b>Father</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FAMILY__FATHER = 1; + + /** + * The feature id for the '<em><b>Mother</b></em>' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FAMILY__MOTHER = 2; + + /** + * The feature id for the '<em><b>Sons</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FAMILY__SONS = 3; + + /** + * The feature id for the '<em><b>Daughters</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FAMILY__DAUGHTERS = 4; + + /** + * The number of structural features of the '<em>Family</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FAMILY_FEATURE_COUNT = 5; + + /** + * The number of operations of the '<em>Family</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FAMILY_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.MemberImpl <em>Member</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.MemberImpl + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.FamiliesPackageImpl#getMember() + * @generated + */ + int MEMBER = 1; + + /** + * The feature id for the '<em><b>First Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER__FIRST_NAME = 0; + + /** + * The feature id for the '<em><b>Family Father</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER__FAMILY_FATHER = 1; + + /** + * The feature id for the '<em><b>Family Mother</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER__FAMILY_MOTHER = 2; + + /** + * The feature id for the '<em><b>Family Son</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER__FAMILY_SON = 3; + + /** + * The feature id for the '<em><b>Family Daughter</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER__FAMILY_DAUGHTER = 4; + + /** + * The number of structural features of the '<em>Member</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER_FEATURE_COUNT = 5; + + /** + * The number of operations of the '<em>Member</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER_OPERATION_COUNT = 0; + + + /** + * Returns the meta object for class '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family <em>Family</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Family</em>'. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family + * @generated + */ + EClass getFamily(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getLastName <em>Last Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Last Name</em>'. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getLastName() + * @see #getFamily() + * @generated + */ + EAttribute getFamily_LastName(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getFather <em>Father</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Father</em>'. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getFather() + * @see #getFamily() + * @generated + */ + EReference getFamily_Father(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getMother <em>Mother</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference '<em>Mother</em>'. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getMother() + * @see #getFamily() + * @generated + */ + EReference getFamily_Mother(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getSons <em>Sons</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Sons</em>'. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getSons() + * @see #getFamily() + * @generated + */ + EReference getFamily_Sons(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getDaughters <em>Daughters</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Daughters</em>'. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getDaughters() + * @see #getFamily() + * @generated + */ + EReference getFamily_Daughters(); + + /** + * Returns the meta object for class '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member <em>Member</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Member</em>'. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member + * @generated + */ + EClass getMember(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFirstName <em>First Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>First Name</em>'. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFirstName() + * @see #getMember() + * @generated + */ + EAttribute getMember_FirstName(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilyFather <em>Family Father</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the container reference '<em>Family Father</em>'. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilyFather() + * @see #getMember() + * @generated + */ + EReference getMember_FamilyFather(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilyMother <em>Family Mother</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the container reference '<em>Family Mother</em>'. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilyMother() + * @see #getMember() + * @generated + */ + EReference getMember_FamilyMother(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilySon <em>Family Son</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the container reference '<em>Family Son</em>'. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilySon() + * @see #getMember() + * @generated + */ + EReference getMember_FamilySon(); + + /** + * Returns the meta object for the container reference '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilyDaughter <em>Family Daughter</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the container reference '<em>Family Daughter</em>'. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilyDaughter() + * @see #getMember() + * @generated + */ + EReference getMember_FamilyDaughter(); + + /** + * Returns the factory that creates the instances of the model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the factory that creates the instances of the model. + * @generated + */ + FamiliesFactory getFamiliesFactory(); + + /** + * <!-- begin-user-doc --> + * Defines literals for the meta objects that represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each operation of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @generated + */ + interface Literals { + /** + * The meta object literal for the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.FamilyImpl <em>Family</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.FamilyImpl + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.FamiliesPackageImpl#getFamily() + * @generated + */ + EClass FAMILY = eINSTANCE.getFamily(); + + /** + * The meta object literal for the '<em><b>Last Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute FAMILY__LAST_NAME = eINSTANCE.getFamily_LastName(); + + /** + * The meta object literal for the '<em><b>Father</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference FAMILY__FATHER = eINSTANCE.getFamily_Father(); + + /** + * The meta object literal for the '<em><b>Mother</b></em>' containment reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference FAMILY__MOTHER = eINSTANCE.getFamily_Mother(); + + /** + * The meta object literal for the '<em><b>Sons</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference FAMILY__SONS = eINSTANCE.getFamily_Sons(); + + /** + * The meta object literal for the '<em><b>Daughters</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference FAMILY__DAUGHTERS = eINSTANCE.getFamily_Daughters(); + + /** + * The meta object literal for the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.MemberImpl <em>Member</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.MemberImpl + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.FamiliesPackageImpl#getMember() + * @generated + */ + EClass MEMBER = eINSTANCE.getMember(); + + /** + * The meta object literal for the '<em><b>First Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute MEMBER__FIRST_NAME = eINSTANCE.getMember_FirstName(); + + /** + * The meta object literal for the '<em><b>Family Father</b></em>' container reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference MEMBER__FAMILY_FATHER = eINSTANCE.getMember_FamilyFather(); + + /** + * The meta object literal for the '<em><b>Family Mother</b></em>' container reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference MEMBER__FAMILY_MOTHER = eINSTANCE.getMember_FamilyMother(); + + /** + * The meta object literal for the '<em><b>Family Son</b></em>' container reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference MEMBER__FAMILY_SON = eINSTANCE.getMember_FamilySon(); + + /** + * The meta object literal for the '<em><b>Family Daughter</b></em>' container reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference MEMBER__FAMILY_DAUGHTER = eINSTANCE.getMember_FamilyDaughter(); + + } + +} //FamiliesPackage diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/Family.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/Family.java new file mode 100644 index 000000000..8871ab04d --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/Family.java @@ -0,0 +1,155 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Families; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Family</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * </p> + * <ul> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getLastName <em>Last Name</em>}</li> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getFather <em>Father</em>}</li> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getMother <em>Mother</em>}</li> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getSons <em>Sons</em>}</li> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getDaughters <em>Daughters</em>}</li> + * </ul> + * + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage#getFamily() + * @model + * @generated + */ +public interface Family extends EObject { + /** + * Returns the value of the '<em><b>Last Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Last Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Last Name</em>' attribute. + * @see #setLastName(String) + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage#getFamily_LastName() + * @model unique="false" required="true" ordered="false" + * @generated + */ + String getLastName(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getLastName <em>Last Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Last Name</em>' attribute. + * @see #getLastName() + * @generated + */ + void setLastName(String value); + + /** + * Returns the value of the '<em><b>Father</b></em>' containment reference. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilyFather <em>Family Father</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Father</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Father</em>' containment reference. + * @see #setFather(Member) + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage#getFamily_Father() + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilyFather + * @model opposite="familyFather" containment="true" required="true" ordered="false" + * @generated + */ + Member getFather(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getFather <em>Father</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Father</em>' containment reference. + * @see #getFather() + * @generated + */ + void setFather(Member value); + + /** + * Returns the value of the '<em><b>Mother</b></em>' containment reference. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilyMother <em>Family Mother</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Mother</em>' containment reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Mother</em>' containment reference. + * @see #setMother(Member) + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage#getFamily_Mother() + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilyMother + * @model opposite="familyMother" containment="true" required="true" ordered="false" + * @generated + */ + Member getMother(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getMother <em>Mother</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Mother</em>' containment reference. + * @see #getMother() + * @generated + */ + void setMother(Member value); + + /** + * Returns the value of the '<em><b>Sons</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member}. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilySon <em>Family Son</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Sons</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Sons</em>' containment reference list. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage#getFamily_Sons() + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilySon + * @model opposite="familySon" containment="true" ordered="false" + * @generated + */ + EList<Member> getSons(); + + /** + * Returns the value of the '<em><b>Daughters</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member}. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilyDaughter <em>Family Daughter</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Daughters</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Daughters</em>' containment reference list. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage#getFamily_Daughters() + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilyDaughter + * @model opposite="familyDaughter" containment="true" ordered="false" + * @generated + */ + EList<Member> getDaughters(); + +} // Family diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/Member.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/Member.java new file mode 100644 index 000000000..468748fb9 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/Member.java @@ -0,0 +1,174 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Families; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Member</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * </p> + * <ul> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFirstName <em>First Name</em>}</li> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilyFather <em>Family Father</em>}</li> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilyMother <em>Family Mother</em>}</li> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilySon <em>Family Son</em>}</li> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilyDaughter <em>Family Daughter</em>}</li> + * </ul> + * + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage#getMember() + * @model + * @generated + */ +public interface Member extends EObject { + /** + * Returns the value of the '<em><b>First Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>First Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>First Name</em>' attribute. + * @see #setFirstName(String) + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage#getMember_FirstName() + * @model unique="false" required="true" ordered="false" + * @generated + */ + String getFirstName(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFirstName <em>First Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>First Name</em>' attribute. + * @see #getFirstName() + * @generated + */ + void setFirstName(String value); + + /** + * Returns the value of the '<em><b>Family Father</b></em>' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getFather <em>Father</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Family Father</em>' container reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Family Father</em>' container reference. + * @see #setFamilyFather(Family) + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage#getMember_FamilyFather() + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getFather + * @model opposite="father" transient="false" ordered="false" + * @generated + */ + Family getFamilyFather(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilyFather <em>Family Father</em>}' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Family Father</em>' container reference. + * @see #getFamilyFather() + * @generated + */ + void setFamilyFather(Family value); + + /** + * Returns the value of the '<em><b>Family Mother</b></em>' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getMother <em>Mother</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Family Mother</em>' container reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Family Mother</em>' container reference. + * @see #setFamilyMother(Family) + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage#getMember_FamilyMother() + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getMother + * @model opposite="mother" transient="false" ordered="false" + * @generated + */ + Family getFamilyMother(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilyMother <em>Family Mother</em>}' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Family Mother</em>' container reference. + * @see #getFamilyMother() + * @generated + */ + void setFamilyMother(Family value); + + /** + * Returns the value of the '<em><b>Family Son</b></em>' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getSons <em>Sons</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Family Son</em>' container reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Family Son</em>' container reference. + * @see #setFamilySon(Family) + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage#getMember_FamilySon() + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getSons + * @model opposite="sons" transient="false" ordered="false" + * @generated + */ + Family getFamilySon(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilySon <em>Family Son</em>}' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Family Son</em>' container reference. + * @see #getFamilySon() + * @generated + */ + void setFamilySon(Family value); + + /** + * Returns the value of the '<em><b>Family Daughter</b></em>' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getDaughters <em>Daughters</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Family Daughter</em>' container reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Family Daughter</em>' container reference. + * @see #setFamilyDaughter(Family) + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage#getMember_FamilyDaughter() + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family#getDaughters + * @model opposite="daughters" transient="false" ordered="false" + * @generated + */ + Family getFamilyDaughter(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member#getFamilyDaughter <em>Family Daughter</em>}' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Family Daughter</em>' container reference. + * @see #getFamilyDaughter() + * @generated + */ + void setFamilyDaughter(Family value); + +} // Member diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/impl/FamiliesFactoryImpl.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/impl/FamiliesFactoryImpl.java new file mode 100644 index 000000000..fee863296 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/impl/FamiliesFactoryImpl.java @@ -0,0 +1,117 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Families.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.impl.EFactoryImpl; +import org.eclipse.emf.ecore.plugin.EcorePlugin; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesFactory; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Factory</b>. + * <!-- end-user-doc --> + * @generated + */ +public class FamiliesFactoryImpl extends EFactoryImpl implements FamiliesFactory { + /** + * Creates the default factory implementation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static FamiliesFactory init() { + try { + FamiliesFactory theFamiliesFactory = (FamiliesFactory)EPackage.Registry.INSTANCE.getEFactory(FamiliesPackage.eNS_URI); + if (theFamiliesFactory != null) { + return theFamiliesFactory; + } + } + catch (Exception exception) { + EcorePlugin.INSTANCE.log(exception); + } + return new FamiliesFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FamiliesFactoryImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EObject create(EClass eClass) { + switch (eClass.getClassifierID()) { + case FamiliesPackage.FAMILY: return createFamily(); + case FamiliesPackage.MEMBER: return createMember(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Family createFamily() { + FamilyImpl family = new FamilyImpl(); + return family; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Member createMember() { + MemberImpl member = new MemberImpl(); + return member; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public FamiliesPackage getFamiliesPackage() { + return (FamiliesPackage)getEPackage(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @deprecated + * @generated + */ + @Deprecated + public static FamiliesPackage getPackage() { + return FamiliesPackage.eINSTANCE; + } + +} //FamiliesFactoryImpl diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/impl/FamiliesPackageImpl.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/impl/FamiliesPackageImpl.java new file mode 100644 index 000000000..49010f201 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/impl/FamiliesPackageImpl.java @@ -0,0 +1,330 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Families.impl; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.impl.EPackageImpl; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesFactory; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.Families2PersonsPackageImpl; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl.PersonsPackageImpl; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Package</b>. + * <!-- end-user-doc --> + * @generated + */ +public class FamiliesPackageImpl extends EPackageImpl implements FamiliesPackage { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass familyEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass memberEClass = null; + + /** + * Creates an instance of the model <b>Package</b>, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + * <p>Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage#eNS_URI + * @see #init() + * @generated + */ + private FamiliesPackageImpl() { + super(eNS_URI, FamiliesFactory.eINSTANCE); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends. + * + * <p>This method is used to initialize {@link FamiliesPackage#eINSTANCE} when that field is accessed. + * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static FamiliesPackage init() { + if (isInited) return (FamiliesPackage)EPackage.Registry.INSTANCE.getEPackage(FamiliesPackage.eNS_URI); + + // Obtain or create and register package + Object ePackage = EPackage.Registry.INSTANCE.get(eNS_URI); + FamiliesPackageImpl theFamiliesPackage = (FamiliesPackageImpl)(ePackage instanceof FamiliesPackageImpl ? ePackage : new FamiliesPackageImpl()); + + isInited = true; + + // Obtain or create and register interdependencies + Families2PersonsPackageImpl theFamilies2PersonsPackage = (Families2PersonsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(Families2PersonsPackage.eNS_URI) instanceof Families2PersonsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(Families2PersonsPackage.eNS_URI) : Families2PersonsPackage.eINSTANCE); + PersonsPackageImpl thePersonsPackage = (PersonsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(PersonsPackage.eNS_URI) instanceof PersonsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(PersonsPackage.eNS_URI) : PersonsPackage.eINSTANCE); + + // Create package meta-data objects + theFamiliesPackage.createPackageContents(); + theFamilies2PersonsPackage.createPackageContents(); + thePersonsPackage.createPackageContents(); + + // Initialize created meta-data + theFamiliesPackage.initializePackageContents(); + theFamilies2PersonsPackage.initializePackageContents(); + thePersonsPackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + theFamiliesPackage.freeze(); + + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(FamiliesPackage.eNS_URI, theFamiliesPackage); + return theFamiliesPackage; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EClass getFamily() { + return familyEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EAttribute getFamily_LastName() { + return (EAttribute)familyEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EReference getFamily_Father() { + return (EReference)familyEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EReference getFamily_Mother() { + return (EReference)familyEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EReference getFamily_Sons() { + return (EReference)familyEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EReference getFamily_Daughters() { + return (EReference)familyEClass.getEStructuralFeatures().get(4); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EClass getMember() { + return memberEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EAttribute getMember_FirstName() { + return (EAttribute)memberEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EReference getMember_FamilyFather() { + return (EReference)memberEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EReference getMember_FamilyMother() { + return (EReference)memberEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EReference getMember_FamilySon() { + return (EReference)memberEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EReference getMember_FamilyDaughter() { + return (EReference)memberEClass.getEStructuralFeatures().get(4); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public FamiliesFactory getFamiliesFactory() { + return (FamiliesFactory)getEFactoryInstance(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void createPackageContents() { + if (isCreated) return; + isCreated = true; + + // Create classes and their features + familyEClass = createEClass(FAMILY); + createEAttribute(familyEClass, FAMILY__LAST_NAME); + createEReference(familyEClass, FAMILY__FATHER); + createEReference(familyEClass, FAMILY__MOTHER); + createEReference(familyEClass, FAMILY__SONS); + createEReference(familyEClass, FAMILY__DAUGHTERS); + + memberEClass = createEClass(MEMBER); + createEAttribute(memberEClass, MEMBER__FIRST_NAME); + createEReference(memberEClass, MEMBER__FAMILY_FATHER); + createEReference(memberEClass, MEMBER__FAMILY_MOTHER); + createEReference(memberEClass, MEMBER__FAMILY_SON); + createEReference(memberEClass, MEMBER__FAMILY_DAUGHTER); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void initializePackageContents() { + if (isInitialized) return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Create type parameters + + // Set bounds for type parameters + + // Add supertypes to classes + + // Initialize classes, features, and operations; add parameters + initEClass(familyEClass, Family.class, "Family", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getFamily_LastName(), ecorePackage.getEString(), "lastName", null, 1, 1, Family.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getFamily_Father(), this.getMember(), this.getMember_FamilyFather(), "father", null, 1, 1, Family.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getFamily_Mother(), this.getMember(), this.getMember_FamilyMother(), "mother", null, 1, 1, Family.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getFamily_Sons(), this.getMember(), this.getMember_FamilySon(), "sons", null, 0, -1, Family.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getFamily_Daughters(), this.getMember(), this.getMember_FamilyDaughter(), "daughters", null, 0, -1, Family.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(memberEClass, Member.class, "Member", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getMember_FirstName(), ecorePackage.getEString(), "firstName", null, 1, 1, Member.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getMember_FamilyFather(), this.getFamily(), this.getFamily_Father(), "familyFather", null, 0, 1, Member.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getMember_FamilyMother(), this.getFamily(), this.getFamily_Mother(), "familyMother", null, 0, 1, Member.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getMember_FamilySon(), this.getFamily(), this.getFamily_Sons(), "familySon", null, 0, 1, Member.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getMember_FamilyDaughter(), this.getFamily(), this.getFamily_Daughters(), "familyDaughter", null, 0, 1, Member.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + // Create resource + createResource(eNS_URI); + } + +} //FamiliesPackageImpl diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/impl/FamilyImpl.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/impl/FamilyImpl.java new file mode 100644 index 000000000..7094a80e8 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/impl/FamilyImpl.java @@ -0,0 +1,431 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Families.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.InternalEList; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Family</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * </p> + * <ul> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.FamilyImpl#getLastName <em>Last Name</em>}</li> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.FamilyImpl#getFather <em>Father</em>}</li> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.FamilyImpl#getMother <em>Mother</em>}</li> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.FamilyImpl#getSons <em>Sons</em>}</li> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.FamilyImpl#getDaughters <em>Daughters</em>}</li> + * </ul> + * + * @generated + */ +public class FamilyImpl extends MinimalEObjectImpl.Container implements Family { + /** + * The default value of the '{@link #getLastName() <em>Last Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLastName() + * @generated + * @ordered + */ + protected static final String LAST_NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getLastName() <em>Last Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getLastName() + * @generated + * @ordered + */ + protected String lastName = LAST_NAME_EDEFAULT; + + /** + * The cached value of the '{@link #getFather() <em>Father</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getFather() + * @generated + * @ordered + */ + protected Member father; + + /** + * The cached value of the '{@link #getMother() <em>Mother</em>}' containment reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMother() + * @generated + * @ordered + */ + protected Member mother; + + /** + * The cached value of the '{@link #getSons() <em>Sons</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSons() + * @generated + * @ordered + */ + protected EList<Member> sons; + + /** + * The cached value of the '{@link #getDaughters() <em>Daughters</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getDaughters() + * @generated + * @ordered + */ + protected EList<Member> daughters; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected FamilyImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return FamiliesPackage.Literals.FAMILY; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getLastName() { + return lastName; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setLastName(String newLastName) { + String oldLastName = lastName; + lastName = newLastName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FamiliesPackage.FAMILY__LAST_NAME, oldLastName, lastName)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Member getFather() { + return father; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetFather(Member newFather, NotificationChain msgs) { + Member oldFather = father; + father = newFather; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FamiliesPackage.FAMILY__FATHER, oldFather, newFather); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setFather(Member newFather) { + if (newFather != father) { + NotificationChain msgs = null; + if (father != null) + msgs = ((InternalEObject)father).eInverseRemove(this, FamiliesPackage.MEMBER__FAMILY_FATHER, Member.class, msgs); + if (newFather != null) + msgs = ((InternalEObject)newFather).eInverseAdd(this, FamiliesPackage.MEMBER__FAMILY_FATHER, Member.class, msgs); + msgs = basicSetFather(newFather, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FamiliesPackage.FAMILY__FATHER, newFather, newFather)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Member getMother() { + return mother; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetMother(Member newMother, NotificationChain msgs) { + Member oldMother = mother; + mother = newMother; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, FamiliesPackage.FAMILY__MOTHER, oldMother, newMother); + if (msgs == null) msgs = notification; else msgs.add(notification); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setMother(Member newMother) { + if (newMother != mother) { + NotificationChain msgs = null; + if (mother != null) + msgs = ((InternalEObject)mother).eInverseRemove(this, FamiliesPackage.MEMBER__FAMILY_MOTHER, Member.class, msgs); + if (newMother != null) + msgs = ((InternalEObject)newMother).eInverseAdd(this, FamiliesPackage.MEMBER__FAMILY_MOTHER, Member.class, msgs); + msgs = basicSetMother(newMother, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FamiliesPackage.FAMILY__MOTHER, newMother, newMother)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EList<Member> getSons() { + if (sons == null) { + sons = new EObjectContainmentWithInverseEList<Member>(Member.class, this, FamiliesPackage.FAMILY__SONS, FamiliesPackage.MEMBER__FAMILY_SON); + } + return sons; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EList<Member> getDaughters() { + if (daughters == null) { + daughters = new EObjectContainmentWithInverseEList<Member>(Member.class, this, FamiliesPackage.FAMILY__DAUGHTERS, FamiliesPackage.MEMBER__FAMILY_DAUGHTER); + } + return daughters; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case FamiliesPackage.FAMILY__FATHER: + if (father != null) + msgs = ((InternalEObject)father).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FamiliesPackage.FAMILY__FATHER, null, msgs); + return basicSetFather((Member)otherEnd, msgs); + case FamiliesPackage.FAMILY__MOTHER: + if (mother != null) + msgs = ((InternalEObject)mother).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - FamiliesPackage.FAMILY__MOTHER, null, msgs); + return basicSetMother((Member)otherEnd, msgs); + case FamiliesPackage.FAMILY__SONS: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getSons()).basicAdd(otherEnd, msgs); + case FamiliesPackage.FAMILY__DAUGHTERS: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getDaughters()).basicAdd(otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case FamiliesPackage.FAMILY__FATHER: + return basicSetFather(null, msgs); + case FamiliesPackage.FAMILY__MOTHER: + return basicSetMother(null, msgs); + case FamiliesPackage.FAMILY__SONS: + return ((InternalEList<?>)getSons()).basicRemove(otherEnd, msgs); + case FamiliesPackage.FAMILY__DAUGHTERS: + return ((InternalEList<?>)getDaughters()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case FamiliesPackage.FAMILY__LAST_NAME: + return getLastName(); + case FamiliesPackage.FAMILY__FATHER: + return getFather(); + case FamiliesPackage.FAMILY__MOTHER: + return getMother(); + case FamiliesPackage.FAMILY__SONS: + return getSons(); + case FamiliesPackage.FAMILY__DAUGHTERS: + return getDaughters(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case FamiliesPackage.FAMILY__LAST_NAME: + setLastName((String)newValue); + return; + case FamiliesPackage.FAMILY__FATHER: + setFather((Member)newValue); + return; + case FamiliesPackage.FAMILY__MOTHER: + setMother((Member)newValue); + return; + case FamiliesPackage.FAMILY__SONS: + getSons().clear(); + getSons().addAll((Collection<? extends Member>)newValue); + return; + case FamiliesPackage.FAMILY__DAUGHTERS: + getDaughters().clear(); + getDaughters().addAll((Collection<? extends Member>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case FamiliesPackage.FAMILY__LAST_NAME: + setLastName(LAST_NAME_EDEFAULT); + return; + case FamiliesPackage.FAMILY__FATHER: + setFather((Member)null); + return; + case FamiliesPackage.FAMILY__MOTHER: + setMother((Member)null); + return; + case FamiliesPackage.FAMILY__SONS: + getSons().clear(); + return; + case FamiliesPackage.FAMILY__DAUGHTERS: + getDaughters().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case FamiliesPackage.FAMILY__LAST_NAME: + return LAST_NAME_EDEFAULT == null ? lastName != null : !LAST_NAME_EDEFAULT.equals(lastName); + case FamiliesPackage.FAMILY__FATHER: + return father != null; + case FamiliesPackage.FAMILY__MOTHER: + return mother != null; + case FamiliesPackage.FAMILY__SONS: + return sons != null && !sons.isEmpty(); + case FamiliesPackage.FAMILY__DAUGHTERS: + return daughters != null && !daughters.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (lastName: "); + result.append(lastName); + result.append(')'); + return result.toString(); + } + + +} //FamilyImpl diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/impl/MemberImpl.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/impl/MemberImpl.java new file mode 100644 index 000000000..4ac9a3b28 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/impl/MemberImpl.java @@ -0,0 +1,462 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Families.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Member</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * </p> + * <ul> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.MemberImpl#getFirstName <em>First Name</em>}</li> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.MemberImpl#getFamilyFather <em>Family Father</em>}</li> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.MemberImpl#getFamilyMother <em>Family Mother</em>}</li> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.MemberImpl#getFamilySon <em>Family Son</em>}</li> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.MemberImpl#getFamilyDaughter <em>Family Daughter</em>}</li> + * </ul> + * + * @generated + */ +public class MemberImpl extends MinimalEObjectImpl.Container implements Member { + /** + * The default value of the '{@link #getFirstName() <em>First Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getFirstName() + * @generated + * @ordered + */ + protected static final String FIRST_NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getFirstName() <em>First Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getFirstName() + * @generated + * @ordered + */ + protected String firstName = FIRST_NAME_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected MemberImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return FamiliesPackage.Literals.MEMBER; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getFirstName() { + return firstName; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setFirstName(String newFirstName) { + String oldFirstName = firstName; + firstName = newFirstName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FamiliesPackage.MEMBER__FIRST_NAME, oldFirstName, firstName)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Family getFamilyFather() { + if (eContainerFeatureID() != FamiliesPackage.MEMBER__FAMILY_FATHER) return null; + return (Family)eInternalContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetFamilyFather(Family newFamilyFather, NotificationChain msgs) { + msgs = eBasicSetContainer((InternalEObject)newFamilyFather, FamiliesPackage.MEMBER__FAMILY_FATHER, msgs); + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setFamilyFather(Family newFamilyFather) { + if (newFamilyFather != eInternalContainer() || (eContainerFeatureID() != FamiliesPackage.MEMBER__FAMILY_FATHER && newFamilyFather != null)) { + if (EcoreUtil.isAncestor(this, newFamilyFather)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newFamilyFather != null) + msgs = ((InternalEObject)newFamilyFather).eInverseAdd(this, FamiliesPackage.FAMILY__FATHER, Family.class, msgs); + msgs = basicSetFamilyFather(newFamilyFather, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FamiliesPackage.MEMBER__FAMILY_FATHER, newFamilyFather, newFamilyFather)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Family getFamilyMother() { + if (eContainerFeatureID() != FamiliesPackage.MEMBER__FAMILY_MOTHER) return null; + return (Family)eInternalContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetFamilyMother(Family newFamilyMother, NotificationChain msgs) { + msgs = eBasicSetContainer((InternalEObject)newFamilyMother, FamiliesPackage.MEMBER__FAMILY_MOTHER, msgs); + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setFamilyMother(Family newFamilyMother) { + if (newFamilyMother != eInternalContainer() || (eContainerFeatureID() != FamiliesPackage.MEMBER__FAMILY_MOTHER && newFamilyMother != null)) { + if (EcoreUtil.isAncestor(this, newFamilyMother)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newFamilyMother != null) + msgs = ((InternalEObject)newFamilyMother).eInverseAdd(this, FamiliesPackage.FAMILY__MOTHER, Family.class, msgs); + msgs = basicSetFamilyMother(newFamilyMother, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FamiliesPackage.MEMBER__FAMILY_MOTHER, newFamilyMother, newFamilyMother)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Family getFamilySon() { + if (eContainerFeatureID() != FamiliesPackage.MEMBER__FAMILY_SON) return null; + return (Family)eInternalContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetFamilySon(Family newFamilySon, NotificationChain msgs) { + msgs = eBasicSetContainer((InternalEObject)newFamilySon, FamiliesPackage.MEMBER__FAMILY_SON, msgs); + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setFamilySon(Family newFamilySon) { + if (newFamilySon != eInternalContainer() || (eContainerFeatureID() != FamiliesPackage.MEMBER__FAMILY_SON && newFamilySon != null)) { + if (EcoreUtil.isAncestor(this, newFamilySon)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newFamilySon != null) + msgs = ((InternalEObject)newFamilySon).eInverseAdd(this, FamiliesPackage.FAMILY__SONS, Family.class, msgs); + msgs = basicSetFamilySon(newFamilySon, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FamiliesPackage.MEMBER__FAMILY_SON, newFamilySon, newFamilySon)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Family getFamilyDaughter() { + if (eContainerFeatureID() != FamiliesPackage.MEMBER__FAMILY_DAUGHTER) return null; + return (Family)eInternalContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetFamilyDaughter(Family newFamilyDaughter, NotificationChain msgs) { + msgs = eBasicSetContainer((InternalEObject)newFamilyDaughter, FamiliesPackage.MEMBER__FAMILY_DAUGHTER, msgs); + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setFamilyDaughter(Family newFamilyDaughter) { + if (newFamilyDaughter != eInternalContainer() || (eContainerFeatureID() != FamiliesPackage.MEMBER__FAMILY_DAUGHTER && newFamilyDaughter != null)) { + if (EcoreUtil.isAncestor(this, newFamilyDaughter)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newFamilyDaughter != null) + msgs = ((InternalEObject)newFamilyDaughter).eInverseAdd(this, FamiliesPackage.FAMILY__DAUGHTERS, Family.class, msgs); + msgs = basicSetFamilyDaughter(newFamilyDaughter, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FamiliesPackage.MEMBER__FAMILY_DAUGHTER, newFamilyDaughter, newFamilyDaughter)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case FamiliesPackage.MEMBER__FAMILY_FATHER: + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + return basicSetFamilyFather((Family)otherEnd, msgs); + case FamiliesPackage.MEMBER__FAMILY_MOTHER: + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + return basicSetFamilyMother((Family)otherEnd, msgs); + case FamiliesPackage.MEMBER__FAMILY_SON: + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + return basicSetFamilySon((Family)otherEnd, msgs); + case FamiliesPackage.MEMBER__FAMILY_DAUGHTER: + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + return basicSetFamilyDaughter((Family)otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case FamiliesPackage.MEMBER__FAMILY_FATHER: + return basicSetFamilyFather(null, msgs); + case FamiliesPackage.MEMBER__FAMILY_MOTHER: + return basicSetFamilyMother(null, msgs); + case FamiliesPackage.MEMBER__FAMILY_SON: + return basicSetFamilySon(null, msgs); + case FamiliesPackage.MEMBER__FAMILY_DAUGHTER: + return basicSetFamilyDaughter(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) { + switch (eContainerFeatureID()) { + case FamiliesPackage.MEMBER__FAMILY_FATHER: + return eInternalContainer().eInverseRemove(this, FamiliesPackage.FAMILY__FATHER, Family.class, msgs); + case FamiliesPackage.MEMBER__FAMILY_MOTHER: + return eInternalContainer().eInverseRemove(this, FamiliesPackage.FAMILY__MOTHER, Family.class, msgs); + case FamiliesPackage.MEMBER__FAMILY_SON: + return eInternalContainer().eInverseRemove(this, FamiliesPackage.FAMILY__SONS, Family.class, msgs); + case FamiliesPackage.MEMBER__FAMILY_DAUGHTER: + return eInternalContainer().eInverseRemove(this, FamiliesPackage.FAMILY__DAUGHTERS, Family.class, msgs); + } + return super.eBasicRemoveFromContainerFeature(msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case FamiliesPackage.MEMBER__FIRST_NAME: + return getFirstName(); + case FamiliesPackage.MEMBER__FAMILY_FATHER: + return getFamilyFather(); + case FamiliesPackage.MEMBER__FAMILY_MOTHER: + return getFamilyMother(); + case FamiliesPackage.MEMBER__FAMILY_SON: + return getFamilySon(); + case FamiliesPackage.MEMBER__FAMILY_DAUGHTER: + return getFamilyDaughter(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case FamiliesPackage.MEMBER__FIRST_NAME: + setFirstName((String)newValue); + return; + case FamiliesPackage.MEMBER__FAMILY_FATHER: + setFamilyFather((Family)newValue); + return; + case FamiliesPackage.MEMBER__FAMILY_MOTHER: + setFamilyMother((Family)newValue); + return; + case FamiliesPackage.MEMBER__FAMILY_SON: + setFamilySon((Family)newValue); + return; + case FamiliesPackage.MEMBER__FAMILY_DAUGHTER: + setFamilyDaughter((Family)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case FamiliesPackage.MEMBER__FIRST_NAME: + setFirstName(FIRST_NAME_EDEFAULT); + return; + case FamiliesPackage.MEMBER__FAMILY_FATHER: + setFamilyFather((Family)null); + return; + case FamiliesPackage.MEMBER__FAMILY_MOTHER: + setFamilyMother((Family)null); + return; + case FamiliesPackage.MEMBER__FAMILY_SON: + setFamilySon((Family)null); + return; + case FamiliesPackage.MEMBER__FAMILY_DAUGHTER: + setFamilyDaughter((Family)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case FamiliesPackage.MEMBER__FIRST_NAME: + return FIRST_NAME_EDEFAULT == null ? firstName != null : !FIRST_NAME_EDEFAULT.equals(firstName); + case FamiliesPackage.MEMBER__FAMILY_FATHER: + return getFamilyFather() != null; + case FamiliesPackage.MEMBER__FAMILY_MOTHER: + return getFamilyMother() != null; + case FamiliesPackage.MEMBER__FAMILY_SON: + return getFamilySon() != null; + case FamiliesPackage.MEMBER__FAMILY_DAUGHTER: + return getFamilyDaughter() != null; + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (firstName: "); + result.append(firstName); + result.append(')'); + return result.toString(); + } + + +} //MemberImpl diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/util/FamiliesAdapterFactory.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/util/FamiliesAdapterFactory.java new file mode 100644 index 000000000..49280b499 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/util/FamiliesAdapterFactory.java @@ -0,0 +1,146 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Families.util; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member; + +/** + * <!-- begin-user-doc --> + * The <b>Adapter Factory</b> for the model. + * It provides an adapter <code>createXXX</code> method for each class of the model. + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage + * @generated + */ +public class FamiliesAdapterFactory extends AdapterFactoryImpl { + /** + * The cached model package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static FamiliesPackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FamiliesAdapterFactory() { + if (modelPackage == null) { + modelPackage = FamiliesPackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * <!-- begin-user-doc --> + * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model. + * <!-- end-user-doc --> + * @return whether this factory is applicable for the type of the object. + * @generated + */ + @Override + public boolean isFactoryForType(Object object) { + if (object == modelPackage) { + return true; + } + if (object instanceof EObject) { + return ((EObject)object).eClass().getEPackage() == modelPackage; + } + return false; + } + + /** + * The switch that delegates to the <code>createXXX</code> methods. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected FamiliesSwitch<@Nullable Adapter> modelSwitch = + new FamiliesSwitch<@Nullable Adapter>() { + @Override + public Adapter caseFamily(Family object) { + return createFamilyAdapter(); + } + @Override + public Adapter caseMember(Member object) { + return createMemberAdapter(); + } + @Override + public Adapter defaultCase(EObject object) { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the <code>target</code>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param target the object to adapt. + * @return the adapter for the <code>target</code>. + * @generated + */ + @Override + public Adapter createAdapter(Notifier target) { + return modelSwitch.doSwitch((EObject)target); + } + + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family <em>Family</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family + * @generated + */ + public Adapter createFamilyAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member <em>Member</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member + * @generated + */ + public Adapter createMemberAdapter() { + return null; + } + + /** + * Creates a new adapter for the default case. + * <!-- begin-user-doc --> + * This default implementation returns null. + * <!-- end-user-doc --> + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() { + return null; + } + +} //FamiliesAdapterFactory diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/util/FamiliesSwitch.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/util/FamiliesSwitch.java new file mode 100644 index 000000000..304641c46 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families/util/FamiliesSwitch.java @@ -0,0 +1,140 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Families.util; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.util.Switch; +import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member; + +/** + * <!-- begin-user-doc --> + * The <b>Switch</b> for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch(EObject) doSwitch(object)} + * to invoke the <code>caseXXX</code> method for each class of the model, + * starting with the actual class of the object + * and proceeding up the inheritance hierarchy + * until a non-null result is returned, + * which is the result of the switch. + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage + * @generated + */ +public class FamiliesSwitch<@Nullable T> extends Switch<T> { + /** + * The cached model package + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static FamiliesPackage modelPackage; + + /** + * Creates an instance of the switch. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public FamiliesSwitch() { + if (modelPackage == null) { + modelPackage = FamiliesPackage.eINSTANCE; + } + } + + /** + * Checks whether this is a switch for the given package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param ePackage the package in question. + * @return whether this is a switch for the given package. + * @generated + */ + @Override + protected boolean isSwitchFor(EPackage ePackage) { + return ePackage == modelPackage; + } + + /** + * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the first non-null result returned by a <code>caseXXX</code> call. + * @generated + */ + @Override + protected T doSwitch(int classifierID, EObject theEObject) { + switch (classifierID) { + case FamiliesPackage.FAMILY: { + Family family = (Family)theEObject; + T result = caseFamily(family); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FamiliesPackage.MEMBER: { + Member member = (Member)theEObject; + T result = caseMember(member); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Family</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Family</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFamily(Family object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Member</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Member</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMember(Member object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>EObject</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + @Override + public T defaultCase(EObject object) { + return null; + } + +} //FamiliesSwitch diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/Families2PersonsFactory.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/Families2PersonsFactory.java new file mode 100644 index 000000000..45b47cdad --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/Families2PersonsFactory.java @@ -0,0 +1,59 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons; + +import org.eclipse.emf.ecore.EFactory; + +/** + * <!-- begin-user-doc --> + * The <b>Factory</b> for the model. + * It provides a create method for each non-abstract class of the model. + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsPackage + * @generated + */ +public interface Families2PersonsFactory extends EFactory { + /** + * The singleton instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + Families2PersonsFactory eINSTANCE = org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.Families2PersonsFactoryImpl.init(); + + /** + * Returns a new object of class '<em>Member2 Male</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Member2 Male</em>'. + * @generated + */ + Member2Male createMember2Male(); + + /** + * Returns a new object of class '<em>Member2 Female</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Member2 Female</em>'. + * @generated + */ + Member2Female createMember2Female(); + + /** + * Returns the package supported by this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the package supported by this factory. + * @generated + */ + Families2PersonsPackage getFamilies2PersonsPackage(); + +} //Families2PersonsFactory diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/Families2PersonsPackage.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/Families2PersonsPackage.java new file mode 100644 index 000000000..0803e9055 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/Families2PersonsPackage.java @@ -0,0 +1,421 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +/** + * <!-- begin-user-doc --> + * The <b>Package</b> for the model. + * It contains accessors for the meta objects to represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each operation of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsFactory + * @model kind="package" + * @generated + */ +public interface Families2PersonsPackage extends EPackage { + /** + * The package name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNAME = "Families2Persons"; + + /** + * The package namespace URI. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_URI = "http://www.eclipse.org/qvtd/xtext/qvtcore/tests/Upper2Lower/1.0/Families2Persons"; + + /** + * The package namespace name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_PREFIX = "families2Persons"; + + /** + * The singleton instance of the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + Families2PersonsPackage eINSTANCE = org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.Families2PersonsPackageImpl.init(); + + /** + * The meta object id for the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.MemberToPersonImpl <em>Member To Person</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.MemberToPersonImpl + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.Families2PersonsPackageImpl#getMemberToPerson() + * @generated + */ + int MEMBER_TO_PERSON = 0; + + /** + * The feature id for the '<em><b>Member</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER_TO_PERSON__MEMBER = 0; + + /** + * The feature id for the '<em><b>Person</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER_TO_PERSON__PERSON = 1; + + /** + * The feature id for the '<em><b>First Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER_TO_PERSON__FIRST_NAME = 2; + + /** + * The feature id for the '<em><b>Family Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER_TO_PERSON__FAMILY_NAME = 3; + + /** + * The number of structural features of the '<em>Member To Person</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER_TO_PERSON_FEATURE_COUNT = 4; + + /** + * The number of operations of the '<em>Member To Person</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER_TO_PERSON_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.Member2MaleImpl <em>Member2 Male</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.Member2MaleImpl + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.Families2PersonsPackageImpl#getMember2Male() + * @generated + */ + int MEMBER2_MALE = 1; + + /** + * The feature id for the '<em><b>Member</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER2_MALE__MEMBER = MEMBER_TO_PERSON__MEMBER; + + /** + * The feature id for the '<em><b>Person</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER2_MALE__PERSON = MEMBER_TO_PERSON__PERSON; + + /** + * The feature id for the '<em><b>First Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER2_MALE__FIRST_NAME = MEMBER_TO_PERSON__FIRST_NAME; + + /** + * The feature id for the '<em><b>Family Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER2_MALE__FAMILY_NAME = MEMBER_TO_PERSON__FAMILY_NAME; + + /** + * The number of structural features of the '<em>Member2 Male</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER2_MALE_FEATURE_COUNT = MEMBER_TO_PERSON_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>Member2 Male</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER2_MALE_OPERATION_COUNT = MEMBER_TO_PERSON_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.Member2FemaleImpl <em>Member2 Female</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.Member2FemaleImpl + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.Families2PersonsPackageImpl#getMember2Female() + * @generated + */ + int MEMBER2_FEMALE = 2; + + /** + * The feature id for the '<em><b>Member</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER2_FEMALE__MEMBER = MEMBER_TO_PERSON__MEMBER; + + /** + * The feature id for the '<em><b>Person</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER2_FEMALE__PERSON = MEMBER_TO_PERSON__PERSON; + + /** + * The feature id for the '<em><b>First Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER2_FEMALE__FIRST_NAME = MEMBER_TO_PERSON__FIRST_NAME; + + /** + * The feature id for the '<em><b>Family Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER2_FEMALE__FAMILY_NAME = MEMBER_TO_PERSON__FAMILY_NAME; + + /** + * The number of structural features of the '<em>Member2 Female</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER2_FEMALE_FEATURE_COUNT = MEMBER_TO_PERSON_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>Member2 Female</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MEMBER2_FEMALE_OPERATION_COUNT = MEMBER_TO_PERSON_OPERATION_COUNT + 0; + + + /** + * Returns the meta object for class '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson <em>Member To Person</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Member To Person</em>'. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson + * @generated + */ + EClass getMemberToPerson(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson#getMember <em>Member</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Member</em>'. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson#getMember() + * @see #getMemberToPerson() + * @generated + */ + EReference getMemberToPerson_Member(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson#getPerson <em>Person</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Person</em>'. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson#getPerson() + * @see #getMemberToPerson() + * @generated + */ + EReference getMemberToPerson_Person(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson#getFirstName <em>First Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>First Name</em>'. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson#getFirstName() + * @see #getMemberToPerson() + * @generated + */ + EAttribute getMemberToPerson_FirstName(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson#getFamilyName <em>Family Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Family Name</em>'. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson#getFamilyName() + * @see #getMemberToPerson() + * @generated + */ + EAttribute getMemberToPerson_FamilyName(); + + /** + * Returns the meta object for class '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Member2Male <em>Member2 Male</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Member2 Male</em>'. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Member2Male + * @generated + */ + EClass getMember2Male(); + + /** + * Returns the meta object for class '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Member2Female <em>Member2 Female</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Member2 Female</em>'. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Member2Female + * @generated + */ + EClass getMember2Female(); + + /** + * Returns the factory that creates the instances of the model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the factory that creates the instances of the model. + * @generated + */ + Families2PersonsFactory getFamilies2PersonsFactory(); + + /** + * <!-- begin-user-doc --> + * Defines literals for the meta objects that represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each operation of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @generated + */ + interface Literals { + /** + * The meta object literal for the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.MemberToPersonImpl <em>Member To Person</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.MemberToPersonImpl + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.Families2PersonsPackageImpl#getMemberToPerson() + * @generated + */ + EClass MEMBER_TO_PERSON = eINSTANCE.getMemberToPerson(); + + /** + * The meta object literal for the '<em><b>Member</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference MEMBER_TO_PERSON__MEMBER = eINSTANCE.getMemberToPerson_Member(); + + /** + * The meta object literal for the '<em><b>Person</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference MEMBER_TO_PERSON__PERSON = eINSTANCE.getMemberToPerson_Person(); + + /** + * The meta object literal for the '<em><b>First Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute MEMBER_TO_PERSON__FIRST_NAME = eINSTANCE.getMemberToPerson_FirstName(); + + /** + * The meta object literal for the '<em><b>Family Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute MEMBER_TO_PERSON__FAMILY_NAME = eINSTANCE.getMemberToPerson_FamilyName(); + + /** + * The meta object literal for the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.Member2MaleImpl <em>Member2 Male</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.Member2MaleImpl + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.Families2PersonsPackageImpl#getMember2Male() + * @generated + */ + EClass MEMBER2_MALE = eINSTANCE.getMember2Male(); + + /** + * The meta object literal for the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.Member2FemaleImpl <em>Member2 Female</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.Member2FemaleImpl + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.Families2PersonsPackageImpl#getMember2Female() + * @generated + */ + EClass MEMBER2_FEMALE = eINSTANCE.getMember2Female(); + + } + +} //Families2PersonsPackage diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/Member2Female.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/Member2Female.java new file mode 100644 index 000000000..23b578814 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/Member2Female.java @@ -0,0 +1,24 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Member2 Female</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsPackage#getMember2Female() + * @model + * @generated + */ +public interface Member2Female extends MemberToPerson { +} // Member2Female diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/Member2Male.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/Member2Male.java new file mode 100644 index 000000000..af0acd0f3 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/Member2Male.java @@ -0,0 +1,24 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Member2 Male</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsPackage#getMember2Male() + * @model + * @generated + */ +public interface Member2Male extends MemberToPerson { +} // Member2Male diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/MemberToPerson.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/MemberToPerson.java new file mode 100644 index 000000000..b5b2fd7d2 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/MemberToPerson.java @@ -0,0 +1,141 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Person; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Member To Person</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * </p> + * <ul> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson#getMember <em>Member</em>}</li> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson#getPerson <em>Person</em>}</li> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson#getFirstName <em>First Name</em>}</li> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson#getFamilyName <em>Family Name</em>}</li> + * </ul> + * + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsPackage#getMemberToPerson() + * @model abstract="true" + * @generated + */ +public interface MemberToPerson extends EObject { + /** + * Returns the value of the '<em><b>Member</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Member</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Member</em>' reference. + * @see #setMember(Member) + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsPackage#getMemberToPerson_Member() + * @model annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='middle' upper='1'" + * @generated + */ + Member getMember(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson#getMember <em>Member</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Member</em>' reference. + * @see #getMember() + * @generated + */ + void setMember(Member value); + + /** + * Returns the value of the '<em><b>Person</b></em>' reference. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Person</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Person</em>' reference. + * @see #setPerson(Person) + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsPackage#getMemberToPerson_Person() + * @model annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='middle' upper='1'" + * @generated + */ + Person getPerson(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson#getPerson <em>Person</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Person</em>' reference. + * @see #getPerson() + * @generated + */ + void setPerson(Person value); + + /** + * Returns the value of the '<em><b>First Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>First Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>First Name</em>' attribute. + * @see #setFirstName(String) + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsPackage#getMemberToPerson_FirstName() + * @model + * @generated + */ + String getFirstName(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson#getFirstName <em>First Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>First Name</em>' attribute. + * @see #getFirstName() + * @generated + */ + void setFirstName(String value); + + /** + * Returns the value of the '<em><b>Family Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Family Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Family Name</em>' attribute. + * @see #setFamilyName(String) + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsPackage#getMemberToPerson_FamilyName() + * @model + * @generated + */ + String getFamilyName(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson#getFamilyName <em>Family Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Family Name</em>' attribute. + * @see #getFamilyName() + * @generated + */ + void setFamilyName(String value); + +} // MemberToPerson diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/impl/Families2PersonsFactoryImpl.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/impl/Families2PersonsFactoryImpl.java new file mode 100644 index 000000000..769ec0edc --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/impl/Families2PersonsFactoryImpl.java @@ -0,0 +1,117 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.impl.EFactoryImpl; +import org.eclipse.emf.ecore.plugin.EcorePlugin; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsFactory; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Member2Female; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Member2Male; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Factory</b>. + * <!-- end-user-doc --> + * @generated + */ +public class Families2PersonsFactoryImpl extends EFactoryImpl implements Families2PersonsFactory { + /** + * Creates the default factory implementation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static Families2PersonsFactory init() { + try { + Families2PersonsFactory theFamilies2PersonsFactory = (Families2PersonsFactory)EPackage.Registry.INSTANCE.getEFactory(Families2PersonsPackage.eNS_URI); + if (theFamilies2PersonsFactory != null) { + return theFamilies2PersonsFactory; + } + } + catch (Exception exception) { + EcorePlugin.INSTANCE.log(exception); + } + return new Families2PersonsFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Families2PersonsFactoryImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EObject create(EClass eClass) { + switch (eClass.getClassifierID()) { + case Families2PersonsPackage.MEMBER2_MALE: return createMember2Male(); + case Families2PersonsPackage.MEMBER2_FEMALE: return createMember2Female(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Member2Male createMember2Male() { + Member2MaleImpl member2Male = new Member2MaleImpl(); + return member2Male; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Member2Female createMember2Female() { + Member2FemaleImpl member2Female = new Member2FemaleImpl(); + return member2Female; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Families2PersonsPackage getFamilies2PersonsPackage() { + return (Families2PersonsPackage)getEPackage(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @deprecated + * @generated + */ + @Deprecated + public static Families2PersonsPackage getPackage() { + return Families2PersonsPackage.eINSTANCE; + } + +} //Families2PersonsFactoryImpl diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/impl/Families2PersonsPackageImpl.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/impl/Families2PersonsPackageImpl.java new file mode 100644 index 000000000..49b691753 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/impl/Families2PersonsPackageImpl.java @@ -0,0 +1,314 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.impl.EPackageImpl; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.FamiliesPackageImpl; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsFactory; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Member2Female; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Member2Male; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl.PersonsPackageImpl; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Package</b>. + * <!-- end-user-doc --> + * @generated + */ +public class Families2PersonsPackageImpl extends EPackageImpl implements Families2PersonsPackage { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass memberToPersonEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass member2MaleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass member2FemaleEClass = null; + + /** + * Creates an instance of the model <b>Package</b>, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + * <p>Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsPackage#eNS_URI + * @see #init() + * @generated + */ + private Families2PersonsPackageImpl() { + super(eNS_URI, Families2PersonsFactory.eINSTANCE); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends. + * + * <p>This method is used to initialize {@link Families2PersonsPackage#eINSTANCE} when that field is accessed. + * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static Families2PersonsPackage init() { + if (isInited) return (Families2PersonsPackage)EPackage.Registry.INSTANCE.getEPackage(Families2PersonsPackage.eNS_URI); + + // Obtain or create and register package + Object ePackage = EPackage.Registry.INSTANCE.get(eNS_URI); + Families2PersonsPackageImpl theFamilies2PersonsPackage = (Families2PersonsPackageImpl)(ePackage instanceof Families2PersonsPackageImpl ? ePackage : new Families2PersonsPackageImpl()); + + isInited = true; + + // Obtain or create and register interdependencies + FamiliesPackageImpl theFamiliesPackage = (FamiliesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(FamiliesPackage.eNS_URI) instanceof FamiliesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(FamiliesPackage.eNS_URI) : FamiliesPackage.eINSTANCE); + PersonsPackageImpl thePersonsPackage = (PersonsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(PersonsPackage.eNS_URI) instanceof PersonsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(PersonsPackage.eNS_URI) : PersonsPackage.eINSTANCE); + + // Create package meta-data objects + theFamilies2PersonsPackage.createPackageContents(); + theFamiliesPackage.createPackageContents(); + thePersonsPackage.createPackageContents(); + + // Initialize created meta-data + theFamilies2PersonsPackage.initializePackageContents(); + theFamiliesPackage.initializePackageContents(); + thePersonsPackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + theFamilies2PersonsPackage.freeze(); + + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(Families2PersonsPackage.eNS_URI, theFamilies2PersonsPackage); + return theFamilies2PersonsPackage; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EClass getMemberToPerson() { + return memberToPersonEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EReference getMemberToPerson_Member() { + return (EReference)memberToPersonEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EReference getMemberToPerson_Person() { + return (EReference)memberToPersonEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EAttribute getMemberToPerson_FirstName() { + return (EAttribute)memberToPersonEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EAttribute getMemberToPerson_FamilyName() { + return (EAttribute)memberToPersonEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EClass getMember2Male() { + return member2MaleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EClass getMember2Female() { + return member2FemaleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Families2PersonsFactory getFamilies2PersonsFactory() { + return (Families2PersonsFactory)getEFactoryInstance(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void createPackageContents() { + if (isCreated) return; + isCreated = true; + + // Create classes and their features + memberToPersonEClass = createEClass(MEMBER_TO_PERSON); + createEReference(memberToPersonEClass, MEMBER_TO_PERSON__MEMBER); + createEReference(memberToPersonEClass, MEMBER_TO_PERSON__PERSON); + createEAttribute(memberToPersonEClass, MEMBER_TO_PERSON__FIRST_NAME); + createEAttribute(memberToPersonEClass, MEMBER_TO_PERSON__FAMILY_NAME); + + member2MaleEClass = createEClass(MEMBER2_MALE); + + member2FemaleEClass = createEClass(MEMBER2_FEMALE); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void initializePackageContents() { + if (isInitialized) return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Obtain other dependent packages + FamiliesPackage theFamiliesPackage = (FamiliesPackage)EPackage.Registry.INSTANCE.getEPackage(FamiliesPackage.eNS_URI); + PersonsPackage thePersonsPackage = (PersonsPackage)EPackage.Registry.INSTANCE.getEPackage(PersonsPackage.eNS_URI); + + // Create type parameters + + // Set bounds for type parameters + + // Add supertypes to classes + member2MaleEClass.getESuperTypes().add(this.getMemberToPerson()); + member2FemaleEClass.getESuperTypes().add(this.getMemberToPerson()); + + // Initialize classes, features, and operations; add parameters + initEClass(memberToPersonEClass, MemberToPerson.class, "MemberToPerson", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getMemberToPerson_Member(), theFamiliesPackage.getMember(), null, "member", null, 0, 1, MemberToPerson.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getMemberToPerson_Person(), thePersonsPackage.getPerson(), null, "person", null, 0, 1, MemberToPerson.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getMemberToPerson_FirstName(), ecorePackage.getEString(), "firstName", null, 0, 1, MemberToPerson.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getMemberToPerson_FamilyName(), ecorePackage.getEString(), "familyName", null, 0, 1, MemberToPerson.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(member2MaleEClass, Member2Male.class, "Member2Male", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(member2FemaleEClass, Member2Female.class, "Member2Female", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + // Create resource + createResource(eNS_URI); + + // Create annotations + // http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName + createEmofAnnotations(); + } + + /** + * Initializes the annotations for <b>http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName</b>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void createEmofAnnotations() { + String source = "http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"; + addAnnotation + (getMemberToPerson_Member(), + source, + new String[] { + "body", "middle", + "upper", "1" + }); + addAnnotation + (getMemberToPerson_Person(), + source, + new String[] { + "body", "middle", + "upper", "1" + }); + } + +} //Families2PersonsPackageImpl diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/impl/Member2FemaleImpl.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/impl/Member2FemaleImpl.java new file mode 100644 index 000000000..1ebc71e3e --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/impl/Member2FemaleImpl.java @@ -0,0 +1,45 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Member2Female; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Member2 Female</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class Member2FemaleImpl extends MemberToPersonImpl implements Member2Female { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Member2FemaleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return Families2PersonsPackage.Literals.MEMBER2_FEMALE; + } + + +} //Member2FemaleImpl diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/impl/Member2MaleImpl.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/impl/Member2MaleImpl.java new file mode 100644 index 000000000..f70897145 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/impl/Member2MaleImpl.java @@ -0,0 +1,45 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Member2Male; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Member2 Male</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class Member2MaleImpl extends MemberToPersonImpl implements Member2Male { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Member2MaleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return Families2PersonsPackage.Literals.MEMBER2_MALE; + } + + +} //Member2MaleImpl diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/impl/MemberToPersonImpl.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/impl/MemberToPersonImpl.java new file mode 100644 index 000000000..387bd960f --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/impl/MemberToPersonImpl.java @@ -0,0 +1,356 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Person; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Member To Person</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * </p> + * <ul> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.MemberToPersonImpl#getMember <em>Member</em>}</li> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.MemberToPersonImpl#getPerson <em>Person</em>}</li> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.MemberToPersonImpl#getFirstName <em>First Name</em>}</li> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.MemberToPersonImpl#getFamilyName <em>Family Name</em>}</li> + * </ul> + * + * @generated + */ +public abstract class MemberToPersonImpl extends MinimalEObjectImpl.Container implements MemberToPerson { + /** + * The cached value of the '{@link #getMember() <em>Member</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMember() + * @generated + * @ordered + */ + protected Member member; + + /** + * The cached value of the '{@link #getPerson() <em>Person</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPerson() + * @generated + * @ordered + */ + protected Person person; + + /** + * The default value of the '{@link #getFirstName() <em>First Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getFirstName() + * @generated + * @ordered + */ + protected static final String FIRST_NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getFirstName() <em>First Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getFirstName() + * @generated + * @ordered + */ + protected String firstName = FIRST_NAME_EDEFAULT; + + /** + * The default value of the '{@link #getFamilyName() <em>Family Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getFamilyName() + * @generated + * @ordered + */ + protected static final String FAMILY_NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getFamilyName() <em>Family Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getFamilyName() + * @generated + * @ordered + */ + protected String familyName = FAMILY_NAME_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected MemberToPersonImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return Families2PersonsPackage.Literals.MEMBER_TO_PERSON; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Member getMember() { + if (member != null && member.eIsProxy()) { + InternalEObject oldMember = (InternalEObject)member; + member = (Member)eResolveProxy(oldMember); + if (member != oldMember) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, Families2PersonsPackage.MEMBER_TO_PERSON__MEMBER, oldMember, member)); + } + } + return member; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Member basicGetMember() { + return member; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setMember(Member newMember) { + Member oldMember = member; + member = newMember; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, Families2PersonsPackage.MEMBER_TO_PERSON__MEMBER, oldMember, member)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Person getPerson() { + if (person != null && person.eIsProxy()) { + InternalEObject oldPerson = (InternalEObject)person; + person = (Person)eResolveProxy(oldPerson); + if (person != oldPerson) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, Families2PersonsPackage.MEMBER_TO_PERSON__PERSON, oldPerson, person)); + } + } + return person; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Person basicGetPerson() { + return person; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setPerson(Person newPerson) { + Person oldPerson = person; + person = newPerson; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, Families2PersonsPackage.MEMBER_TO_PERSON__PERSON, oldPerson, person)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getFirstName() { + return firstName; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setFirstName(String newFirstName) { + String oldFirstName = firstName; + firstName = newFirstName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, Families2PersonsPackage.MEMBER_TO_PERSON__FIRST_NAME, oldFirstName, firstName)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getFamilyName() { + return familyName; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setFamilyName(String newFamilyName) { + String oldFamilyName = familyName; + familyName = newFamilyName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, Families2PersonsPackage.MEMBER_TO_PERSON__FAMILY_NAME, oldFamilyName, familyName)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case Families2PersonsPackage.MEMBER_TO_PERSON__MEMBER: + if (resolve) return getMember(); + return basicGetMember(); + case Families2PersonsPackage.MEMBER_TO_PERSON__PERSON: + if (resolve) return getPerson(); + return basicGetPerson(); + case Families2PersonsPackage.MEMBER_TO_PERSON__FIRST_NAME: + return getFirstName(); + case Families2PersonsPackage.MEMBER_TO_PERSON__FAMILY_NAME: + return getFamilyName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case Families2PersonsPackage.MEMBER_TO_PERSON__MEMBER: + setMember((Member)newValue); + return; + case Families2PersonsPackage.MEMBER_TO_PERSON__PERSON: + setPerson((Person)newValue); + return; + case Families2PersonsPackage.MEMBER_TO_PERSON__FIRST_NAME: + setFirstName((String)newValue); + return; + case Families2PersonsPackage.MEMBER_TO_PERSON__FAMILY_NAME: + setFamilyName((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case Families2PersonsPackage.MEMBER_TO_PERSON__MEMBER: + setMember((Member)null); + return; + case Families2PersonsPackage.MEMBER_TO_PERSON__PERSON: + setPerson((Person)null); + return; + case Families2PersonsPackage.MEMBER_TO_PERSON__FIRST_NAME: + setFirstName(FIRST_NAME_EDEFAULT); + return; + case Families2PersonsPackage.MEMBER_TO_PERSON__FAMILY_NAME: + setFamilyName(FAMILY_NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case Families2PersonsPackage.MEMBER_TO_PERSON__MEMBER: + return member != null; + case Families2PersonsPackage.MEMBER_TO_PERSON__PERSON: + return person != null; + case Families2PersonsPackage.MEMBER_TO_PERSON__FIRST_NAME: + return FIRST_NAME_EDEFAULT == null ? firstName != null : !FIRST_NAME_EDEFAULT.equals(firstName); + case Families2PersonsPackage.MEMBER_TO_PERSON__FAMILY_NAME: + return FAMILY_NAME_EDEFAULT == null ? familyName != null : !FAMILY_NAME_EDEFAULT.equals(familyName); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (firstName: "); + result.append(firstName); + result.append(", familyName: "); + result.append(familyName); + result.append(')'); + return result.toString(); + } + + +} //MemberToPersonImpl diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/util/Families2PersonsAdapterFactory.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/util/Families2PersonsAdapterFactory.java new file mode 100644 index 000000000..66c4e50df --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/util/Families2PersonsAdapterFactory.java @@ -0,0 +1,165 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.util; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Member2Female; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Member2Male; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson; + +/** + * <!-- begin-user-doc --> + * The <b>Adapter Factory</b> for the model. + * It provides an adapter <code>createXXX</code> method for each class of the model. + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsPackage + * @generated + */ +public class Families2PersonsAdapterFactory extends AdapterFactoryImpl { + /** + * The cached model package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static Families2PersonsPackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Families2PersonsAdapterFactory() { + if (modelPackage == null) { + modelPackage = Families2PersonsPackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * <!-- begin-user-doc --> + * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model. + * <!-- end-user-doc --> + * @return whether this factory is applicable for the type of the object. + * @generated + */ + @Override + public boolean isFactoryForType(Object object) { + if (object == modelPackage) { + return true; + } + if (object instanceof EObject) { + return ((EObject)object).eClass().getEPackage() == modelPackage; + } + return false; + } + + /** + * The switch that delegates to the <code>createXXX</code> methods. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected Families2PersonsSwitch<@Nullable Adapter> modelSwitch = + new Families2PersonsSwitch<@Nullable Adapter>() { + @Override + public Adapter caseMemberToPerson(MemberToPerson object) { + return createMemberToPersonAdapter(); + } + @Override + public Adapter caseMember2Male(Member2Male object) { + return createMember2MaleAdapter(); + } + @Override + public Adapter caseMember2Female(Member2Female object) { + return createMember2FemaleAdapter(); + } + @Override + public Adapter defaultCase(EObject object) { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the <code>target</code>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param target the object to adapt. + * @return the adapter for the <code>target</code>. + * @generated + */ + @Override + public Adapter createAdapter(Notifier target) { + return modelSwitch.doSwitch((EObject)target); + } + + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson <em>Member To Person</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson + * @generated + */ + public Adapter createMemberToPersonAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Member2Male <em>Member2 Male</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Member2Male + * @generated + */ + public Adapter createMember2MaleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Member2Female <em>Member2 Female</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Member2Female + * @generated + */ + public Adapter createMember2FemaleAdapter() { + return null; + } + + /** + * Creates a new adapter for the default case. + * <!-- begin-user-doc --> + * This default implementation returns null. + * <!-- end-user-doc --> + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() { + return null; + } + +} //Families2PersonsAdapterFactory diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/util/Families2PersonsSwitch.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/util/Families2PersonsSwitch.java new file mode 100644 index 000000000..1afce5492 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Families2Persons/util/Families2PersonsSwitch.java @@ -0,0 +1,164 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.util; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.util.Switch; +import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Member2Female; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Member2Male; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.MemberToPerson; + +/** + * <!-- begin-user-doc --> + * The <b>Switch</b> for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch(EObject) doSwitch(object)} + * to invoke the <code>caseXXX</code> method for each class of the model, + * starting with the actual class of the object + * and proceeding up the inheritance hierarchy + * until a non-null result is returned, + * which is the result of the switch. + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsPackage + * @generated + */ +public class Families2PersonsSwitch<@Nullable T> extends Switch<T> { + /** + * The cached model package + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static Families2PersonsPackage modelPackage; + + /** + * Creates an instance of the switch. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Families2PersonsSwitch() { + if (modelPackage == null) { + modelPackage = Families2PersonsPackage.eINSTANCE; + } + } + + /** + * Checks whether this is a switch for the given package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param ePackage the package in question. + * @return whether this is a switch for the given package. + * @generated + */ + @Override + protected boolean isSwitchFor(EPackage ePackage) { + return ePackage == modelPackage; + } + + /** + * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the first non-null result returned by a <code>caseXXX</code> call. + * @generated + */ + @Override + protected T doSwitch(int classifierID, EObject theEObject) { + switch (classifierID) { + case Families2PersonsPackage.MEMBER_TO_PERSON: { + MemberToPerson memberToPerson = (MemberToPerson)theEObject; + T result = caseMemberToPerson(memberToPerson); + if (result == null) result = defaultCase(theEObject); + return result; + } + case Families2PersonsPackage.MEMBER2_MALE: { + Member2Male member2Male = (Member2Male)theEObject; + T result = caseMember2Male(member2Male); + if (result == null) result = caseMemberToPerson(member2Male); + if (result == null) result = defaultCase(theEObject); + return result; + } + case Families2PersonsPackage.MEMBER2_FEMALE: { + Member2Female member2Female = (Member2Female)theEObject; + T result = caseMember2Female(member2Female); + if (result == null) result = caseMemberToPerson(member2Female); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Member To Person</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Member To Person</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMemberToPerson(MemberToPerson object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Member2 Male</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Member2 Male</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMember2Male(Member2Male object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Member2 Female</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Member2 Female</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMember2Female(Member2Female object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>EObject</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + @Override + public T defaultCase(EObject object) { + return null; + } + +} //Families2PersonsSwitch diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/Female.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/Female.java new file mode 100644 index 000000000..35c6998b6 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/Female.java @@ -0,0 +1,24 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Persons; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Female</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsPackage#getFemale() + * @model + * @generated + */ +public interface Female extends Person { +} // Female diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/Male.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/Male.java new file mode 100644 index 000000000..26c10262c --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/Male.java @@ -0,0 +1,24 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Persons; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Male</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsPackage#getMale() + * @model + * @generated + */ +public interface Male extends Person { +} // Male diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/Person.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/Person.java new file mode 100644 index 000000000..881961dd3 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/Person.java @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Persons; + +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Person</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * </p> + * <ul> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Person#getFullName <em>Full Name</em>}</li> + * </ul> + * + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsPackage#getPerson() + * @model abstract="true" + * @generated + */ +public interface Person extends EObject { + /** + * Returns the value of the '<em><b>Full Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Full Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Full Name</em>' attribute. + * @see #setFullName(String) + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsPackage#getPerson_FullName() + * @model unique="false" required="true" ordered="false" + * @generated + */ + String getFullName(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Person#getFullName <em>Full Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Full Name</em>' attribute. + * @see #getFullName() + * @generated + */ + void setFullName(String value); + +} // Person diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/PersonsFactory.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/PersonsFactory.java new file mode 100644 index 000000000..c49f1c281 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/PersonsFactory.java @@ -0,0 +1,59 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Persons; + +import org.eclipse.emf.ecore.EFactory; + +/** + * <!-- begin-user-doc --> + * The <b>Factory</b> for the model. + * It provides a create method for each non-abstract class of the model. + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsPackage + * @generated + */ +public interface PersonsFactory extends EFactory { + /** + * The singleton instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + PersonsFactory eINSTANCE = org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl.PersonsFactoryImpl.init(); + + /** + * Returns a new object of class '<em>Male</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Male</em>'. + * @generated + */ + Male createMale(); + + /** + * Returns a new object of class '<em>Female</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Female</em>'. + * @generated + */ + Female createFemale(); + + /** + * Returns the package supported by this factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the package supported by this factory. + * @generated + */ + PersonsPackage getPersonsPackage(); + +} //PersonsFactory diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/PersonsPackage.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/PersonsPackage.java new file mode 100644 index 000000000..abb0210fb --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/PersonsPackage.java @@ -0,0 +1,282 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Persons; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; + +/** + * <!-- begin-user-doc --> + * The <b>Package</b> for the model. + * It contains accessors for the meta objects to represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each operation of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsFactory + * @model kind="package" + * @generated + */ +public interface PersonsPackage extends EPackage { + /** + * The package name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNAME = "Persons"; + + /** + * The package namespace URI. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_URI = "http://www.eclipse.org/qvtd/xtext/qvtcore/tests/Upper2Lower/1.0/Persons"; + + /** + * The package namespace name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + String eNS_PREFIX = "persons"; + + /** + * The singleton instance of the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + PersonsPackage eINSTANCE = org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl.PersonsPackageImpl.init(); + + /** + * The meta object id for the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl.PersonImpl <em>Person</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl.PersonImpl + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl.PersonsPackageImpl#getPerson() + * @generated + */ + int PERSON = 0; + + /** + * The feature id for the '<em><b>Full Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PERSON__FULL_NAME = 0; + + /** + * The number of structural features of the '<em>Person</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PERSON_FEATURE_COUNT = 1; + + /** + * The number of operations of the '<em>Person</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PERSON_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl.MaleImpl <em>Male</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl.MaleImpl + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl.PersonsPackageImpl#getMale() + * @generated + */ + int MALE = 1; + + /** + * The feature id for the '<em><b>Full Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MALE__FULL_NAME = PERSON__FULL_NAME; + + /** + * The number of structural features of the '<em>Male</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MALE_FEATURE_COUNT = PERSON_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>Male</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int MALE_OPERATION_COUNT = PERSON_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl.FemaleImpl <em>Female</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl.FemaleImpl + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl.PersonsPackageImpl#getFemale() + * @generated + */ + int FEMALE = 2; + + /** + * The feature id for the '<em><b>Full Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FEMALE__FULL_NAME = PERSON__FULL_NAME; + + /** + * The number of structural features of the '<em>Female</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FEMALE_FEATURE_COUNT = PERSON_FEATURE_COUNT + 0; + + /** + * The number of operations of the '<em>Female</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int FEMALE_OPERATION_COUNT = PERSON_OPERATION_COUNT + 0; + + + /** + * Returns the meta object for class '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Person <em>Person</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Person</em>'. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Person + * @generated + */ + EClass getPerson(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Person#getFullName <em>Full Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Full Name</em>'. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Person#getFullName() + * @see #getPerson() + * @generated + */ + EAttribute getPerson_FullName(); + + /** + * Returns the meta object for class '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Male <em>Male</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Male</em>'. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Male + * @generated + */ + EClass getMale(); + + /** + * Returns the meta object for class '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Female <em>Female</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Female</em>'. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Female + * @generated + */ + EClass getFemale(); + + /** + * Returns the factory that creates the instances of the model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the factory that creates the instances of the model. + * @generated + */ + PersonsFactory getPersonsFactory(); + + /** + * <!-- begin-user-doc --> + * Defines literals for the meta objects that represent + * <ul> + * <li>each class,</li> + * <li>each feature of each class,</li> + * <li>each operation of each class,</li> + * <li>each enum,</li> + * <li>and each data type</li> + * </ul> + * <!-- end-user-doc --> + * @generated + */ + interface Literals { + /** + * The meta object literal for the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl.PersonImpl <em>Person</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl.PersonImpl + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl.PersonsPackageImpl#getPerson() + * @generated + */ + EClass PERSON = eINSTANCE.getPerson(); + + /** + * The meta object literal for the '<em><b>Full Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute PERSON__FULL_NAME = eINSTANCE.getPerson_FullName(); + + /** + * The meta object literal for the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl.MaleImpl <em>Male</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl.MaleImpl + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl.PersonsPackageImpl#getMale() + * @generated + */ + EClass MALE = eINSTANCE.getMale(); + + /** + * The meta object literal for the '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl.FemaleImpl <em>Female</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl.FemaleImpl + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl.PersonsPackageImpl#getFemale() + * @generated + */ + EClass FEMALE = eINSTANCE.getFemale(); + + } + +} //PersonsPackage diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/impl/FemaleImpl.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/impl/FemaleImpl.java new file mode 100644 index 000000000..729797554 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/impl/FemaleImpl.java @@ -0,0 +1,45 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Female; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Female</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class FemaleImpl extends PersonImpl implements Female { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected FemaleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return PersonsPackage.Literals.FEMALE; + } + + +} //FemaleImpl diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/impl/MaleImpl.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/impl/MaleImpl.java new file mode 100644 index 000000000..619edc480 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/impl/MaleImpl.java @@ -0,0 +1,45 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Male; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Male</b></em>'. + * <!-- end-user-doc --> + * + * @generated + */ +public class MaleImpl extends PersonImpl implements Male { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected MaleImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return PersonsPackage.Literals.MALE; + } + + +} //MaleImpl diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/impl/PersonImpl.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/impl/PersonImpl.java new file mode 100644 index 000000000..a26751646 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/impl/PersonImpl.java @@ -0,0 +1,173 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Person; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Person</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * </p> + * <ul> + * <li>{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl.PersonImpl#getFullName <em>Full Name</em>}</li> + * </ul> + * + * @generated + */ +public abstract class PersonImpl extends MinimalEObjectImpl.Container implements Person { + /** + * The default value of the '{@link #getFullName() <em>Full Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getFullName() + * @generated + * @ordered + */ + protected static final String FULL_NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getFullName() <em>Full Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getFullName() + * @generated + * @ordered + */ + protected String fullName = FULL_NAME_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PersonImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() { + return PersonsPackage.Literals.PERSON; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String getFullName() { + return fullName; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setFullName(String newFullName) { + String oldFullName = fullName; + fullName = newFullName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, PersonsPackage.PERSON__FULL_NAME, oldFullName, fullName)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case PersonsPackage.PERSON__FULL_NAME: + return getFullName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case PersonsPackage.PERSON__FULL_NAME: + setFullName((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case PersonsPackage.PERSON__FULL_NAME: + setFullName(FULL_NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case PersonsPackage.PERSON__FULL_NAME: + return FULL_NAME_EDEFAULT == null ? fullName != null : !FULL_NAME_EDEFAULT.equals(fullName); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (fullName: "); + result.append(fullName); + result.append(')'); + return result.toString(); + } + + +} //PersonImpl diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/impl/PersonsFactoryImpl.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/impl/PersonsFactoryImpl.java new file mode 100644 index 000000000..93a5b4296 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/impl/PersonsFactoryImpl.java @@ -0,0 +1,117 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.impl.EFactoryImpl; +import org.eclipse.emf.ecore.plugin.EcorePlugin; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Female; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Male; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsFactory; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Factory</b>. + * <!-- end-user-doc --> + * @generated + */ +public class PersonsFactoryImpl extends EFactoryImpl implements PersonsFactory { + /** + * Creates the default factory implementation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static PersonsFactory init() { + try { + PersonsFactory thePersonsFactory = (PersonsFactory)EPackage.Registry.INSTANCE.getEFactory(PersonsPackage.eNS_URI); + if (thePersonsFactory != null) { + return thePersonsFactory; + } + } + catch (Exception exception) { + EcorePlugin.INSTANCE.log(exception); + } + return new PersonsFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PersonsFactoryImpl() { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EObject create(EClass eClass) { + switch (eClass.getClassifierID()) { + case PersonsPackage.MALE: return createMale(); + case PersonsPackage.FEMALE: return createFemale(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Male createMale() { + MaleImpl male = new MaleImpl(); + return male; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Female createFemale() { + FemaleImpl female = new FemaleImpl(); + return female; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public PersonsPackage getPersonsPackage() { + return (PersonsPackage)getEPackage(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @deprecated + * @generated + */ + @Deprecated + public static PersonsPackage getPackage() { + return PersonsPackage.eINSTANCE; + } + +} //PersonsFactoryImpl diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/impl/PersonsPackageImpl.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/impl/PersonsPackageImpl.java new file mode 100644 index 000000000..31390880d --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/impl/PersonsPackageImpl.java @@ -0,0 +1,245 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Persons.impl; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.impl.EPackageImpl; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.impl.FamiliesPackageImpl; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.impl.Families2PersonsPackageImpl; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Female; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Male; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Person; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsFactory; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsPackage; + +/** + * <!-- begin-user-doc --> + * An implementation of the model <b>Package</b>. + * <!-- end-user-doc --> + * @generated + */ +public class PersonsPackageImpl extends EPackageImpl implements PersonsPackage { + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass personEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass maleEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass femaleEClass = null; + + /** + * Creates an instance of the model <b>Package</b>, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + * <p>Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsPackage#eNS_URI + * @see #init() + * @generated + */ + private PersonsPackageImpl() { + super(eNS_URI, PersonsFactory.eINSTANCE); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends. + * + * <p>This method is used to initialize {@link PersonsPackage#eINSTANCE} when that field is accessed. + * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static PersonsPackage init() { + if (isInited) return (PersonsPackage)EPackage.Registry.INSTANCE.getEPackage(PersonsPackage.eNS_URI); + + // Obtain or create and register package + Object ePackage = EPackage.Registry.INSTANCE.get(eNS_URI); + PersonsPackageImpl thePersonsPackage = (PersonsPackageImpl)(ePackage instanceof PersonsPackageImpl ? ePackage : new PersonsPackageImpl()); + + isInited = true; + + // Obtain or create and register interdependencies + Families2PersonsPackageImpl theFamilies2PersonsPackage = (Families2PersonsPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(Families2PersonsPackage.eNS_URI) instanceof Families2PersonsPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(Families2PersonsPackage.eNS_URI) : Families2PersonsPackage.eINSTANCE); + FamiliesPackageImpl theFamiliesPackage = (FamiliesPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(FamiliesPackage.eNS_URI) instanceof FamiliesPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(FamiliesPackage.eNS_URI) : FamiliesPackage.eINSTANCE); + + // Create package meta-data objects + thePersonsPackage.createPackageContents(); + theFamilies2PersonsPackage.createPackageContents(); + theFamiliesPackage.createPackageContents(); + + // Initialize created meta-data + thePersonsPackage.initializePackageContents(); + theFamilies2PersonsPackage.initializePackageContents(); + theFamiliesPackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + thePersonsPackage.freeze(); + + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(PersonsPackage.eNS_URI, thePersonsPackage); + return thePersonsPackage; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EClass getPerson() { + return personEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EAttribute getPerson_FullName() { + return (EAttribute)personEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EClass getMale() { + return maleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EClass getFemale() { + return femaleEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public PersonsFactory getPersonsFactory() { + return (PersonsFactory)getEFactoryInstance(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void createPackageContents() { + if (isCreated) return; + isCreated = true; + + // Create classes and their features + personEClass = createEClass(PERSON); + createEAttribute(personEClass, PERSON__FULL_NAME); + + maleEClass = createEClass(MALE); + + femaleEClass = createEClass(FEMALE); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void initializePackageContents() { + if (isInitialized) return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Create type parameters + + // Set bounds for type parameters + + // Add supertypes to classes + maleEClass.getESuperTypes().add(this.getPerson()); + femaleEClass.getESuperTypes().add(this.getPerson()); + + // Initialize classes, features, and operations; add parameters + initEClass(personEClass, Person.class, "Person", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getPerson_FullName(), ecorePackage.getEString(), "fullName", null, 1, 1, Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + + initEClass(maleEClass, Male.class, "Male", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(femaleEClass, Female.class, "Female", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + // Create resource + createResource(eNS_URI); + } + +} //PersonsPackageImpl diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/util/PersonsAdapterFactory.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/util/PersonsAdapterFactory.java new file mode 100644 index 000000000..3fb8d03e4 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/util/PersonsAdapterFactory.java @@ -0,0 +1,165 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Persons.util; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Female; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Male; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Person; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsPackage; + +/** + * <!-- begin-user-doc --> + * The <b>Adapter Factory</b> for the model. + * It provides an adapter <code>createXXX</code> method for each class of the model. + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsPackage + * @generated + */ +public class PersonsAdapterFactory extends AdapterFactoryImpl { + /** + * The cached model package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static PersonsPackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PersonsAdapterFactory() { + if (modelPackage == null) { + modelPackage = PersonsPackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * <!-- begin-user-doc --> + * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model. + * <!-- end-user-doc --> + * @return whether this factory is applicable for the type of the object. + * @generated + */ + @Override + public boolean isFactoryForType(Object object) { + if (object == modelPackage) { + return true; + } + if (object instanceof EObject) { + return ((EObject)object).eClass().getEPackage() == modelPackage; + } + return false; + } + + /** + * The switch that delegates to the <code>createXXX</code> methods. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected PersonsSwitch<@Nullable Adapter> modelSwitch = + new PersonsSwitch<@Nullable Adapter>() { + @Override + public Adapter casePerson(Person object) { + return createPersonAdapter(); + } + @Override + public Adapter caseMale(Male object) { + return createMaleAdapter(); + } + @Override + public Adapter caseFemale(Female object) { + return createFemaleAdapter(); + } + @Override + public Adapter defaultCase(EObject object) { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the <code>target</code>. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param target the object to adapt. + * @return the adapter for the <code>target</code>. + * @generated + */ + @Override + public Adapter createAdapter(Notifier target) { + return modelSwitch.doSwitch((EObject)target); + } + + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Person <em>Person</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Person + * @generated + */ + public Adapter createPersonAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Male <em>Male</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Male + * @generated + */ + public Adapter createMaleAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Female <em>Female</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Female + * @generated + */ + public Adapter createFemaleAdapter() { + return null; + } + + /** + * Creates a new adapter for the default case. + * <!-- begin-user-doc --> + * This default implementation returns null. + * <!-- end-user-doc --> + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() { + return null; + } + +} //PersonsAdapterFactory diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/util/PersonsSwitch.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/util/PersonsSwitch.java new file mode 100644 index 000000000..75cfa5400 --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/Persons/util/PersonsSwitch.java @@ -0,0 +1,164 @@ +/** + * Copyright (c) 2015, 2016 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc.Persons.util; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.util.Switch; +import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Female; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Male; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.Person; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsPackage; + +/** + * <!-- begin-user-doc --> + * The <b>Switch</b> for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch(EObject) doSwitch(object)} + * to invoke the <code>caseXXX</code> method for each class of the model, + * starting with the actual class of the object + * and proceeding up the inheritance hierarchy + * until a non-null result is returned, + * which is the result of the switch. + * <!-- end-user-doc --> + * @see org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsPackage + * @generated + */ +public class PersonsSwitch<@Nullable T> extends Switch<T> { + /** + * The cached model package + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static PersonsPackage modelPackage; + + /** + * Creates an instance of the switch. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public PersonsSwitch() { + if (modelPackage == null) { + modelPackage = PersonsPackage.eINSTANCE; + } + } + + /** + * Checks whether this is a switch for the given package. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param ePackage the package in question. + * @return whether this is a switch for the given package. + * @generated + */ + @Override + protected boolean isSwitchFor(EPackage ePackage) { + return ePackage == modelPackage; + } + + /** + * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the first non-null result returned by a <code>caseXXX</code> call. + * @generated + */ + @Override + protected T doSwitch(int classifierID, EObject theEObject) { + switch (classifierID) { + case PersonsPackage.PERSON: { + Person person = (Person)theEObject; + T result = casePerson(person); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PersonsPackage.MALE: { + Male male = (Male)theEObject; + T result = caseMale(male); + if (result == null) result = casePerson(male); + if (result == null) result = defaultCase(theEObject); + return result; + } + case PersonsPackage.FEMALE: { + Female female = (Female)theEObject; + T result = caseFemale(female); + if (result == null) result = casePerson(female); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Person</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Person</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePerson(Person object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Male</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Male</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMale(Male object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Female</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Female</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFemale(Female object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>EObject</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>EObject</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + @Override + public T defaultCase(EObject object) { + return null; + } + +} //PersonsSwitch diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/tx/Families2Persons.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/tx/Families2Persons.java new file mode 100644 index 000000000..144028eea --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src-copy/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/tx/Families2Persons.java @@ -0,0 +1,440 @@ +/******************************************************************************* + * «codeGenHelper.getCopyright(' * ')» + * + * This code is 100% auto-generated + * using: org.eclipse.qvtd.codegen.qvti.java.QVTiCodeGenerator + * + * Do not edit it. + ********************************************************************************/ + +package org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.tx; + +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.ocl.pivot.evaluation.Executor; +import org.eclipse.ocl.pivot.ids.ClassId; +import org.eclipse.ocl.pivot.ids.IdManager; +import org.eclipse.ocl.pivot.ids.IdResolver; +import org.eclipse.ocl.pivot.ids.TypeId; +import org.eclipse.ocl.pivot.library.logical.BooleanNotOperation2; +import org.eclipse.ocl.pivot.library.string.StringConcatOperation; +import org.eclipse.ocl.pivot.utilities.ValueUtil; +import org.eclipse.ocl.pivot.values.InvalidValueException; +import org.eclipse.ocl.pivot.values.SetValue; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsFactory; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.Families2PersonsPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsFactory; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsPackage; +import org.eclipse.qvtd.runtime.evaluation.AbstractTransformer; +import org.eclipse.qvtd.runtime.evaluation.AbstractValueOccurrence; +import org.eclipse.qvtd.runtime.internal.evaluation.AbstractComputationConstructor; +import org.eclipse.qvtd.runtime.library.model.ModelObjectsOfKindOperation; + +/** + * The Families2Persons transformation: + * <p> + * Construct with an evaluator + * <br> + * Populate each input model with {@link addRootObjects(String,List)} + * <br> + * {@link run()} + * <br> + * Extract each output model with {@link getRootObjects(String)} + */ +@SuppressWarnings("nls") +public class Families2Persons extends AbstractTransformer +{ + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull RootPackageId PACKid_org = IdManager.getRootPackageId("org"); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull RootPackageId PACKid_$metamodel$ = IdManager.getRootPackageId("$metamodel$"); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull NestedPackageId PACKid_eclipse = PACKid_org.getNestedPackageId("eclipse"); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull NsURIPackageId PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2015_s_QVTbaseLibrary = IdManager.getNsURIPackageId("http://www.eclipse.org/qvt/2015/QVTbaseLibrary", "qvtbaselib", null); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull NsURIPackageId PACKid_http_c_s_s_www_eclipse_org_s_qvtd_s_xtext_s_qvtcore_s_tests_s_Upper2Lower_s_1_0_s_Families = IdManager.getNsURIPackageId("http://www.eclipse.org/qvtd/xtext/qvtcore/tests/Upper2Lower/1.0/Families", null, FamiliesPackage.eINSTANCE); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull NsURIPackageId PACKid_http_c_s_s_www_eclipse_org_s_qvtd_s_xtext_s_qvtcore_s_tests_s_Upper2Lower_s_1_0_s_Families2Persons = IdManager.getNsURIPackageId("http://www.eclipse.org/qvtd/xtext/qvtcore/tests/Upper2Lower/1.0/Families2Persons", null, Families2PersonsPackage.eINSTANCE); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull NsURIPackageId PACKid_http_c_s_s_www_eclipse_org_s_qvtd_s_xtext_s_qvtcore_s_tests_s_Upper2Lower_s_1_0_s_Persons = IdManager.getNsURIPackageId("http://www.eclipse.org/qvtd/xtext/qvtcore/tests/Upper2Lower/1.0/Persons", null, PersonsPackage.eINSTANCE); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_Class = PACKid_$metamodel$.getClassId("Class", 0); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_Family = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_s_xtext_s_qvtcore_s_tests_s_Upper2Lower_s_1_0_s_Families.getClassId("Family", 0); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_Female = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_s_xtext_s_qvtcore_s_tests_s_Upper2Lower_s_1_0_s_Persons.getClassId("Female", 0); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_Male = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_s_xtext_s_qvtcore_s_tests_s_Upper2Lower_s_1_0_s_Persons.getClassId("Male", 0); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_Member = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_s_xtext_s_qvtcore_s_tests_s_Upper2Lower_s_1_0_s_Families.getClassId("Member", 0); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_Member2Female = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_s_xtext_s_qvtcore_s_tests_s_Upper2Lower_s_1_0_s_Families2Persons.getClassId("Member2Female", 0); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_Member2Male = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_s_xtext_s_qvtcore_s_tests_s_Upper2Lower_s_1_0_s_Families2Persons.getClassId("Member2Male", 0); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_Model = PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2015_s_QVTbaseLibrary.getClassId("Model", 0); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull NestedPackageId PACKid_qvtd = PACKid_eclipse.getNestedPackageId("qvtd"); + public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR__32 = " "; + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull NestedPackageId PACKid_xtext = PACKid_qvtd.getNestedPackageId("xtext"); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId SET_CLSSid_Member = TypeId.SET.getSpecializedId(CLSSid_Member); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull NestedPackageId PACKid_qvtcore = PACKid_xtext.getNestedPackageId("qvtcore"); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull NestedPackageId PACKid_tests = PACKid_qvtcore.getNestedPackageId("tests"); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull NestedPackageId PACKid_families2persons = PACKid_tests.getNestedPackageId("families2persons"); + public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_Families2Persons = PACKid_families2persons.getClassId("Families2Persons", 0); + + /* + * Array of the ClassIds of each class for which allInstances() may be invoked. Array index is the ClassIndex. + */ + private static final @NonNull ClassId[] classIndex2classId = new @NonNull ClassId[]{ + CLSSid_Member // 0 => Member + }; + + /* + * Mapping from each ClassIndex to all the ClassIndexes to which an object of the outer index + * may contribute results to an allInstances() invocation. + * Non trivial inner arrays arise when one ClassId is a derivation of another and so an + * instance of the derived classId contributes to derived and inherited ClassIndexes. + */ + private final static int @NonNull [] @NonNull [] classIndex2allClassIndexes = new int @NonNull [] @NonNull [] { + {0} // 0 : Member -> {Member} + }; + + protected final @NonNull AbstractComputationConstructor FTOR_isFemale = new AbstractComputationConstructor(idResolver) + { + @Override + public @NonNull FUN_isFemale newInstance(@Nullable Object @NonNull [] values) { + return new FUN_isFemale(values); + } + }; + + protected final @NonNull AbstractComputationConstructor FTOR_familyName = new AbstractComputationConstructor(idResolver) + { + @Override + public @NonNull FUN_familyName newInstance(@Nullable Object @NonNull [] values) { + return new FUN_familyName(values); + } + }; + + + public Families2Persons(final @NonNull Executor executor) { + super(executor, new @NonNull String[] {"family", "person", "middle"}, null, classIndex2classId, classIndex2allClassIndexes); + } + + @Override + public boolean run() { + return MAP___root__() && invocationManager.flush(); + } + + /** + * ::isFemale(member : Families::Member[1]) : Boolean[1] + */ + protected class FUN_isFemale extends AbstractValueOccurrence + { + protected final @NonNull Families2Persons self; + protected /*@NonInvalid*/ org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.@org.eclipse.jdt.annotation.NonNull Member member; + protected final /*@NonInvalid*/ boolean symbol_3; + + /** + * + * if not2 member.familyMother.oclIsUndefined() + * then true + * else + * if not2 member.familyDaughter.oclIsUndefined() + * then true + * else false + * endif + * endif + */ + public FUN_isFemale(/*Nullable*/ Object @NonNull [] boundValues) { + this.self = (Families2Persons)boundValues[0]; + this.member = (Member)boundValues[1]; + /*@Caught*/ @Nullable Object CAUGHT_familyMother; + try { + final /*@Thrown*/ org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.@org.eclipse.jdt.annotation.Nullable Family familyMother = member.getFamilyMother(); + CAUGHT_familyMother = familyMother; + } + catch (Exception e) { + CAUGHT_familyMother = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ boolean symbol_0 = (CAUGHT_familyMother == null) || (CAUGHT_familyMother instanceof InvalidValueException); + final /*@NonInvalid*/ boolean not2 = BooleanNotOperation2.INSTANCE.evaluate(symbol_0).booleanValue(); + /*@NonInvalid*/ boolean symbol_3; + if (not2) { + symbol_3 = ValueUtil.TRUE_VALUE; + } + else { + /*@Caught*/ @Nullable Object CAUGHT_familyDaughter; + try { + final /*@Thrown*/ org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.@org.eclipse.jdt.annotation.Nullable Family familyDaughter = member.getFamilyDaughter(); + CAUGHT_familyDaughter = familyDaughter; + } + catch (Exception e) { + CAUGHT_familyDaughter = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ boolean symbol_1 = (CAUGHT_familyDaughter == null) || (CAUGHT_familyDaughter instanceof InvalidValueException); + final /*@NonInvalid*/ boolean not2_0 = BooleanNotOperation2.INSTANCE.evaluate(symbol_1).booleanValue(); + /*@NonInvalid*/ boolean symbol_2; + if (not2_0) { + symbol_2 = ValueUtil.TRUE_VALUE; + } + else { + symbol_2 = ValueUtil.FALSE_VALUE; + } + symbol_3 = symbol_2; + } + this.symbol_3 = symbol_3; + } + + @Override + public @Nullable Object getResult() { + return symbol_3; + } + + @Override + public boolean isEqual(@NonNull IdResolver idResolver, @Nullable Object @NonNull [] thoseValues) { + return this.self == thoseValues[0] + && idResolver.oclEquals(this.member, thoseValues[1]); + } + } + + /** + * ::familyName(member : Families::Member[1]) : String[1] + */ + protected class FUN_familyName extends AbstractValueOccurrence + { + protected final @NonNull Families2Persons self; + protected /*@NonInvalid*/ org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.@org.eclipse.jdt.annotation.NonNull Member member_0; + protected final /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.NonNull String symbol_5; + + /** + * + * if not2 member.familyFather.oclIsUndefined() + * then member.familyFather.lastName + * else + * if not2 member.familyMother.oclIsUndefined() + * then member.familyMother.lastName + * else + * if not2 member.familySon.oclIsUndefined() + * then member.familySon.lastName + * else member.familyDaughter.lastName + * endif + * endif + * endif + */ + public FUN_familyName(/*Nullable*/ Object @NonNull [] boundValues) { + this.self = (Families2Persons)boundValues[0]; + this.member_0 = (Member)boundValues[1]; + /*@Caught*/ @Nullable Object CAUGHT_familyFather; + try { + final /*@Thrown*/ org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.@org.eclipse.jdt.annotation.Nullable Family familyFather = member_0.getFamilyFather(); + CAUGHT_familyFather = familyFather; + } + catch (Exception e) { + CAUGHT_familyFather = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ boolean symbol_0 = (CAUGHT_familyFather == null) || (CAUGHT_familyFather instanceof InvalidValueException); + final /*@NonInvalid*/ boolean not2 = BooleanNotOperation2.INSTANCE.evaluate(symbol_0).booleanValue(); + /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.NonNull String symbol_5; + if (not2) { + final /*@Thrown*/ org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.@org.eclipse.jdt.annotation.Nullable Family familyFather_0 = member_0.getFamilyFather(); + if (familyFather_0 == null) { + throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/qvtd/xtext/qvtcore/tests/Upper2Lower/1.0/Families\'::Family::lastName\'"); + } + @SuppressWarnings("null") + final /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.NonNull String lastName = familyFather_0.getLastName(); + symbol_5 = lastName; + } + else { + /*@Caught*/ @Nullable Object CAUGHT_familyMother; + try { + final /*@Thrown*/ org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.@org.eclipse.jdt.annotation.Nullable Family familyMother = member_0.getFamilyMother(); + CAUGHT_familyMother = familyMother; + } + catch (Exception e) { + CAUGHT_familyMother = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ boolean symbol_1 = (CAUGHT_familyMother == null) || (CAUGHT_familyMother instanceof InvalidValueException); + final /*@NonInvalid*/ boolean not2_0 = BooleanNotOperation2.INSTANCE.evaluate(symbol_1).booleanValue(); + /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.NonNull String symbol_4; + if (not2_0) { + final /*@Thrown*/ org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.@org.eclipse.jdt.annotation.Nullable Family familyMother_0 = member_0.getFamilyMother(); + if (familyMother_0 == null) { + throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/qvtd/xtext/qvtcore/tests/Upper2Lower/1.0/Families\'::Family::lastName\'"); + } + @SuppressWarnings("null") + final /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.NonNull String lastName_0 = familyMother_0.getLastName(); + symbol_4 = lastName_0; + } + else { + /*@Caught*/ @Nullable Object CAUGHT_familySon; + try { + final /*@Thrown*/ org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.@org.eclipse.jdt.annotation.Nullable Family familySon = member_0.getFamilySon(); + CAUGHT_familySon = familySon; + } + catch (Exception e) { + CAUGHT_familySon = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ boolean symbol_2 = (CAUGHT_familySon == null) || (CAUGHT_familySon instanceof InvalidValueException); + final /*@NonInvalid*/ boolean not2_1 = BooleanNotOperation2.INSTANCE.evaluate(symbol_2).booleanValue(); + /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.NonNull String symbol_3; + if (not2_1) { + final /*@Thrown*/ org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.@org.eclipse.jdt.annotation.Nullable Family familySon_0 = member_0.getFamilySon(); + if (familySon_0 == null) { + throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/qvtd/xtext/qvtcore/tests/Upper2Lower/1.0/Families\'::Family::lastName\'"); + } + @SuppressWarnings("null") + final /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.NonNull String lastName_1 = familySon_0.getLastName(); + symbol_3 = lastName_1; + } + else { + final /*@Thrown*/ org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.@org.eclipse.jdt.annotation.Nullable Family familyDaughter = member_0.getFamilyDaughter(); + if (familyDaughter == null) { + throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/qvtd/xtext/qvtcore/tests/Upper2Lower/1.0/Families\'::Family::lastName\'"); + } + @SuppressWarnings("null") + final /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.NonNull String lastName_2 = familyDaughter.getLastName(); + symbol_3 = lastName_2; + } + symbol_4 = symbol_3; + } + symbol_5 = symbol_4; + } + this.symbol_5 = symbol_5; + } + + @Override + public @Nullable Object getResult() { + return symbol_5; + } + + @Override + public boolean isEqual(@NonNull IdResolver idResolver, @Nullable Object @NonNull [] thoseValues) { + return this.self == thoseValues[0] + && idResolver.oclEquals(this.member_0, thoseValues[1]); + } + } + + /** + * + * map __root__ in Families2Persons { + * + * var _'\u00ABMember\u00BB' : Set(Families::Member) := family.objectsOfKind(Families::Member) + * ; + * ::ji_Member : Set(Families::Member)[*|1]for loop0 : Families::Member[1] in ji_Member { + * call _'m_Member2Female_Member_Boolean.r0' { + * s iterates loop0 : Families::Member[1]; + * }} + * for loop0 : Families::Member[1] in ji_Member { + * call _'m_Member2Male_Member_Boolean.r0' { + * s iterates loop0 : Families::Member[1]; + * }} + */ + protected boolean MAP___root__() { + try { + final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull IdResolver idResolver = executor.getIdResolver(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@org.eclipse.jdt.annotation.NonNull Class TYP_Families_c_c_Member_0 = idResolver.getClass(CLSSid_Member, null); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@org.eclipse.jdt.annotation.NonNull SetValue objectsOfKind = ModelObjectsOfKindOperation.INSTANCE.evaluate(executor, SET_CLSSid_Member, models[0/*family*/], TYP_Families_c_c_Member_0); + // connection variables + final SetValue.@NonNull Accumulator ji_Member = createUnenforcedSetAccumulatorValue(SET_CLSSid_Member); + for (org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.@org.eclipse.jdt.annotation.NonNull Member iterator : ValueUtil.typedIterable(Member.class, objectsOfKind)) { + ji_Member.add(iterator); + } + // mapping statements + for (org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.@org.eclipse.jdt.annotation.NonNull Member loop0 : ValueUtil.typedIterable(Member.class, ji_Member)) { + MAP_m_Member2Female_Member_Boolean_46r0(loop0); + } + for (org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.@org.eclipse.jdt.annotation.NonNull Member loop0_0 : ValueUtil.typedIterable(Member.class, ji_Member)) { + MAP_m_Member2Male_Member_Boolean_46r0(loop0_0); + } + final /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.Nullable Boolean __root__ = ValueUtil.TRUE_VALUE; + return __root__; + } catch (Throwable e) { + return handleExecutionFailure("MAP___root__", e); + } + } + + /** + * + * map _'m_Member2Female_Member_Boolean.r0' in Families2Persons { + * + * guard:family s : Families::Member[1]; + * var firstName : String[1] := s.firstName; + * check this.isFemale(s); + * new:middle m2m : Families2Persons::Member2Female[1]; + * new:person t : Persons::Female[1]; + * set m2m.member := s; + * set m2m.person := t; + * set t.fullName := firstName + ' ' + + * this.familyName(s); + * + */ + protected boolean MAP_m_Member2Female_Member_Boolean_46r0(final /*@NonInvalid*/ org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.@org.eclipse.jdt.annotation.NonNull Member s) { + try { + @SuppressWarnings("null") + final /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.NonNull String firstName = s.getFirstName(); + final /*@Thrown*/ boolean isFemale = ((FUN_isFemale)FTOR_isFemale.getUniqueComputation(this, s)).symbol_3; + /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.Nullable Boolean symbol_4; + if (isFemale) { + // creations + final /*@Thrown*/ org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.@org.eclipse.jdt.annotation.Nullable Member2Female m2m = Families2PersonsFactory.eINSTANCE.createMember2Female(); + assert m2m != null; + models[2/*middle*/].add(m2m); + final /*@Thrown*/ org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.@org.eclipse.jdt.annotation.Nullable Female t = PersonsFactory.eINSTANCE.createFemale(); + assert t != null; + models[1/*person*/].add(t); + // mapping statements + m2m.setMember(s); + m2m.setPerson(t); + final /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.NonNull String sum = StringConcatOperation.INSTANCE.evaluate(firstName, STR__32); + final /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.NonNull String familyName = ((FUN_familyName)FTOR_familyName.getUniqueComputation(this, s)).symbol_5; + final /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.NonNull String sum_0 = StringConcatOperation.INSTANCE.evaluate(sum, familyName); + t.setFullName(sum_0); + final /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.Nullable Boolean m_Member2Female_Member_Boolean_r0 = ValueUtil.TRUE_VALUE; + symbol_4 = m_Member2Female_Member_Boolean_r0; + } + else { + symbol_4 = ValueUtil.FALSE_VALUE; + } + return symbol_4; + } catch (Throwable e) { + return handleExecutionFailure("MAP_m_Member2Female_Member_Boolean_46r0", e); + } + } + + /** + * + * map _'m_Member2Male_Member_Boolean.r0' in Families2Persons { + * + * guard:family s : Families::Member[1]; + * var firstName : String[1] := s.firstName; + * check not2 this.isFemale(s); + * new:middle m2m : Families2Persons::Member2Male[1]; + * new:person t : Persons::Male[1]; + * set m2m.member := s; + * set m2m.person := t; + * set t.fullName := firstName + ' ' + + * this.familyName(s); + * + */ + protected boolean MAP_m_Member2Male_Member_Boolean_46r0(final /*@NonInvalid*/ org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.@org.eclipse.jdt.annotation.NonNull Member s_0) { + try { + @SuppressWarnings("null") + final /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.NonNull String firstName = s_0.getFirstName(); + final /*@Thrown*/ boolean isFemale = ((FUN_isFemale)FTOR_isFemale.getUniqueComputation(this, s_0)).symbol_3; + final /*@Thrown*/ boolean not2 = BooleanNotOperation2.INSTANCE.evaluate(isFemale).booleanValue(); + /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.Nullable Boolean symbol_4; + if (not2) { + // creations + final /*@Thrown*/ org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families2Persons.@org.eclipse.jdt.annotation.Nullable Member2Male m2m = Families2PersonsFactory.eINSTANCE.createMember2Male(); + assert m2m != null; + models[2/*middle*/].add(m2m); + final /*@Thrown*/ org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.@org.eclipse.jdt.annotation.Nullable Male t = PersonsFactory.eINSTANCE.createMale(); + assert t != null; + models[1/*person*/].add(t); + // mapping statements + m2m.setMember(s_0); + m2m.setPerson(t); + final /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.NonNull String sum = StringConcatOperation.INSTANCE.evaluate(firstName, STR__32); + final /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.NonNull String familyName = ((FUN_familyName)FTOR_familyName.getUniqueComputation(this, s_0)).symbol_5; + final /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.NonNull String sum_0 = StringConcatOperation.INSTANCE.evaluate(sum, familyName); + t.setFullName(sum_0); + final /*@Thrown*/ java.lang.@org.eclipse.jdt.annotation.Nullable Boolean m_Member2Male_Member_Boolean_r0 = ValueUtil.TRUE_VALUE; + symbol_4 = m_Member2Male_Member_Boolean_r0; + } + else { + symbol_4 = ValueUtil.FALSE_VALUE; + } + return symbol_4; + } catch (Throwable e) { + return handleExecutionFailure("MAP_m_Member2Male_Member_Boolean_46r0", e); + } + } +} diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/FamiliesGenerator.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/FamiliesGenerator.java index 06ab5b4d1..5299550af 100644 --- a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/FamiliesGenerator.java +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/FamiliesGenerator.java @@ -16,9 +16,9 @@ import java.util.concurrent.ThreadLocalRandom; import org.eclipse.emf.ecore.EObject; import org.eclipse.jdt.annotation.NonNull; -import org.eclipse.qvtd.xtext.qvtcore.tests.families2persons.Families.FamiliesFactory; -import org.eclipse.qvtd.xtext.qvtcore.tests.families2persons.Families.Family; -import org.eclipse.qvtd.xtext.qvtcore.tests.families2persons.Families.Member; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesFactory; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member; public class FamiliesGenerator { diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/PrintAndLog.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/PrintAndLog.java index 8a575cf99..f86c21503 100644 --- a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/PrintAndLog.java +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/PrintAndLog.java @@ -18,22 +18,28 @@ public class PrintAndLog } private PrintWriter writer; - + public PrintAndLog(String testName) throws IOException { - String testSuiteName = System.getProperty("testSuiteName", null); - assert testSuiteName != null; - File file = new File("results/" + testSuiteName + ".csv"); - file.getParentFile().mkdirs(); - writer = new PrintWriter(new FileWriter(file)); + String testSuiteName = System.getProperty("testSuiteName", null); + // assert testSuiteName != null; + if (testSuiteName != null) { + File file = new File("results/" + testSuiteName + ".csv"); + file.getParentFile().mkdirs(); + writer = new PrintWriter(new FileWriter(file)); + } } public void dispose() throws IOException { - writer.close(); + if (writer != null) { + writer.close(); + } + } + + public PrintStream printf(String format, Object ... args) { + if (writer != null) { + writer.printf(format, args); + writer.flush(); + } + return System.out.printf(format, args); } - - public PrintStream printf(String format, Object ... args) { - writer.printf(format, args); - writer.flush(); - return System.out.printf(format, args); - } }
\ No newline at end of file diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/atl/BigMDE2016ATLTests.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/atl/BigMDE2016ATLTests.java index 2df4a6cef..4d6a7bd92 100644 --- a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/atl/BigMDE2016ATLTests.java +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/atl/BigMDE2016ATLTests.java @@ -31,8 +31,8 @@ import org.eclipse.m2m.atl.engine.emfvm.launch.EMFVMLauncher; import org.eclipse.qvtd.doc.bigmde2016.tests.FamiliesGenerator; import org.eclipse.qvtd.doc.bigmde2016.tests.PrintAndLog; import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.BigMDE2016CGTests; -import org.eclipse.qvtd.xtext.qvtcore.tests.families2persons.Families.FamiliesPackage; -import org.eclipse.qvtd.xtext.qvtcore.tests.families2persons.Persons.PersonsPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsPackage; import org.junit.After; import org.junit.Before; import org.junit.Test; diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/emftvm/BigMDE2016EMFTVMTests.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/emftvm/BigMDE2016EMFTVMTests.java index aa0b78799..184e4c2e0 100644 --- a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/emftvm/BigMDE2016EMFTVMTests.java +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/emftvm/BigMDE2016EMFTVMTests.java @@ -31,8 +31,8 @@ import org.eclipse.m2m.atl.emftvm.util.TimingData; import org.eclipse.qvtd.doc.bigmde2016.tests.FamiliesGenerator; import org.eclipse.qvtd.doc.bigmde2016.tests.PrintAndLog; import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.BigMDE2016CGTests; -import org.eclipse.qvtd.xtext.qvtcore.tests.families2persons.Families.FamiliesPackage; -import org.eclipse.qvtd.xtext.qvtcore.tests.families2persons.Persons.PersonsPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsPackage; import org.junit.After; import org.junit.Before; import org.junit.Test; diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/etl/BigMDE2016ETLTests.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/etl/BigMDE2016ETLTests.java index c5369ff6d..7595a30ff 100644 --- a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/etl/BigMDE2016ETLTests.java +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/etl/BigMDE2016ETLTests.java @@ -10,18 +10,13 @@ import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl; import org.eclipse.epsilon.emc.emf.EmfModel; import org.eclipse.epsilon.emc.emf.EmfModelFactory; import org.eclipse.epsilon.emc.emf.EmfModelFactory.AccessMode; -import org.eclipse.epsilon.eol.models.IModel; -import org.eclipse.epsilon.epl.EplModule; import org.eclipse.epsilon.etl.EtlModule; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.qvtd.doc.bigmde2016.tests.FamiliesGenerator; import org.eclipse.qvtd.doc.bigmde2016.tests.PrintAndLog; import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.BigMDE2016CGTests; -import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.QVTcSimpleUMLGenerator; -import org.eclipse.qvtd.xtext.qvtcore.tests.families2persons.Families.FamiliesPackage; -import org.eclipse.qvtd.xtext.qvtcore.tests.families2persons.Persons.PersonsPackage; -import org.eclipse.qvtd.xtext.qvtcore.tests.uml2rdbms.simplerdbms.SimplerdbmsPackage; -import org.eclipse.qvtd.xtext.qvtcore.tests.uml2rdbms.simpleuml.SimpleumlPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsPackage; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -29,166 +24,92 @@ import org.junit.Test; import junit.framework.TestCase; public class BigMDE2016ETLTests extends TestCase { - - + + + @Override @Before - public void setUp() throws Exception { + public void setUp() throws Exception { super.setUp(); - } + } - @After - public void tearDown() throws Exception { + @Override + @After + public void tearDown() throws Exception { super.tearDown(); - } - - static class NullInputStream extends InputStream { - static final NullInputStream INSTANCE = new NullInputStream(); - private NullInputStream() {} - public int read() { return -1; } - public int available() { return 0; } - } - - @Test - public void testQVTcCompiler_Families2Persons_ETL() throws Exception { - PrintAndLog logger = new PrintAndLog(getName()); - logger.printf("%s\n", getName()); - /* - * Initializations - */ - try { - int[] tests = PrintAndLog.getTestSizes(); - for (int testSize : tests) { - EtlModule transformationLauncher = new EtlModule(); - EmfModelFactory modelFactory = EmfModelFactory.getInstance(); - String etlpath = "src/org/eclipse/qvtd/doc/bigmde2016/tests/etl/Families2Persons.etl"; - File file = new File(etlpath); - transformationLauncher.parse(file); - /* - * Load models - */ -// file = new File("src/org/eclipse/qvtd/doc/bigmde2016/tests/atl/samples-Families.xmi"); -// EmfModel familiesModel = modelFactory.loadEmfModel("Families", file, FamiliesPackage.eINSTANCE, AccessMode.READ_ONLY); - EmfModel familiesModel = new EmfModel(); - familiesModel.setName("Families"); - familiesModel.setMetamodelFileBased(false); - familiesModel.setMetamodelUri(FamiliesPackage.eINSTANCE.getNsURI()); - familiesModel.setResource(new XMIResourceImpl()); - AccessMode.READ_ONLY.applyTo(familiesModel); - Collection<@NonNull ? extends EObject> rootObjects = FamiliesGenerator.createFamiliesModel(testSize, 9); - familiesModel.getResource().getContents().clear(); - familiesModel.getResource().getContents().addAll(rootObjects); -// file = new File("src/org/eclipse/qvtd/doc/bigmde2016/tests/atl/samples-Persons.xmi"); -// EmfModel personsModel = modelFactory.createEmfModel("Persons", file, PersonsPackage.eINSTANCE, AccessMode.WRITE_ONLY); - EmfModel personsModel = new EmfModel(); - personsModel.setName("Persons"); - personsModel.setMetamodelFileBased(false); - personsModel.setMetamodelUri(PersonsPackage.eINSTANCE.getNsURI()); - personsModel.setResource(new XMIResourceImpl()); - AccessMode.WRITE_ONLY.applyTo(personsModel); - transformationLauncher.getContext().getModelRepository().addModel(familiesModel); - transformationLauncher.getContext().getModelRepository().addModel(personsModel); - /* - * Execute - */ - logger.printf("%9d, ", 10*testSize); - BigMDE2016CGTests.garbageCollect(); - long startTime = System.nanoTime(); - transformationLauncher.execute(); - long endTime = System.nanoTime(); - - logger.printf("%9.6f\n", (endTime - startTime) / 1.0e9); - - Resource personsResource = personsModel.getResource(); - Collection<@NonNull EObject> rootObjects2 = personsResource.getContents(); - assert rootObjects2.size() == 9*testSize; - /* - * Unload all models - */ - transformationLauncher.reset(); - transformationLauncher.getContext().getModelRepository().dispose(); - transformationLauncher.getContext().dispose(); - } - } - finally { - logger.dispose(); - } } - - @Test - public void testQVTcCompiler_UML2RDBMS_ETL() throws Exception { - PrintAndLog logger = new PrintAndLog(getName()); - logger.printf("%s\n", getName()); + + static class NullInputStream extends InputStream { + static final NullInputStream INSTANCE = new NullInputStream(); + private NullInputStream() {} + @Override + public int read() { return -1; } + @Override + public int available() { return 0; } + } + + @Test + public void testQVTcCompiler_Families2Persons_ETL() throws Exception { + PrintAndLog logger = new PrintAndLog(getName()); + logger.printf("%s\n", getName()); /* * Initializations */ - try { - int[] tests = PrintAndLog.getTestSizes(); - QVTcSimpleUMLGenerator generator = new QVTcSimpleUMLGenerator(); - for (int testSize : tests) { - // Test model generation - int nPackages = testSize; - int nClasses = testSize * 8; - int nTypes = 0;//testSize; - int nProperties = 0;//testSize * 45; - int nAssociations = 0;//testSize * 45; - int nElements = nPackages + nClasses + nTypes + nProperties + nAssociations; - Collection<@NonNull ? extends EObject> rootObjects = generator.createSimpleUMLModel(nPackages, nClasses, nTypes, nProperties, nAssociations); - - EmfModelFactory modelFactory = EmfModelFactory.getInstance(); - EplModule matchLauncher = new EplModule(); - String eplpath = "src/org/eclipse/qvtd/doc/bigmde2016/tests/etl/UML2RDBMSa.epl"; - File eplfile = new File(eplpath); - EtlModule transformationLauncher = new EtlModule(); - String etlpath = "src/org/eclipse/qvtd/doc/bigmde2016/tests/etl/UML2RDBMSb.etl"; - File etlfile = new File(etlpath); - /* - * Load models - */ - EmfModel familiesModel = new EmfModel(); - familiesModel.setName("uml"); - familiesModel.setMetamodelFileBased(false); - familiesModel.setMetamodelUri(SimpleumlPackage.eINSTANCE.getNsURI()); - familiesModel.setResource(new XMIResourceImpl()); - AccessMode.READ_ONLY.applyTo(familiesModel); - familiesModel.getResource().getContents().clear(); - familiesModel.getResource().getContents().addAll(rootObjects); - EmfModel personsModel = new EmfModel(); - personsModel.setName("rdbms"); - personsModel.setMetamodelFileBased(false); - personsModel.setMetamodelUri(SimplerdbmsPackage.eINSTANCE.getNsURI()); - personsModel.setResource(new XMIResourceImpl()); - AccessMode.WRITE_ONLY.applyTo(personsModel); - transformationLauncher.getContext().getModelRepository().addModel(personsModel); - transformationLauncher.getContext().getModelRepository().addModel(familiesModel); - matchLauncher.getContext().getModelRepository().addModel(familiesModel); - matchLauncher.parse(eplfile); - transformationLauncher.parse(etlfile); - /* - * Execute - */ - logger.printf("%9d, ", 10*testSize); - BigMDE2016CGTests.garbageCollect(); - long startTime = System.nanoTime(); - IModel matchModel = (IModel) matchLauncher.execute(); - matchModel.setName("Patterns"); - transformationLauncher.getContext().getModelRepository().addModel(matchModel); - transformationLauncher.execute(); - long endTime = System.nanoTime(); - logger.printf("%9.6f\n", (endTime - startTime) / 1.0e9); - Resource personsResource = personsModel.getResource(); - Collection<@NonNull EObject> rootObjects2 = personsResource.getContents(); - assert rootObjects2.size() == 9*testSize; - /* - * Unload all models - */ - transformationLauncher.reset(); - transformationLauncher.getContext().getModelRepository().dispose(); - transformationLauncher.getContext().dispose(); - } - } - finally { - logger.dispose(); - } - } + try { + int[] tests = PrintAndLog.getTestSizes(); + for (int testSize : tests) { + EtlModule transformationLauncher = new EtlModule(); + EmfModelFactory modelFactory = EmfModelFactory.getInstance(); + String etlpath = "src/org/eclipse/qvtd/doc/bigmde2016/tests/etl/Families2Persons.etl"; + File file = new File(etlpath); + transformationLauncher.parse(file); + /* + * Load models + */ + // file = new File("src/org/eclipse/qvtd/doc/bigmde2016/tests/atl/samples-Families.xmi"); + // EmfModel familiesModel = modelFactory.loadEmfModel("Families", file, FamiliesPackage.eINSTANCE, AccessMode.READ_ONLY); + EmfModel familiesModel = new EmfModel(); + familiesModel.setName("Families"); + familiesModel.setMetamodelFileBased(false); + familiesModel.setMetamodelUri(FamiliesPackage.eINSTANCE.getNsURI()); + familiesModel.setResource(new XMIResourceImpl()); + AccessMode.READ_ONLY.applyTo(familiesModel); + Collection<@NonNull ? extends EObject> rootObjects = FamiliesGenerator.createFamiliesModel(testSize, 9); + familiesModel.getResource().getContents().clear(); + familiesModel.getResource().getContents().addAll(rootObjects); + // file = new File("src/org/eclipse/qvtd/doc/bigmde2016/tests/atl/samples-Persons.xmi"); + // EmfModel personsModel = modelFactory.createEmfModel("Persons", file, PersonsPackage.eINSTANCE, AccessMode.WRITE_ONLY); + EmfModel personsModel = new EmfModel(); + personsModel.setName("Persons"); + personsModel.setMetamodelFileBased(false); + personsModel.setMetamodelUri(PersonsPackage.eINSTANCE.getNsURI()); + personsModel.setResource(new XMIResourceImpl()); + AccessMode.WRITE_ONLY.applyTo(personsModel); + transformationLauncher.getContext().getModelRepository().addModel(familiesModel); + transformationLauncher.getContext().getModelRepository().addModel(personsModel); + /* + * Execute + */ + logger.printf("%9d, ", 10*testSize); + BigMDE2016CGTests.garbageCollect(); + long startTime = System.nanoTime(); + transformationLauncher.execute(); + long endTime = System.nanoTime(); + + logger.printf("%9.6f\n", (endTime - startTime) / 1.0e9); + Resource personsResource = personsModel.getResource(); + Collection<@NonNull EObject> rootObjects2 = personsResource.getContents(); + assert rootObjects2.size() == 9*testSize; + /* + * Unload all models + */ + transformationLauncher.reset(); + transformationLauncher.getContext().getModelRepository().dispose(); + transformationLauncher.getContext().dispose(); + } + } + finally { + logger.dispose(); + } + } } diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/BigMDE2016CGTests.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/BigMDE2016CGTests.java index 37bed9a7d..abf110286 100644 --- a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/BigMDE2016CGTests.java +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/BigMDE2016CGTests.java @@ -18,48 +18,19 @@ import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.ocl.pivot.resource.ProjectManager; -import org.eclipse.ocl.pivot.utilities.TreeIterable; import org.eclipse.qvtd.doc.bigmde2016.tests.FamiliesGenerator; import org.eclipse.qvtd.doc.bigmde2016.tests.PrintAndLog; -import org.eclipse.qvtd.pivot.qvtimperative.QVTimperativePivotStandaloneSetup; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesFactory; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Family; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.Member; import org.eclipse.qvtd.pivot.qvtimperative.evaluation.QVTiEnvironmentFactory; -import org.eclipse.qvtd.pivot.qvtimperative.evaluation.QVTiTransformationExecutor; -import org.eclipse.qvtd.runtime.evaluation.Transformer; -import org.eclipse.qvtd.xtext.qvtcore.tests.families2persons.Families.FamiliesFactory; -import org.eclipse.qvtd.xtext.qvtcore.tests.families2persons.Families.Family; -import org.eclipse.qvtd.xtext.qvtcore.tests.families2persons.Families.Member; -import org.junit.After; -import org.junit.Before; import org.junit.Test; -import cg._umlRdbms.umlRdbms; -import cg.org.eclipse.qvtd.xtext.qvtcore.tests.families2persons.Families2Persons; -import junit.framework.TestCase; - /** * Source code for CG results in BigMDE 2016, Eclipse QVTC First Results paper. */ -public class BigMDE2016CGTests extends TestCase +public class BigMDE2016CGTests extends BigMDE2016_QVTc_AutomatedTests { - public static void garbageCollect() throws InterruptedException { - for (int y = 0; y < 5; y++) { - System.gc(); - Thread.sleep(100); - } - } - - @Override - @Before - public void setUp() throws Exception { - super.setUp(); - QVTimperativePivotStandaloneSetup.doSetup(); - } - - @Override - @After - public void tearDown() throws Exception { - super.tearDown(); - } @Test public void testQVTcCompiler_Families_EcoreUtilCopy() throws Exception { @@ -93,18 +64,7 @@ public class BigMDE2016CGTests extends TestCase try { int[] tests = PrintAndLog.getTestSizes(); for (int testSize : tests) { - Iterable<@NonNull ? extends Object> rootObjects = FamiliesGenerator.createFamiliesModel(testSize, 9); - QVTiTransformationExecutor generatedExecutor = new QVTiTransformationExecutor(environmentFactory, Families2Persons.class); - Transformer transformer = generatedExecutor.getTransformer(); - transformer.addRootObjects("family", rootObjects); - garbageCollect(); - logger.printf("%9d, ", 10*testSize); - long startTime = System.nanoTime(); - transformer.run(); - long endTime = System.nanoTime(); - logger.printf("%9.6f\n", (endTime - startTime) / 1.0e9); - Collection<@NonNull Object> rootObjects2 = transformer.getRootObjects("person"); - assert rootObjects2.size() == 9*testSize; + doTest(logger, environmentFactory, testSize); } } finally { @@ -184,7 +144,7 @@ public class BigMDE2016CGTests extends TestCase return newMember; } - @Test + /* @Test public void testQVTcCompiler_UML2RDBMS_CG() throws Exception { PrintAndLog logger = new PrintAndLog(getName()); logger.printf("%s\n", getName()); @@ -224,5 +184,5 @@ public class BigMDE2016CGTests extends TestCase environmentFactory.dispose(); logger.dispose(); } - } + } */ } diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/BigMDE2016_QVTc_AutomatedTests.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/BigMDE2016_QVTc_AutomatedTests.java new file mode 100644 index 000000000..2e61b3d5c --- /dev/null +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/BigMDE2016_QVTc_AutomatedTests.java @@ -0,0 +1,83 @@ +/******************************************************************************* + * Copyright (c) 2012, 2015 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc; + +import java.util.Collection; + +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.pivot.resource.ProjectManager; +import org.eclipse.qvtd.doc.bigmde2016.tests.FamiliesGenerator; +import org.eclipse.qvtd.doc.bigmde2016.tests.PrintAndLog; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.tx.Families2Persons; +import org.eclipse.qvtd.pivot.qvtimperative.QVTimperativePivotStandaloneSetup; +import org.eclipse.qvtd.pivot.qvtimperative.evaluation.QVTiEnvironmentFactory; +import org.eclipse.qvtd.pivot.qvtimperative.evaluation.QVTiTransformationExecutor; +import org.eclipse.qvtd.runtime.evaluation.Transformer; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import junit.framework.TestCase; + +/** + * Source code for CG results in BigMDE 2016, Eclipse QVTC First Results paper. + */ +public class BigMDE2016_QVTc_AutomatedTests extends TestCase +{ + public static void garbageCollect() throws InterruptedException { + for (int y = 0; y < 5; y++) { + System.gc(); + Thread.sleep(100); + } + } + + protected void doTest(@NonNull PrintAndLog logger, @NonNull QVTiEnvironmentFactory environmentFactory, int testSize) throws Exception { + Iterable<@NonNull ? extends Object> rootObjects = FamiliesGenerator.createFamiliesModel(testSize, 9); + QVTiTransformationExecutor generatedExecutor = new QVTiTransformationExecutor(environmentFactory, Families2Persons.class); + Transformer transformer = generatedExecutor.getTransformer(); + transformer.addRootObjects("family", rootObjects); + garbageCollect(); + logger.printf("%9d, ", 10*testSize); + long startTime = System.nanoTime(); + transformer.run(); + long endTime = System.nanoTime(); + logger.printf("%9.6f\n", (endTime - startTime) / 1.0e9); + Collection<@NonNull Object> rootObjects2 = transformer.getRootObjects("person"); + assert rootObjects2.size() == 9*testSize; + } + + @Override + @Before + public void setUp() throws Exception { + super.setUp(); + QVTimperativePivotStandaloneSetup.doSetup(); + } + + @Override + @After + public void tearDown() throws Exception { + super.tearDown(); + } + + @Test + public void testQVTcCompiler_Families2Persons_CG_10K() throws Exception { + PrintAndLog logger = new PrintAndLog(getName()); + logger.printf("%s\n", getName()); + QVTiEnvironmentFactory environmentFactory = new QVTiEnvironmentFactory(ProjectManager.NO_PROJECTS, null); + try { + doTest(logger, environmentFactory, 1000); + } + finally { + environmentFactory.dispose(); + logger.dispose(); + } + } +} diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/QVTcSimpleUMLGenerator.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/QVTcSimpleUMLGenerator.java deleted file mode 100644 index 769e3dc8f..000000000 --- a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/qvtc/QVTcSimpleUMLGenerator.java +++ /dev/null @@ -1,88 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012, 2015 Willink Transformations 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.qvtd.doc.bigmde2016.tests.qvtc; - -import java.util.Collections; -import java.util.List; - -import org.eclipse.emf.ecore.EObject; -import org.eclipse.jdt.annotation.NonNull; -import org.eclipse.jdt.annotation.Nullable; -import org.eclipse.qvtd.doc.bigmde2016.tests.SimpleUMLGenerator; - -import org.eclipse.qvtd.xtext.qvtcore.tests.uml2rdbms.simpleuml.Association; -import org.eclipse.qvtd.xtext.qvtcore.tests.uml2rdbms.simpleuml.Attribute; -import org.eclipse.qvtd.xtext.qvtcore.tests.uml2rdbms.simpleuml.Class; -import org.eclipse.qvtd.xtext.qvtcore.tests.uml2rdbms.simpleuml.Package; -import org.eclipse.qvtd.xtext.qvtcore.tests.uml2rdbms.simpleuml.PrimitiveDataType; -import org.eclipse.qvtd.xtext.qvtcore.tests.uml2rdbms.simpleuml.SimpleumlFactory; - -public class QVTcSimpleUMLGenerator extends SimpleUMLGenerator<Package, Class, PrimitiveDataType, Attribute, Association> -{ - @Override - protected @NonNull Association createAssociation(@NonNull Package parentPackage, @NonNull String name, @NonNull Class fromClass, @NonNull Class toClass) { - Association anAssociation = SimpleumlFactory.eINSTANCE.createAssociation(); - anAssociation.setName(name); - anAssociation.setSource(fromClass); - anAssociation.setDestination(toClass); - parentPackage.getElements().add(anAssociation); - return anAssociation; - } - - @Override - protected @NonNull Class createClass(@NonNull Package parentPackage, @NonNull String name) { - Class aClass = SimpleumlFactory.eINSTANCE.createClass(); - aClass.setName(name); -// aClass.getStereotype().add("persistent"); - if (parentPackage != null) { - parentPackage.getElements().add(aClass); - } - return aClass; - } - - @Override - protected @NonNull List<@NonNull ? extends EObject> createModel(@NonNull List<Package> rootPackages, @NonNull String name) { - Package aModel = SimpleumlFactory.eINSTANCE.createPackage(); - aModel.setName(name); - aModel.getElements().addAll(rootPackages); - return Collections.singletonList(aModel); - } - - public @NonNull Package createPackage(@Nullable Package parentPackage, @NonNull String name) { - Package aPackage = SimpleumlFactory.eINSTANCE.createPackage(); - aPackage.setName(name); - if (parentPackage != null) { - parentPackage.getElements().add(aPackage); - } - return aPackage; - } - - @Override - protected @NonNull Attribute createProperty(@NonNull Class aClass, @NonNull String name, @NonNull PrimitiveDataType type) { - Attribute aProperty = SimpleumlFactory.eINSTANCE.createAttribute(); - aProperty.setName(name); - aProperty.setType(type); - if (aClass != null) { - aClass.getAttributes().add(aProperty); - } - return aProperty; - } - - @Override - protected @NonNull PrimitiveDataType createType(@NonNull Package parentPackage, @NonNull String name) { - PrimitiveDataType aType = SimpleumlFactory.eINSTANCE.createPrimitiveDataType(); - aType.setName(name); - if (parentPackage != null) { - parentPackage.getElements().add(aType); - } - return aType; - } -} diff --git a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/qvto/BigMDE2016QVToTests.java b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/qvto/BigMDE2016QVToTests.java index bc9438de8..af5bc0d50 100644 --- a/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/qvto/BigMDE2016QVToTests.java +++ b/tests/org.eclipse.qvtd.doc.bigmde2016.tests/src/org/eclipse/qvtd/doc/bigmde2016/tests/qvto/BigMDE2016QVToTests.java @@ -36,8 +36,8 @@ import org.eclipse.ocl.pivot.utilities.XMIUtil; import org.eclipse.qvtd.doc.bigmde2016.tests.FamiliesGenerator; import org.eclipse.qvtd.doc.bigmde2016.tests.PrintAndLog; import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.BigMDE2016CGTests; -import org.eclipse.qvtd.xtext.qvtcore.tests.families2persons.Families.FamiliesPackage; -import org.eclipse.qvtd.xtext.qvtcore.tests.families2persons.Persons.PersonsPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Families.FamiliesPackage; +import org.eclipse.qvtd.doc.bigmde2016.tests.qvtc.Persons.PersonsPackage; import org.junit.Test; import junit.framework.TestCase; |