Regenerate with Operation Reflection and consistent URI
diff --git a/docs/publications/ESE2010LongTalk/ESEExampleTree.diagram/plugin.xml b/docs/publications/ESE2010LongTalk/ESEExampleTree.diagram/plugin.xml
index 5466043..cfa6c38 100644
--- a/docs/publications/ESE2010LongTalk/ESEExampleTree.diagram/plugin.xml
+++ b/docs/publications/ESE2010LongTalk/ESEExampleTree.diagram/plugin.xml
@@ -267,7 +267,7 @@
<extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypes" id="element-types">
<?gmfgen generated="true"?>
- <metamodel nsURI="http://www.clipse.org/ecamples/tree">
+ <metamodel nsURI="http://www.eclipse.org/examples/tree">
<metamodelType
id="ESEExampleTree.diagram.Universe_1000"
name="%metatype.name.Universe_1000"
@@ -277,7 +277,7 @@
<param name="semanticHint" value="1000"/>
</metamodelType>
</metamodel>
- <metamodel nsURI="http://www.clipse.org/ecamples/tree">
+ <metamodel nsURI="http://www.eclipse.org/examples/tree">
<metamodelType
id="ESEExampleTree.diagram.Person_2001"
name="%metatype.name.Person_2001"
@@ -287,7 +287,7 @@
<param name="semanticHint" value="2001"/>
</metamodelType>
</metamodel>
- <metamodel nsURI="http://www.clipse.org/ecamples/tree">
+ <metamodel nsURI="http://www.eclipse.org/examples/tree">
<specializationType
id="ESEExampleTree.diagram.PersonChildren_4002"
name="%metatype.name.PersonChildren_4002"
diff --git a/docs/publications/ESE2010LongTalk/ESEExampleTree.diagram/src/people/diagram/navigator/PeopleNavigatorContentProvider.java b/docs/publications/ESE2010LongTalk/ESEExampleTree.diagram/src/people/diagram/navigator/PeopleNavigatorContentProvider.java
index ffa9a58..912f0ba 100644
--- a/docs/publications/ESE2010LongTalk/ESEExampleTree.diagram/src/people/diagram/navigator/PeopleNavigatorContentProvider.java
+++ b/docs/publications/ESE2010LongTalk/ESEExampleTree.diagram/src/people/diagram/navigator/PeopleNavigatorContentProvider.java
@@ -219,35 +219,6 @@
private Object[] getViewChildren(View view, Object parentElement) {
switch (PeopleVisualIDRegistry.getVisualID(view)) {
- case PersonEditPart.VISUAL_ID: {
- LinkedList<PeopleAbstractNavigatorItem> result = new LinkedList<PeopleAbstractNavigatorItem>();
- Node sv = (Node) view;
- PeopleNavigatorGroup incominglinks = new PeopleNavigatorGroup(
- Messages.NavigatorGroupName_Person_2001_incominglinks,
- "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
- PeopleNavigatorGroup outgoinglinks = new PeopleNavigatorGroup(
- Messages.NavigatorGroupName_Person_2001_outgoinglinks,
- "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
- Collection<View> connectedViews;
- connectedViews = getIncomingLinksByType(Collections.singleton(sv),
- PeopleVisualIDRegistry
- .getType(PersonChildrenEditPart.VISUAL_ID));
- incominglinks.addChildren(createNavigatorItems(connectedViews,
- incominglinks, true));
- connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
- PeopleVisualIDRegistry
- .getType(PersonChildrenEditPart.VISUAL_ID));
- outgoinglinks.addChildren(createNavigatorItems(connectedViews,
- outgoinglinks, true));
- if (!incominglinks.isEmpty()) {
- result.add(incominglinks);
- }
- if (!outgoinglinks.isEmpty()) {
- result.add(outgoinglinks);
- }
- return result.toArray();
- }
-
case PersonChildrenEditPart.VISUAL_ID: {
LinkedList<PeopleAbstractNavigatorItem> result = new LinkedList<PeopleAbstractNavigatorItem>();
Edge sv = (Edge) view;
@@ -295,6 +266,35 @@
}
return result.toArray();
}
+
+ case PersonEditPart.VISUAL_ID: {
+ LinkedList<PeopleAbstractNavigatorItem> result = new LinkedList<PeopleAbstractNavigatorItem>();
+ Node sv = (Node) view;
+ PeopleNavigatorGroup incominglinks = new PeopleNavigatorGroup(
+ Messages.NavigatorGroupName_Person_2001_incominglinks,
+ "icons/incomingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ PeopleNavigatorGroup outgoinglinks = new PeopleNavigatorGroup(
+ Messages.NavigatorGroupName_Person_2001_outgoinglinks,
+ "icons/outgoingLinksNavigatorGroup.gif", parentElement); //$NON-NLS-1$
+ Collection<View> connectedViews;
+ connectedViews = getIncomingLinksByType(Collections.singleton(sv),
+ PeopleVisualIDRegistry
+ .getType(PersonChildrenEditPart.VISUAL_ID));
+ incominglinks.addChildren(createNavigatorItems(connectedViews,
+ incominglinks, true));
+ connectedViews = getOutgoingLinksByType(Collections.singleton(sv),
+ PeopleVisualIDRegistry
+ .getType(PersonChildrenEditPart.VISUAL_ID));
+ outgoinglinks.addChildren(createNavigatorItems(connectedViews,
+ outgoinglinks, true));
+ if (!incominglinks.isEmpty()) {
+ result.add(incominglinks);
+ }
+ if (!outgoinglinks.isEmpty()) {
+ result.add(outgoinglinks);
+ }
+ return result.toArray();
+ }
}
return EMPTY_ARRAY;
}
diff --git a/docs/publications/ESE2010LongTalk/ESEExampleTree.diagram/src/people/diagram/navigator/PeopleNavigatorLabelProvider.java b/docs/publications/ESE2010LongTalk/ESEExampleTree.diagram/src/people/diagram/navigator/PeopleNavigatorLabelProvider.java
index a382db6..d69e111 100644
--- a/docs/publications/ESE2010LongTalk/ESEExampleTree.diagram/src/people/diagram/navigator/PeopleNavigatorLabelProvider.java
+++ b/docs/publications/ESE2010LongTalk/ESEExampleTree.diagram/src/people/diagram/navigator/PeopleNavigatorLabelProvider.java
@@ -84,15 +84,15 @@
*/
public Image getImage(View view) {
switch (PeopleVisualIDRegistry.getVisualID(view)) {
- case PersonEditPart.VISUAL_ID:
- return getImage(
- "Navigator?TopLevelNode?http://www.clipse.org/ecamples/tree?Person", PeopleElementTypes.Person_2001); //$NON-NLS-1$
case PersonChildrenEditPart.VISUAL_ID:
return getImage(
- "Navigator?Link?http://www.clipse.org/ecamples/tree?Person?children", PeopleElementTypes.PersonChildren_4002); //$NON-NLS-1$
+ "Navigator?Link?http://www.eclipse.org/examples/tree?Person?children", PeopleElementTypes.PersonChildren_4002); //$NON-NLS-1$
case UniverseEditPart.VISUAL_ID:
return getImage(
- "Navigator?Diagram?http://www.clipse.org/ecamples/tree?Universe", PeopleElementTypes.Universe_1000); //$NON-NLS-1$
+ "Navigator?Diagram?http://www.eclipse.org/examples/tree?Universe", PeopleElementTypes.Universe_1000); //$NON-NLS-1$
+ case PersonEditPart.VISUAL_ID:
+ return getImage(
+ "Navigator?TopLevelNode?http://www.eclipse.org/examples/tree?Person", PeopleElementTypes.Person_2001); //$NON-NLS-1$
}
return getImage("Navigator?UnknownElement", null); //$NON-NLS-1$
}
@@ -145,12 +145,12 @@
return getUnresolvedDomainElementProxyText(view);
}
switch (PeopleVisualIDRegistry.getVisualID(view)) {
- case PersonEditPart.VISUAL_ID:
- return getPerson_2001Text(view);
case PersonChildrenEditPart.VISUAL_ID:
return getPersonChildren_4002Text(view);
case UniverseEditPart.VISUAL_ID:
return getUniverse_1000Text(view);
+ case PersonEditPart.VISUAL_ID:
+ return getPerson_2001Text(view);
}
return getUnknownElementText(view);
}
diff --git a/docs/publications/ESE2010LongTalk/ESEExampleTree/model/People.ecore b/docs/publications/ESE2010LongTalk/ESEExampleTree/model/People.ecore
index 505f48b..e67bbdf 100644
--- a/docs/publications/ESE2010LongTalk/ESEExampleTree/model/People.ecore
+++ b/docs/publications/ESE2010LongTalk/ESEExampleTree/model/People.ecore
@@ -2,7 +2,7 @@
<ecore:EPackage xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="people"
- nsURI="http://www.clipse.org/ecamples/tree" nsPrefix="tree">
+ nsURI="http://www.eclipse.org/examples/tree" nsPrefix="tree">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="invocationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
<details key="settingDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL"/>
diff --git a/docs/publications/ESE2010LongTalk/ESEExampleTree/model/default.people_diagram b/docs/publications/ESE2010LongTalk/ESEExampleTree/model/default.people_diagram
index 06cde78..18b9427 100644
--- a/docs/publications/ESE2010LongTalk/ESEExampleTree/model/default.people_diagram
+++ b/docs/publications/ESE2010LongTalk/ESEExampleTree/model/default.people_diagram
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:tree="http://www.clipse.org/ecamples/tree" xmi:id="__hwfwNhVEd-DhoABUGS8wA" type="People" measurementUnit="Pixel">
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:tree="http://www.eclipse.org/examples/tree" xmi:id="__hwfwNhVEd-DhoABUGS8wA" type="People" measurementUnit="Pixel">
<children xmi:type="notation:Shape" xmi:id="__ihUwNhVEd-DhoABUGS8wA" type="2001" fontName="Microsoft Sans Serif">
<children xmi:type="notation:DecorationNode" xmi:id="__ih70NhVEd-DhoABUGS8wA" type="5001"/>
<element xmi:type="tree:Person" href="default.people#//@people.0"/>
diff --git a/docs/publications/ESE2010LongTalk/ESEExampleTree/src/people/PeoplePackage.java b/docs/publications/ESE2010LongTalk/ESEExampleTree/src/people/PeoplePackage.java
index 4044243..98d3b34 100644
--- a/docs/publications/ESE2010LongTalk/ESEExampleTree/src/people/PeoplePackage.java
+++ b/docs/publications/ESE2010LongTalk/ESEExampleTree/src/people/PeoplePackage.java
@@ -2,13 +2,14 @@
* <copyright>
* </copyright>
*
- * $Id: PeoplePackage.java,v 1.1 2010/10/16 12:13:05 ewillink Exp $
+ * $Id: PeoplePackage.java,v 1.2 2010/10/29 11:58:02 ewillink Exp $
*/
package people;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EOperation;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
@@ -25,6 +26,7 @@
* <!-- end-user-doc -->
* @see people.PeopleFactory
* @model kind="package"
+ * annotation="http://www.eclipse.org/emf/2002/Ecore invocationDelegates='http://www.eclipse.org/emf/2002/Ecore/OCL' settingDelegates='http://www.eclipse.org/emf/2002/Ecore/OCL' validationDelegates='http://www.eclipse.org/emf/2002/Ecore/OCL'"
* @generated
*/
public interface PeoplePackage extends EPackage {
@@ -42,7 +44,7 @@
* <!-- end-user-doc -->
* @generated
*/
- String eNS_URI = "http://www.clipse.org/ecamples/tree";
+ String eNS_URI = "http://www.eclipse.org/examples/tree";
/**
* The package namespace name.
@@ -107,13 +109,49 @@
int PERSON__NAME = 3;
/**
+ * The feature id for the '<em><b>Father</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERSON__FATHER = 4;
+
+ /**
+ * The feature id for the '<em><b>Mother</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERSON__MOTHER = 5;
+
+ /**
* The number of structural features of the '<em>Person</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PERSON_FEATURE_COUNT = 4;
+ int PERSON_FEATURE_COUNT = 6;
+
+ /**
+ * The operation id for the '<em>Child</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERSON___CHILD__STRING = 0;
+
+ /**
+ * The number of operations of the '<em>Person</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PERSON_OPERATION_COUNT = 1;
/**
* The meta object id for the '{@link people.impl.UniverseImpl <em>Universe</em>}' class.
@@ -144,6 +182,15 @@
int UNIVERSE_FEATURE_COUNT = 1;
/**
+ * The number of operations of the '<em>Universe</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNIVERSE_OPERATION_COUNT = 0;
+
+ /**
* The meta object id for the '{@link people.Gender <em>Gender</em>}' enum.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -209,6 +256,38 @@
EAttribute getPerson_Name();
/**
+ * Returns the meta object for the reference '{@link people.Person#getFather <em>Father</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Father</em>'.
+ * @see people.Person#getFather()
+ * @see #getPerson()
+ * @generated
+ */
+ EReference getPerson_Father();
+
+ /**
+ * Returns the meta object for the reference '{@link people.Person#getMother <em>Mother</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Mother</em>'.
+ * @see people.Person#getMother()
+ * @see #getPerson()
+ * @generated
+ */
+ EReference getPerson_Mother();
+
+ /**
+ * Returns the meta object for the '{@link people.Person#child(java.lang.String) <em>Child</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Child</em>' operation.
+ * @see people.Person#child(java.lang.String)
+ * @generated
+ */
+ EOperation getPerson__Child__String();
+
+ /**
* Returns the meta object for class '{@link people.Universe <em>Universe</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -304,6 +383,30 @@
EAttribute PERSON__NAME = eINSTANCE.getPerson_Name();
/**
+ * The meta object literal for the '<em><b>Father</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PERSON__FATHER = eINSTANCE.getPerson_Father();
+
+ /**
+ * The meta object literal for the '<em><b>Mother</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PERSON__MOTHER = eINSTANCE.getPerson_Mother();
+
+ /**
+ * The meta object literal for the '<em><b>Child</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation PERSON___CHILD__STRING = eINSTANCE.getPerson__Child__String();
+
+ /**
* The meta object literal for the '{@link people.impl.UniverseImpl <em>Universe</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/docs/publications/ESE2010LongTalk/ESEExampleTree/src/people/Person.java b/docs/publications/ESE2010LongTalk/ESEExampleTree/src/people/Person.java
index 246257f..26ee17c 100644
--- a/docs/publications/ESE2010LongTalk/ESEExampleTree/src/people/Person.java
+++ b/docs/publications/ESE2010LongTalk/ESEExampleTree/src/people/Person.java
@@ -2,7 +2,7 @@
* <copyright>
* </copyright>
*
- * $Id: Person.java,v 1.1 2010/10/16 12:13:05 ewillink Exp $
+ * $Id: Person.java,v 1.2 2010/10/29 11:58:02 ewillink Exp $
*/
package people;
@@ -22,18 +22,20 @@
* <li>{@link people.Person#getParents <em>Parents</em>}</li>
* <li>{@link people.Person#getGender <em>Gender</em>}</li>
* <li>{@link people.Person#getName <em>Name</em>}</li>
+ * <li>{@link people.Person#getFather <em>Father</em>}</li>
+ * <li>{@link people.Person#getMother <em>Mother</em>}</li>
* </ul>
* </p>
*
* @see people.PeoplePackage#getPerson()
- * @model
+ * @model annotation="http://www.eclipse.org/emf/2002/Ecore constraints='null MixedGenderParents'"
+ * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL MixedGenderParents='father.gender <> mother.gender'"
* @generated
*/
public interface Person extends EObject {
/**
* Returns the value of the '<em><b>Children</b></em>' reference list.
* The list contents are of type {@link people.Person}.
- * It is bidirectional and its opposite is '{@link people.Person#getParents <em>Parents</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Children</em>' reference list isn't clear,
@@ -42,8 +44,7 @@
* <!-- end-user-doc -->
* @return the value of the '<em>Children</em>' reference list.
* @see people.PeoplePackage#getPerson_Children()
- * @see people.Person#getParents
- * @model opposite="parents"
+ * @model
* @generated
*/
EList<Person> getChildren();
@@ -51,7 +52,6 @@
/**
* Returns the value of the '<em><b>Parents</b></em>' reference list.
* The list contents are of type {@link people.Person}.
- * It is bidirectional and its opposite is '{@link people.Person#getChildren <em>Children</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Parents</em>' reference list isn't clear,
@@ -60,8 +60,7 @@
* <!-- end-user-doc -->
* @return the value of the '<em>Parents</em>' reference list.
* @see people.PeoplePackage#getPerson_Parents()
- * @see people.Person#getChildren
- * @model opposite="children" lower="2" upper="2"
+ * @model upper="2"
* @generated
*/
EList<Person> getParents();
@@ -121,4 +120,66 @@
*/
void setName(String value);
+ /**
+ * Returns the value of the '<em><b>Father</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Father</em>' 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>' reference.
+ * @see #setFather(Person)
+ * @see people.PeoplePackage#getPerson_Father()
+ * @model required="true" transient="true" volatile="true" derived="true"
+ * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL derivation='parents->any(gender = Gender::MALE)'"
+ * @generated
+ */
+ Person getFather();
+
+ /**
+ * Sets the value of the '{@link people.Person#getFather <em>Father</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Father</em>' reference.
+ * @see #getFather()
+ * @generated
+ */
+ void setFather(Person value);
+
+ /**
+ * Returns the value of the '<em><b>Mother</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mother</em>' 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>' reference.
+ * @see #setMother(Person)
+ * @see people.PeoplePackage#getPerson_Mother()
+ * @model required="true" transient="true" volatile="true" derived="true"
+ * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL derivation='parents->any(gender = Gender::FEMALE)'"
+ * @generated
+ */
+ Person getMother();
+
+ /**
+ * Sets the value of the '{@link people.Person#getMother <em>Mother</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Mother</em>' reference.
+ * @see #getMother()
+ * @generated
+ */
+ void setMother(Person value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL body='children->any(name=childName)'"
+ * @generated
+ */
+ Person child(String childName);
+
} // Person
diff --git a/docs/publications/ESE2010LongTalk/ESEExampleTree/src/people/impl/PeopleFactoryImpl.java b/docs/publications/ESE2010LongTalk/ESEExampleTree/src/people/impl/PeopleFactoryImpl.java
index d741c29..14f8539 100644
--- a/docs/publications/ESE2010LongTalk/ESEExampleTree/src/people/impl/PeopleFactoryImpl.java
+++ b/docs/publications/ESE2010LongTalk/ESEExampleTree/src/people/impl/PeopleFactoryImpl.java
@@ -2,7 +2,7 @@
* <copyright>
* </copyright>
*
- * $Id: PeopleFactoryImpl.java,v 1.1 2010/10/16 12:13:06 ewillink Exp $
+ * $Id: PeopleFactoryImpl.java,v 1.2 2010/10/29 11:58:02 ewillink Exp $
*/
package people.impl;
@@ -32,7 +32,7 @@
*/
public static PeopleFactory init() {
try {
- PeopleFactory thePeopleFactory = (PeopleFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.clipse.org/ecamples/tree");
+ PeopleFactory thePeopleFactory = (PeopleFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/examples/tree");
if (thePeopleFactory != null) {
return thePeopleFactory;
}
diff --git a/docs/publications/ESE2010LongTalk/ESEExampleTree/src/people/impl/PeoplePackageImpl.java b/docs/publications/ESE2010LongTalk/ESEExampleTree/src/people/impl/PeoplePackageImpl.java
index 1e25188..465cf97 100644
--- a/docs/publications/ESE2010LongTalk/ESEExampleTree/src/people/impl/PeoplePackageImpl.java
+++ b/docs/publications/ESE2010LongTalk/ESEExampleTree/src/people/impl/PeoplePackageImpl.java
@@ -2,16 +2,18 @@
* <copyright>
* </copyright>
*
- * $Id: PeoplePackageImpl.java,v 1.1 2010/10/16 12:13:06 ewillink Exp $
+ * $Id: PeoplePackageImpl.java,v 1.2 2010/10/29 11:58:02 ewillink Exp $
*/
package people.impl;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EOperation;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EValidator;
import org.eclipse.emf.ecore.impl.EPackageImpl;
import people.Gender;
@@ -19,6 +21,7 @@
import people.PeoplePackage;
import people.Person;
import people.Universe;
+import people.util.PeopleValidator;
/**
* <!-- begin-user-doc -->
@@ -100,6 +103,15 @@
// Initialize created meta-data
thePeoplePackage.initializePackageContents();
+ // Register package validator
+ EValidator.Registry.INSTANCE.put
+ (thePeoplePackage,
+ new EValidator.Descriptor() {
+ public EValidator getEValidator() {
+ return PeopleValidator.INSTANCE;
+ }
+ });
+
// Mark meta-data to indicate it can't be changed
thePeoplePackage.freeze();
@@ -159,6 +171,33 @@
* <!-- end-user-doc -->
* @generated
*/
+ public EReference getPerson_Father() {
+ return (EReference)personEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPerson_Mother() {
+ return (EReference)personEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getPerson__Child__String() {
+ return personEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public EClass getUniverse() {
return universeEClass;
}
@@ -214,6 +253,9 @@
createEReference(personEClass, PERSON__PARENTS);
createEAttribute(personEClass, PERSON__GENDER);
createEAttribute(personEClass, PERSON__NAME);
+ createEReference(personEClass, PERSON__FATHER);
+ createEReference(personEClass, PERSON__MOTHER);
+ createEOperation(personEClass, PERSON___CHILD__STRING);
universeEClass = createEClass(UNIVERSE);
createEReference(universeEClass, UNIVERSE__PEOPLE);
@@ -251,12 +293,17 @@
// Add supertypes to classes
- // Initialize classes and features; add operations and parameters
+ // Initialize classes, features, and operations; add parameters
initEClass(personEClass, Person.class, "Person", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getPerson_Children(), this.getPerson(), this.getPerson_Parents(), "children", null, 0, -1, Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getPerson_Parents(), this.getPerson(), this.getPerson_Children(), "parents", null, 2, 2, Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPerson_Children(), this.getPerson(), null, "children", null, 0, -1, Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPerson_Parents(), this.getPerson(), null, "parents", null, 0, 2, Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getPerson_Gender(), this.getGender(), "gender", null, 0, 1, Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getPerson_Name(), ecorePackage.getEString(), "name", null, 0, 1, Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPerson_Father(), this.getPerson(), null, "father", null, 1, 1, Person.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEReference(getPerson_Mother(), this.getPerson(), null, "mother", null, 1, 1, Person.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+
+ EOperation op = initEOperation(getPerson__Child__String(), this.getPerson(), "child", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "childName", 0, 1, IS_UNIQUE, IS_ORDERED);
initEClass(universeEClass, Universe.class, "Universe", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getUniverse_People(), this.getPerson(), null, "people", null, 0, -1, Universe.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -268,6 +315,70 @@
// Create resource
createResource(eNS_URI);
+
+ // Create annotations
+ // http://www.eclipse.org/emf/2002/Ecore
+ createEcoreAnnotations();
+ // http://www.eclipse.org/emf/2002/Ecore/OCL
+ createOCLAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http://www.eclipse.org/emf/2002/Ecore</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createEcoreAnnotations() {
+ String source = "http://www.eclipse.org/emf/2002/Ecore";
+ addAnnotation
+ (this,
+ source,
+ new String[] {
+ "invocationDelegates", "http://www.eclipse.org/emf/2002/Ecore/OCL",
+ "settingDelegates", "http://www.eclipse.org/emf/2002/Ecore/OCL",
+ "validationDelegates", "http://www.eclipse.org/emf/2002/Ecore/OCL"
+ });
+ addAnnotation
+ (personEClass,
+ source,
+ new String[] {
+ "constraints", "null MixedGenderParents"
+ });
+ }
+
+ /**
+ * Initializes the annotations for <b>http://www.eclipse.org/emf/2002/Ecore/OCL</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createOCLAnnotations() {
+ String source = "http://www.eclipse.org/emf/2002/Ecore/OCL";
+ addAnnotation
+ (personEClass,
+ source,
+ new String[] {
+ "MixedGenderParents", "father.gender <> mother.gender"
+ });
+ addAnnotation
+ (getPerson__Child__String(),
+ source,
+ new String[] {
+ "body", "children->any(name=childName)"
+ });
+ addAnnotation
+ (getPerson_Father(),
+ source,
+ new String[] {
+ "derivation", "parents->any(gender = Gender::MALE)"
+ });
+ addAnnotation
+ (getPerson_Mother(),
+ source,
+ new String[] {
+ "derivation", "parents->any(gender = Gender::FEMALE)"
+ });
}
} //PeoplePackageImpl
diff --git a/docs/publications/ESE2010LongTalk/ESEExampleTree/src/people/impl/PersonImpl.java b/docs/publications/ESE2010LongTalk/ESEExampleTree/src/people/impl/PersonImpl.java
index 79f5153..93ab644 100644
--- a/docs/publications/ESE2010LongTalk/ESEExampleTree/src/people/impl/PersonImpl.java
+++ b/docs/publications/ESE2010LongTalk/ESEExampleTree/src/people/impl/PersonImpl.java
@@ -2,23 +2,29 @@
* <copyright>
* </copyright>
*
- * $Id: PersonImpl.java,v 1.1 2010/10/16 12:13:06 ewillink Exp $
+ * $Id: PersonImpl.java,v 1.2 2010/10/29 11:58:02 ewillink Exp $
*/
package people.impl;
+import java.lang.reflect.InvocationTargetException;
import java.util.Collection;
import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.BasicEList;
import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.WrappedException;
import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.impl.EObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
import org.eclipse.emf.ecore.util.InternalEList;
@@ -37,6 +43,8 @@
* <li>{@link people.impl.PersonImpl#getParents <em>Parents</em>}</li>
* <li>{@link people.impl.PersonImpl#getGender <em>Gender</em>}</li>
* <li>{@link people.impl.PersonImpl#getName <em>Name</em>}</li>
+ * <li>{@link people.impl.PersonImpl#getFather <em>Father</em>}</li>
+ * <li>{@link people.impl.PersonImpl#getMother <em>Mother</em>}</li>
* </ul>
* </p>
*
@@ -104,6 +112,26 @@
protected String name = NAME_EDEFAULT;
/**
+ * The cached setting delegate for the '{@link #getFather() <em>Father</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFather()
+ * @generated
+ * @ordered
+ */
+ protected EStructuralFeature.Internal.SettingDelegate FATHER__ESETTING_DELEGATE = ((EStructuralFeature.Internal)PeoplePackage.Literals.PERSON__FATHER).getSettingDelegate();
+
+ /**
+ * The cached setting delegate for the '{@link #getMother() <em>Mother</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMother()
+ * @generated
+ * @ordered
+ */
+ protected EStructuralFeature.Internal.SettingDelegate MOTHER__ESETTING_DELEGATE = ((EStructuralFeature.Internal)PeoplePackage.Literals.PERSON__MOTHER).getSettingDelegate();
+
+ /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -129,7 +157,7 @@
*/
public EList<Person> getChildren() {
if (children == null) {
- children = new EObjectWithInverseResolvingEList.ManyInverse<Person>(Person.class, this, PeoplePackage.PERSON__CHILDREN, PeoplePackage.PERSON__PARENTS);
+ children = new EObjectResolvingEList<Person>(Person.class, this, PeoplePackage.PERSON__CHILDREN);
}
return children;
}
@@ -141,7 +169,7 @@
*/
public EList<Person> getParents() {
if (parents == null) {
- parents = new EObjectWithInverseResolvingEList.ManyInverse<Person>(Person.class, this, PeoplePackage.PERSON__PARENTS, PeoplePackage.PERSON__CHILDREN);
+ parents = new EObjectResolvingEList<Person>(Person.class, this, PeoplePackage.PERSON__PARENTS);
}
return parents;
}
@@ -193,16 +221,8 @@
* <!-- end-user-doc -->
* @generated
*/
- @SuppressWarnings("unchecked")
- @Override
- public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case PeoplePackage.PERSON__CHILDREN:
- return ((InternalEList<InternalEObject>)(InternalEList<?>)getChildren()).basicAdd(otherEnd, msgs);
- case PeoplePackage.PERSON__PARENTS:
- return ((InternalEList<InternalEObject>)(InternalEList<?>)getParents()).basicAdd(otherEnd, msgs);
- }
- return super.eInverseAdd(otherEnd, featureID, msgs);
+ public Person getFather() {
+ return (Person)FATHER__ESETTING_DELEGATE.dynamicGet(this, null, 0, true, false);
}
/**
@@ -210,15 +230,68 @@
* <!-- end-user-doc -->
* @generated
*/
- @Override
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case PeoplePackage.PERSON__CHILDREN:
- return ((InternalEList<?>)getChildren()).basicRemove(otherEnd, msgs);
- case PeoplePackage.PERSON__PARENTS:
- return ((InternalEList<?>)getParents()).basicRemove(otherEnd, msgs);
+ public Person basicGetFather() {
+ return (Person)FATHER__ESETTING_DELEGATE.dynamicGet(this, null, 0, false, false);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFather(Person newFather) {
+ FATHER__ESETTING_DELEGATE.dynamicSet(this, null, 0, newFather);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Person getMother() {
+ return (Person)MOTHER__ESETTING_DELEGATE.dynamicGet(this, null, 0, true, false);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Person basicGetMother() {
+ return (Person)MOTHER__ESETTING_DELEGATE.dynamicGet(this, null, 0, false, false);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMother(Person newMother) {
+ MOTHER__ESETTING_DELEGATE.dynamicSet(this, null, 0, newMother);
+ }
+
+ /**
+ * The cached invocation delegate for the '{@link #child(java.lang.String) <em>Child</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #child(java.lang.String)
+ * @generated
+ * @ordered
+ */
+ protected static final EOperation.Internal.InvocationDelegate CHILD_STRING__EINVOCATION_DELEGATE = ((EOperation.Internal)PeoplePackage.Literals.PERSON___CHILD__STRING).getInvocationDelegate();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Person child(String childName) {
+ try {
+ return (Person)CHILD_STRING__EINVOCATION_DELEGATE.dynamicInvoke(this, new BasicEList.UnmodifiableEList<Object>(1, new Object[]{childName}));
}
- return super.eInverseRemove(otherEnd, featureID, msgs);
+ catch (InvocationTargetException ite) {
+ throw new WrappedException(ite);
+ }
}
/**
@@ -237,6 +310,12 @@
return getGender();
case PeoplePackage.PERSON__NAME:
return getName();
+ case PeoplePackage.PERSON__FATHER:
+ if (resolve) return getFather();
+ return basicGetFather();
+ case PeoplePackage.PERSON__MOTHER:
+ if (resolve) return getMother();
+ return basicGetMother();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -264,6 +343,12 @@
case PeoplePackage.PERSON__NAME:
setName((String)newValue);
return;
+ case PeoplePackage.PERSON__FATHER:
+ setFather((Person)newValue);
+ return;
+ case PeoplePackage.PERSON__MOTHER:
+ setMother((Person)newValue);
+ return;
}
super.eSet(featureID, newValue);
}
@@ -288,6 +373,12 @@
case PeoplePackage.PERSON__NAME:
setName(NAME_EDEFAULT);
return;
+ case PeoplePackage.PERSON__FATHER:
+ setFather((Person)null);
+ return;
+ case PeoplePackage.PERSON__MOTHER:
+ setMother((Person)null);
+ return;
}
super.eUnset(featureID);
}
@@ -308,6 +399,10 @@
return gender != GENDER_EDEFAULT;
case PeoplePackage.PERSON__NAME:
return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case PeoplePackage.PERSON__FATHER:
+ return FATHER__ESETTING_DELEGATE.dynamicIsSet(this, null, 0);
+ case PeoplePackage.PERSON__MOTHER:
+ return MOTHER__ESETTING_DELEGATE.dynamicIsSet(this, null, 0);
}
return super.eIsSet(featureID);
}
@@ -318,6 +413,20 @@
* @generated
*/
@Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+ switch (operationID) {
+ case PeoplePackage.PERSON___CHILD__STRING:
+ return child((String)arguments.get(0));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public String toString() {
if (eIsProxy()) return super.toString();
diff --git a/docs/publications/ESE2010LongTalk/ESEExampleTree/src/people/util/PeopleValidator.java b/docs/publications/ESE2010LongTalk/ESEExampleTree/src/people/util/PeopleValidator.java
new file mode 100644
index 0000000..b8087af
--- /dev/null
+++ b/docs/publications/ESE2010LongTalk/ESEExampleTree/src/people/util/PeopleValidator.java
@@ -0,0 +1,213 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: PeopleValidator.java,v 1.1 2010/10/29 11:58:02 ewillink Exp $
+ */
+package people.util;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.EObjectValidator;
+
+import people.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Validator</b> for the model.
+ * <!-- end-user-doc -->
+ * @see people.PeoplePackage
+ * @generated
+ */
+public class PeopleValidator extends EObjectValidator {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final PeopleValidator INSTANCE = new PeopleValidator();
+
+ /**
+ * A constant for the {@link org.eclipse.emf.common.util.Diagnostic#getSource() source} of diagnostic {@link org.eclipse.emf.common.util.Diagnostic#getCode() codes} from this package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.common.util.Diagnostic#getSource()
+ * @see org.eclipse.emf.common.util.Diagnostic#getCode()
+ * @generated
+ */
+ public static final String DIAGNOSTIC_SOURCE = "people";
+
+ /**
+ * A constant with a fixed name that can be used as the base value for additional hand written constants.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 0;
+
+ /**
+ * A constant with a fixed name that can be used as the base value for additional hand written constants in a derived class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static final int DIAGNOSTIC_CODE_COUNT = GENERATED_DIAGNOSTIC_CODE_COUNT;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PeopleValidator() {
+ super();
+ }
+
+ /**
+ * Returns the package of this validator switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EPackage getEPackage() {
+ return PeoplePackage.eINSTANCE;
+ }
+
+ /**
+ * Calls <code>validateXXX</code> for the corresponding classifier of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean validate(int classifierID, Object value, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ switch (classifierID) {
+ case PeoplePackage.PERSON:
+ return validatePerson((Person)value, diagnostics, context);
+ case PeoplePackage.UNIVERSE:
+ return validateUniverse((Universe)value, diagnostics, context);
+ case PeoplePackage.GENDER:
+ return validateGender((Gender)value, diagnostics, context);
+ default:
+ return true;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validatePerson(Person person, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ if (!validate_NoCircularContainment(person, diagnostics, context)) return false;
+ boolean result = validate_EveryMultiplicityConforms(person, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(person, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(person, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(person, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(person, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(person, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(person, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(person, diagnostics, context);
+ if (result || diagnostics != null) result &= validatePerson_null(person, diagnostics, context);
+ if (result || diagnostics != null) result &= validatePerson_MixedGenderParents(person, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * Validates the null constraint of '<em>Person</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validatePerson_null(Person person, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ // TODO implement the constraint
+ // -> specify the condition that violates the constraint
+ // -> verify the diagnostic details, including severity, code, and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics.add
+ (createDiagnostic
+ (Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0,
+ "_UI_GenericConstraint_diagnostic",
+ new Object[] { "null", getObjectLabel(person, context) },
+ new Object[] { person },
+ context));
+ }
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * The cached validation expression for the MixedGenderParents constraint of '<em>Person</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static final String PERSON__MIXED_GENDER_PARENTS__EEXPRESSION = "father.gender <> mother.gender";
+
+ /**
+ * Validates the MixedGenderParents constraint of '<em>Person</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validatePerson_MixedGenderParents(Person person, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return
+ validate
+ (PeoplePackage.Literals.PERSON,
+ person,
+ diagnostics,
+ context,
+ "http://www.eclipse.org/emf/2002/Ecore/OCL",
+ "MixedGenderParents",
+ PERSON__MIXED_GENDER_PARENTS__EEXPRESSION,
+ Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateUniverse(Universe universe, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(universe, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateGender(Gender gender, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return true;
+ }
+
+ /**
+ * Returns the resource locator that will be used to fetch messages for this validator's diagnostics.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ // TODO
+ // Specialize this to return a resource locator for messages specific to this validator.
+ // Ensure that you remove @generated or mark it @generated NOT
+ return super.getResourceLocator();
+ }
+
+} //PeopleValidator