From 36ca60e5b6bd047a4f444d96241bd60a01bbab17 Mon Sep 17 00:00:00 2001 From: ArenBabikian Date: Mon, 27 Apr 2020 10:45:28 -0400 Subject: rename Pledge Case Studies and add familyTree case study --- .../case.study.familyTree.model/.classpath | 7 + .../case.study.familyTree.model/.project | 28 ++ .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 16 + .../case.study.familyTree.model/build.properties | 10 + .../model/FamilyTree.xmi | 3 + .../model/familytree.aird | 159 ++++++++++ .../model/familytree.ecore | 17 ++ .../model/familytree.genmodel | 33 ++ .../case.study.familyTree.model/plugin.properties | 4 + .../case.study.familyTree.model/plugin.xml | 17 ++ .../src/familytree/FamilyTree.java | 38 +++ .../src/familytree/FamilytreeFactory.java | 51 ++++ .../src/familytree/FamilytreePackage.java | 321 ++++++++++++++++++++ .../src/familytree/Member.java | 102 +++++++ .../src/familytree/impl/FamilyTreeImpl.java | 153 ++++++++++ .../src/familytree/impl/FamilytreeFactoryImpl.java | 109 +++++++ .../src/familytree/impl/FamilytreePackageImpl.java | 251 ++++++++++++++++ .../src/familytree/impl/MemberImpl.java | 334 +++++++++++++++++++++ .../familytree/util/FamilytreeAdapterFactory.java | 138 +++++++++ .../src/familytree/util/FamilytreeSwitch.java | 131 ++++++++ 21 files changed, 1929 insertions(+) create mode 100644 Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.classpath create mode 100644 Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.project create mode 100644 Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.settings/org.eclipse.jdt.core.prefs create mode 100644 Tests/MODELS2020-CaseStudies/case.study.familyTree.model/META-INF/MANIFEST.MF create mode 100644 Tests/MODELS2020-CaseStudies/case.study.familyTree.model/build.properties create mode 100644 Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/FamilyTree.xmi create mode 100644 Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.aird create mode 100644 Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.ecore create mode 100644 Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.genmodel create mode 100644 Tests/MODELS2020-CaseStudies/case.study.familyTree.model/plugin.properties create mode 100644 Tests/MODELS2020-CaseStudies/case.study.familyTree.model/plugin.xml create mode 100644 Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilyTree.java create mode 100644 Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilytreeFactory.java create mode 100644 Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilytreePackage.java create mode 100644 Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/Member.java create mode 100644 Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilyTreeImpl.java create mode 100644 Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilytreeFactoryImpl.java create mode 100644 Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilytreePackageImpl.java create mode 100644 Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/MemberImpl.java create mode 100644 Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/util/FamilytreeAdapterFactory.java create mode 100644 Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/util/FamilytreeSwitch.java (limited to 'Tests/MODELS2020-CaseStudies/case.study.familyTree.model') diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.classpath b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.classpath new file mode 100644 index 00000000..b862a296 --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.project b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.project new file mode 100644 index 00000000..f379b9b4 --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.project @@ -0,0 +1,28 @@ + + + case.study.familyTree.model + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.settings/org.eclipse.jdt.core.prefs b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..295926d9 --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/META-INF/MANIFEST.MF b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/META-INF/MANIFEST.MF new file mode 100644 index 00000000..70360954 --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/META-INF/MANIFEST.MF @@ -0,0 +1,16 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: case.study.familyTree.model;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-ClassPath: . +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Automatic-Module-Name: case.study.familyTree.model +Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Export-Package: familytree, + familytree.impl, + familytree.util +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.emf.ecore;visibility:=reexport +Bundle-ActivationPolicy: lazy diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/build.properties b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/build.properties new file mode 100644 index 00000000..4d3b1827 --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/build.properties @@ -0,0 +1,10 @@ +# + +bin.includes = .,\ + model/,\ + META-INF/,\ + plugin.xml,\ + plugin.properties +jars.compile.order = . +source.. = src/ +output.. = bin/ diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/FamilyTree.xmi b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/FamilyTree.xmi new file mode 100644 index 00000000..066b286f --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/FamilyTree.xmi @@ -0,0 +1,3 @@ + + diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.aird b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.aird new file mode 100644 index 00000000..f2980c32 --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.aird @@ -0,0 +1,159 @@ + + + + familytree.ecore + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + + + + + + + + + + + + + + + + labelSize + + + labelSize + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.ecore b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.ecore new file mode 100644 index 00000000..f2e51f65 --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.ecore @@ -0,0 +1,17 @@ + + + + + + + + + + + + diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.genmodel b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.genmodel new file mode 100644 index 00000000..29f5fc02 --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.genmodel @@ -0,0 +1,33 @@ + + + familytree.ecore + + + + + + + + + + + + diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/plugin.properties b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/plugin.properties new file mode 100644 index 00000000..e4710b5f --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/plugin.properties @@ -0,0 +1,4 @@ +# + +pluginName = Model +providerName = www.example.org diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/plugin.xml b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/plugin.xml new file mode 100644 index 00000000..a377ea2a --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/plugin.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilyTree.java b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilyTree.java new file mode 100644 index 00000000..408373a3 --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilyTree.java @@ -0,0 +1,38 @@ +/** + */ +package familytree; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Family Tree'. + * + * + *

+ * The following features are supported: + *

+ * + * + * @see familytree.FamilytreePackage#getFamilyTree() + * @model + * @generated + */ +public interface FamilyTree extends EObject { + /** + * Returns the value of the 'Members' containment reference list. + * The list contents are of type {@link familytree.Member}. + * + * + * @return the value of the 'Members' containment reference list. + * @see familytree.FamilytreePackage#getFamilyTree_Members() + * @model containment="true" + * @generated + */ + EList getMembers(); + +} // FamilyTree diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilytreeFactory.java b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilytreeFactory.java new file mode 100644 index 00000000..534da223 --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilytreeFactory.java @@ -0,0 +1,51 @@ +/** + */ +package familytree; + +import org.eclipse.emf.ecore.EFactory; + +/** + * + * The Factory for the model. + * It provides a create method for each non-abstract class of the model. + * + * @see familytree.FamilytreePackage + * @generated + */ +public interface FamilytreeFactory extends EFactory { + /** + * The singleton instance of the factory. + * + * + * @generated + */ + FamilytreeFactory eINSTANCE = familytree.impl.FamilytreeFactoryImpl.init(); + + /** + * Returns a new object of class 'Family Tree'. + * + * + * @return a new object of class 'Family Tree'. + * @generated + */ + FamilyTree createFamilyTree(); + + /** + * Returns a new object of class 'Member'. + * + * + * @return a new object of class 'Member'. + * @generated + */ + Member createMember(); + + /** + * Returns the package supported by this factory. + * + * + * @return the package supported by this factory. + * @generated + */ + FamilytreePackage getFamilytreePackage(); + +} //FamilytreeFactory diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilytreePackage.java b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilytreePackage.java new file mode 100644 index 00000000..572a0fe4 --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilytreePackage.java @@ -0,0 +1,321 @@ +/** + */ +package familytree; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +/** + * + * The Package for the model. + * It contains accessors for the meta objects to represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each operation of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @see familytree.FamilytreeFactory + * @model kind="package" + * @generated + */ +public interface FamilytreePackage extends EPackage { + /** + * The package name. + * + * + * @generated + */ + String eNAME = "familytree"; + + /** + * The package namespace URI. + * + * + * @generated + */ + String eNS_URI = "http://www.example.org/familytree"; + + /** + * The package namespace name. + * + * + * @generated + */ + String eNS_PREFIX = "familytree"; + + /** + * The singleton instance of the package. + * + * + * @generated + */ + FamilytreePackage eINSTANCE = familytree.impl.FamilytreePackageImpl.init(); + + /** + * The meta object id for the '{@link familytree.impl.FamilyTreeImpl Family Tree}' class. + * + * + * @see familytree.impl.FamilyTreeImpl + * @see familytree.impl.FamilytreePackageImpl#getFamilyTree() + * @generated + */ + int FAMILY_TREE = 0; + + /** + * The feature id for the 'Members' containment reference list. + * + * + * @generated + * @ordered + */ + int FAMILY_TREE__MEMBERS = 0; + + /** + * The number of structural features of the 'Family Tree' class. + * + * + * @generated + * @ordered + */ + int FAMILY_TREE_FEATURE_COUNT = 1; + + /** + * The number of operations of the 'Family Tree' class. + * + * + * @generated + * @ordered + */ + int FAMILY_TREE_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link familytree.impl.MemberImpl Member}' class. + * + * + * @see familytree.impl.MemberImpl + * @see familytree.impl.FamilytreePackageImpl#getMember() + * @generated + */ + int MEMBER = 1; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int MEMBER__NAME = 0; + + /** + * The feature id for the 'Age' attribute. + * + * + * @generated + * @ordered + */ + int MEMBER__AGE = 1; + + /** + * The feature id for the 'Children' reference list. + * + * + * @generated + * @ordered + */ + int MEMBER__CHILDREN = 2; + + /** + * The feature id for the 'Parents' reference list. + * + * + * @generated + * @ordered + */ + int MEMBER__PARENTS = 3; + + /** + * The number of structural features of the 'Member' class. + * + * + * @generated + * @ordered + */ + int MEMBER_FEATURE_COUNT = 4; + + /** + * The number of operations of the 'Member' class. + * + * + * @generated + * @ordered + */ + int MEMBER_OPERATION_COUNT = 0; + + + /** + * Returns the meta object for class '{@link familytree.FamilyTree Family Tree}'. + * + * + * @return the meta object for class 'Family Tree'. + * @see familytree.FamilyTree + * @generated + */ + EClass getFamilyTree(); + + /** + * Returns the meta object for the containment reference list '{@link familytree.FamilyTree#getMembers Members}'. + * + * + * @return the meta object for the containment reference list 'Members'. + * @see familytree.FamilyTree#getMembers() + * @see #getFamilyTree() + * @generated + */ + EReference getFamilyTree_Members(); + + /** + * Returns the meta object for class '{@link familytree.Member Member}'. + * + * + * @return the meta object for class 'Member'. + * @see familytree.Member + * @generated + */ + EClass getMember(); + + /** + * Returns the meta object for the attribute '{@link familytree.Member#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see familytree.Member#getName() + * @see #getMember() + * @generated + */ + EAttribute getMember_Name(); + + /** + * Returns the meta object for the attribute '{@link familytree.Member#getAge Age}'. + * + * + * @return the meta object for the attribute 'Age'. + * @see familytree.Member#getAge() + * @see #getMember() + * @generated + */ + EAttribute getMember_Age(); + + /** + * Returns the meta object for the reference list '{@link familytree.Member#getChildren Children}'. + * + * + * @return the meta object for the reference list 'Children'. + * @see familytree.Member#getChildren() + * @see #getMember() + * @generated + */ + EReference getMember_Children(); + + /** + * Returns the meta object for the reference list '{@link familytree.Member#getParents Parents}'. + * + * + * @return the meta object for the reference list 'Parents'. + * @see familytree.Member#getParents() + * @see #getMember() + * @generated + */ + EReference getMember_Parents(); + + /** + * Returns the factory that creates the instances of the model. + * + * + * @return the factory that creates the instances of the model. + * @generated + */ + FamilytreeFactory getFamilytreeFactory(); + + /** + * + * Defines literals for the meta objects that represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each operation of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @generated + */ + interface Literals { + /** + * The meta object literal for the '{@link familytree.impl.FamilyTreeImpl Family Tree}' class. + * + * + * @see familytree.impl.FamilyTreeImpl + * @see familytree.impl.FamilytreePackageImpl#getFamilyTree() + * @generated + */ + EClass FAMILY_TREE = eINSTANCE.getFamilyTree(); + + /** + * The meta object literal for the 'Members' containment reference list feature. + * + * + * @generated + */ + EReference FAMILY_TREE__MEMBERS = eINSTANCE.getFamilyTree_Members(); + + /** + * The meta object literal for the '{@link familytree.impl.MemberImpl Member}' class. + * + * + * @see familytree.impl.MemberImpl + * @see familytree.impl.FamilytreePackageImpl#getMember() + * @generated + */ + EClass MEMBER = eINSTANCE.getMember(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute MEMBER__NAME = eINSTANCE.getMember_Name(); + + /** + * The meta object literal for the 'Age' attribute feature. + * + * + * @generated + */ + EAttribute MEMBER__AGE = eINSTANCE.getMember_Age(); + + /** + * The meta object literal for the 'Children' reference list feature. + * + * + * @generated + */ + EReference MEMBER__CHILDREN = eINSTANCE.getMember_Children(); + + /** + * The meta object literal for the 'Parents' reference list feature. + * + * + * @generated + */ + EReference MEMBER__PARENTS = eINSTANCE.getMember_Parents(); + + } + +} //FamilytreePackage diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/Member.java b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/Member.java new file mode 100644 index 00000000..55a6bd1e --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/Member.java @@ -0,0 +1,102 @@ +/** + */ +package familytree; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Member'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link familytree.Member#getName Name}
  • + *
  • {@link familytree.Member#getAge Age}
  • + *
  • {@link familytree.Member#getChildren Children}
  • + *
  • {@link familytree.Member#getParents Parents}
  • + *
+ * + * @see familytree.FamilytreePackage#getMember() + * @model + * @generated + */ +public interface Member extends EObject { + /** + * Returns the value of the 'Name' attribute. + * + * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see familytree.FamilytreePackage#getMember_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link familytree.Member#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the 'Age' attribute. + * The default value is "0". + * + * + * @return the value of the 'Age' attribute. + * @see #setAge(int) + * @see familytree.FamilytreePackage#getMember_Age() + * @model default="0" + * @generated + */ + int getAge(); + + /** + * Sets the value of the '{@link familytree.Member#getAge Age}' attribute. + * + * + * @param value the new value of the 'Age' attribute. + * @see #getAge() + * @generated + */ + void setAge(int value); + + /** + * Returns the value of the 'Children' reference list. + * The list contents are of type {@link familytree.Member}. + * It is bidirectional and its opposite is '{@link familytree.Member#getParents Parents}'. + * + * + * @return the value of the 'Children' reference list. + * @see familytree.FamilytreePackage#getMember_Children() + * @see familytree.Member#getParents + * @model opposite="parents" + * @generated + */ + EList getChildren(); + + /** + * Returns the value of the 'Parents' reference list. + * The list contents are of type {@link familytree.Member}. + * It is bidirectional and its opposite is '{@link familytree.Member#getChildren Children}'. + * + * + * @return the value of the 'Parents' reference list. + * @see familytree.FamilytreePackage#getMember_Parents() + * @see familytree.Member#getChildren + * @model opposite="children" upper="2" + * @generated + */ + EList getParents(); + +} // Member diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilyTreeImpl.java b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilyTreeImpl.java new file mode 100644 index 00000000..07b0a1dd --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilyTreeImpl.java @@ -0,0 +1,153 @@ +/** + */ +package familytree.impl; + +import familytree.FamilyTree; +import familytree.FamilytreePackage; +import familytree.Member; + +import java.util.Collection; + +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.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * + * An implementation of the model object 'Family Tree'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link familytree.impl.FamilyTreeImpl#getMembers Members}
  • + *
+ * + * @generated + */ +public class FamilyTreeImpl extends MinimalEObjectImpl.Container implements FamilyTree { + /** + * The cached value of the '{@link #getMembers() Members}' containment reference list. + * + * + * @see #getMembers() + * @generated + * @ordered + */ + protected EList members; + + /** + * + * + * @generated + */ + protected FamilyTreeImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return FamilytreePackage.Literals.FAMILY_TREE; + } + + /** + * + * + * @generated + */ + @Override + public EList getMembers() { + if (members == null) { + members = new EObjectContainmentEList(Member.class, this, FamilytreePackage.FAMILY_TREE__MEMBERS); + } + return members; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case FamilytreePackage.FAMILY_TREE__MEMBERS: + return ((InternalEList)getMembers()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case FamilytreePackage.FAMILY_TREE__MEMBERS: + return getMembers(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case FamilytreePackage.FAMILY_TREE__MEMBERS: + getMembers().clear(); + getMembers().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case FamilytreePackage.FAMILY_TREE__MEMBERS: + getMembers().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case FamilytreePackage.FAMILY_TREE__MEMBERS: + return members != null && !members.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //FamilyTreeImpl diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilytreeFactoryImpl.java b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilytreeFactoryImpl.java new file mode 100644 index 00000000..bc54d09c --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilytreeFactoryImpl.java @@ -0,0 +1,109 @@ +/** + */ +package familytree.impl; + +import familytree.*; + +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; + +/** + * + * An implementation of the model Factory. + * + * @generated + */ +public class FamilytreeFactoryImpl extends EFactoryImpl implements FamilytreeFactory { + /** + * Creates the default factory implementation. + * + * + * @generated + */ + public static FamilytreeFactory init() { + try { + FamilytreeFactory theFamilytreeFactory = (FamilytreeFactory)EPackage.Registry.INSTANCE.getEFactory(FamilytreePackage.eNS_URI); + if (theFamilytreeFactory != null) { + return theFamilytreeFactory; + } + } + catch (Exception exception) { + EcorePlugin.INSTANCE.log(exception); + } + return new FamilytreeFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * + * + * @generated + */ + public FamilytreeFactoryImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + public EObject create(EClass eClass) { + switch (eClass.getClassifierID()) { + case FamilytreePackage.FAMILY_TREE: return createFamilyTree(); + case FamilytreePackage.MEMBER: return createMember(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + @Override + public FamilyTree createFamilyTree() { + FamilyTreeImpl familyTree = new FamilyTreeImpl(); + return familyTree; + } + + /** + * + * + * @generated + */ + @Override + public Member createMember() { + MemberImpl member = new MemberImpl(); + return member; + } + + /** + * + * + * @generated + */ + @Override + public FamilytreePackage getFamilytreePackage() { + return (FamilytreePackage)getEPackage(); + } + + /** + * + * + * @deprecated + * @generated + */ + @Deprecated + public static FamilytreePackage getPackage() { + return FamilytreePackage.eINSTANCE; + } + +} //FamilytreeFactoryImpl diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilytreePackageImpl.java b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilytreePackageImpl.java new file mode 100644 index 00000000..0980260e --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilytreePackageImpl.java @@ -0,0 +1,251 @@ +/** + */ +package familytree.impl; + +import familytree.FamilyTree; +import familytree.FamilytreeFactory; +import familytree.FamilytreePackage; +import familytree.Member; + +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; + +/** + * + * An implementation of the model Package. + * + * @generated + */ +public class FamilytreePackageImpl extends EPackageImpl implements FamilytreePackage { + /** + * + * + * @generated + */ + private EClass familyTreeEClass = null; + + /** + * + * + * @generated + */ + private EClass memberEClass = null; + + /** + * Creates an instance of the model Package, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + *

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. + * + * + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see familytree.FamilytreePackage#eNS_URI + * @see #init() + * @generated + */ + private FamilytreePackageImpl() { + super(eNS_URI, FamilytreeFactory.eINSTANCE); + } + + /** + * + * + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the Package for this model, and for any others upon which it depends. + * + *

This method is used to initialize {@link FamilytreePackage#eINSTANCE} when that field is accessed. + * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. + * + * + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static FamilytreePackage init() { + if (isInited) return (FamilytreePackage)EPackage.Registry.INSTANCE.getEPackage(FamilytreePackage.eNS_URI); + + // Obtain or create and register package + Object registeredFamilytreePackage = EPackage.Registry.INSTANCE.get(eNS_URI); + FamilytreePackageImpl theFamilytreePackage = registeredFamilytreePackage instanceof FamilytreePackageImpl ? (FamilytreePackageImpl)registeredFamilytreePackage : new FamilytreePackageImpl(); + + isInited = true; + + // Create package meta-data objects + theFamilytreePackage.createPackageContents(); + + // Initialize created meta-data + theFamilytreePackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + theFamilytreePackage.freeze(); + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(FamilytreePackage.eNS_URI, theFamilytreePackage); + return theFamilytreePackage; + } + + /** + * + * + * @generated + */ + @Override + public EClass getFamilyTree() { + return familyTreeEClass; + } + + /** + * + * + * @generated + */ + @Override + public EReference getFamilyTree_Members() { + return (EReference)familyTreeEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EClass getMember() { + return memberEClass; + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getMember_Name() { + return (EAttribute)memberEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + @Override + public EAttribute getMember_Age() { + return (EAttribute)memberEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + @Override + public EReference getMember_Children() { + return (EReference)memberEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + @Override + public EReference getMember_Parents() { + return (EReference)memberEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + @Override + public FamilytreeFactory getFamilytreeFactory() { + return (FamilytreeFactory)getEFactoryInstance(); + } + + /** + * + * + * @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. + * + * + * @generated + */ + public void createPackageContents() { + if (isCreated) return; + isCreated = true; + + // Create classes and their features + familyTreeEClass = createEClass(FAMILY_TREE); + createEReference(familyTreeEClass, FAMILY_TREE__MEMBERS); + + memberEClass = createEClass(MEMBER); + createEAttribute(memberEClass, MEMBER__NAME); + createEAttribute(memberEClass, MEMBER__AGE); + createEReference(memberEClass, MEMBER__CHILDREN); + createEReference(memberEClass, MEMBER__PARENTS); + } + + /** + * + * + * @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. + * + * + * @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(familyTreeEClass, FamilyTree.class, "FamilyTree", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getFamilyTree_Members(), this.getMember(), null, "members", null, 0, -1, FamilyTree.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_Name(), ecorePackage.getEString(), "name", null, 0, 1, Member.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getMember_Age(), ecorePackage.getEInt(), "age", "0", 0, 1, Member.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getMember_Children(), this.getMember(), this.getMember_Parents(), "children", 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_Parents(), this.getMember(), this.getMember_Children(), "parents", null, 0, 2, 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); + } + +} //FamilytreePackageImpl diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/MemberImpl.java b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/MemberImpl.java new file mode 100644 index 00000000..77e423bd --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/MemberImpl.java @@ -0,0 +1,334 @@ +/** + */ +package familytree.impl; + +import familytree.FamilytreePackage; +import familytree.Member; + +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.EObjectWithInverseResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +/** + * + * An implementation of the model object 'Member'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link familytree.impl.MemberImpl#getName Name}
  • + *
  • {@link familytree.impl.MemberImpl#getAge Age}
  • + *
  • {@link familytree.impl.MemberImpl#getChildren Children}
  • + *
  • {@link familytree.impl.MemberImpl#getParents Parents}
  • + *
+ * + * @generated + */ +public class MemberImpl extends MinimalEObjectImpl.Container implements Member { + /** + * The default value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * The default value of the '{@link #getAge() Age}' attribute. + * + * + * @see #getAge() + * @generated + * @ordered + */ + protected static final int AGE_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getAge() Age}' attribute. + * + * + * @see #getAge() + * @generated + * @ordered + */ + protected int age = AGE_EDEFAULT; + + /** + * The cached value of the '{@link #getChildren() Children}' reference list. + * + * + * @see #getChildren() + * @generated + * @ordered + */ + protected EList children; + + /** + * The cached value of the '{@link #getParents() Parents}' reference list. + * + * + * @see #getParents() + * @generated + * @ordered + */ + protected EList parents; + + /** + * + * + * @generated + */ + protected MemberImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return FamilytreePackage.Literals.MEMBER; + } + + /** + * + * + * @generated + */ + @Override + public String getName() { + return name; + } + + /** + * + * + * @generated + */ + @Override + public void setName(String newName) { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FamilytreePackage.MEMBER__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + @Override + public int getAge() { + return age; + } + + /** + * + * + * @generated + */ + @Override + public void setAge(int newAge) { + int oldAge = age; + age = newAge; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, FamilytreePackage.MEMBER__AGE, oldAge, age)); + } + + /** + * + * + * @generated + */ + @Override + public EList getChildren() { + if (children == null) { + children = new EObjectWithInverseResolvingEList.ManyInverse(Member.class, this, FamilytreePackage.MEMBER__CHILDREN, FamilytreePackage.MEMBER__PARENTS); + } + return children; + } + + /** + * + * + * @generated + */ + @Override + public EList getParents() { + if (parents == null) { + parents = new EObjectWithInverseResolvingEList.ManyInverse(Member.class, this, FamilytreePackage.MEMBER__PARENTS, FamilytreePackage.MEMBER__CHILDREN); + } + return parents; + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case FamilytreePackage.MEMBER__CHILDREN: + return ((InternalEList)(InternalEList)getChildren()).basicAdd(otherEnd, msgs); + case FamilytreePackage.MEMBER__PARENTS: + return ((InternalEList)(InternalEList)getParents()).basicAdd(otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case FamilytreePackage.MEMBER__CHILDREN: + return ((InternalEList)getChildren()).basicRemove(otherEnd, msgs); + case FamilytreePackage.MEMBER__PARENTS: + return ((InternalEList)getParents()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case FamilytreePackage.MEMBER__NAME: + return getName(); + case FamilytreePackage.MEMBER__AGE: + return getAge(); + case FamilytreePackage.MEMBER__CHILDREN: + return getChildren(); + case FamilytreePackage.MEMBER__PARENTS: + return getParents(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case FamilytreePackage.MEMBER__NAME: + setName((String)newValue); + return; + case FamilytreePackage.MEMBER__AGE: + setAge((Integer)newValue); + return; + case FamilytreePackage.MEMBER__CHILDREN: + getChildren().clear(); + getChildren().addAll((Collection)newValue); + return; + case FamilytreePackage.MEMBER__PARENTS: + getParents().clear(); + getParents().addAll((Collection)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case FamilytreePackage.MEMBER__NAME: + setName(NAME_EDEFAULT); + return; + case FamilytreePackage.MEMBER__AGE: + setAge(AGE_EDEFAULT); + return; + case FamilytreePackage.MEMBER__CHILDREN: + getChildren().clear(); + return; + case FamilytreePackage.MEMBER__PARENTS: + getParents().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case FamilytreePackage.MEMBER__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case FamilytreePackage.MEMBER__AGE: + return age != AGE_EDEFAULT; + case FamilytreePackage.MEMBER__CHILDREN: + return children != null && !children.isEmpty(); + case FamilytreePackage.MEMBER__PARENTS: + return parents != null && !parents.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(", age: "); + result.append(age); + result.append(')'); + return result.toString(); + } + +} //MemberImpl diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/util/FamilytreeAdapterFactory.java b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/util/FamilytreeAdapterFactory.java new file mode 100644 index 00000000..6412c40f --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/util/FamilytreeAdapterFactory.java @@ -0,0 +1,138 @@ +/** + */ +package familytree.util; + +import familytree.*; + +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; + +/** + * + * The Adapter Factory for the model. + * It provides an adapter createXXX method for each class of the model. + * + * @see familytree.FamilytreePackage + * @generated + */ +public class FamilytreeAdapterFactory extends AdapterFactoryImpl { + /** + * The cached model package. + * + * + * @generated + */ + protected static FamilytreePackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * + * + * @generated + */ + public FamilytreeAdapterFactory() { + if (modelPackage == null) { + modelPackage = FamilytreePackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * + * This implementation returns true if the object is either the model's package or is an instance object of the model. + * + * @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 createXXX methods. + * + * + * @generated + */ + protected FamilytreeSwitch modelSwitch = + new FamilytreeSwitch() { + @Override + public Adapter caseFamilyTree(FamilyTree object) { + return createFamilyTreeAdapter(); + } + @Override + public Adapter caseMember(Member object) { + return createMemberAdapter(); + } + @Override + public Adapter defaultCase(EObject object) { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the target. + * + * + * @param target the object to adapt. + * @return the adapter for the target. + * @generated + */ + @Override + public Adapter createAdapter(Notifier target) { + return modelSwitch.doSwitch((EObject)target); + } + + + /** + * Creates a new adapter for an object of class '{@link familytree.FamilyTree Family Tree}'. + * + * 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. + * + * @return the new adapter. + * @see familytree.FamilyTree + * @generated + */ + public Adapter createFamilyTreeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link familytree.Member Member}'. + * + * 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. + * + * @return the new adapter. + * @see familytree.Member + * @generated + */ + public Adapter createMemberAdapter() { + return null; + } + + /** + * Creates a new adapter for the default case. + * + * This default implementation returns null. + * + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() { + return null; + } + +} //FamilytreeAdapterFactory diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/util/FamilytreeSwitch.java b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/util/FamilytreeSwitch.java new file mode 100644 index 00000000..75bbce3d --- /dev/null +++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/util/FamilytreeSwitch.java @@ -0,0 +1,131 @@ +/** + */ +package familytree.util; + +import familytree.*; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.util.Switch; + +/** + * + * The Switch for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch(EObject) doSwitch(object)} + * to invoke the caseXXX 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. + * + * @see familytree.FamilytreePackage + * @generated + */ +public class FamilytreeSwitch extends Switch { + /** + * The cached model package + * + * + * @generated + */ + protected static FamilytreePackage modelPackage; + + /** + * Creates an instance of the switch. + * + * + * @generated + */ + public FamilytreeSwitch() { + if (modelPackage == null) { + modelPackage = FamilytreePackage.eINSTANCE; + } + } + + /** + * Checks whether this is a switch for the given package. + * + * + * @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 caseXXX for each class of the model until one returns a non null result; it yields that result. + * + * + * @return the first non-null result returned by a caseXXX call. + * @generated + */ + @Override + protected T doSwitch(int classifierID, EObject theEObject) { + switch (classifierID) { + case FamilytreePackage.FAMILY_TREE: { + FamilyTree familyTree = (FamilyTree)theEObject; + T result = caseFamilyTree(familyTree); + if (result == null) result = defaultCase(theEObject); + return result; + } + case FamilytreePackage.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 'Family Tree'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Family Tree'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseFamilyTree(FamilyTree object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Member'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Member'. + * @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 'EObject'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'EObject'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + @Override + public T defaultCase(EObject object) { + return null; + } + +} //FamilytreeSwitch -- cgit v1.2.3-70-g09d2