Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension')
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/Address.java112
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/AddressList.java103
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/DistrictUKAddress.java81
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/ExtensionFactory.java91
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/ExtensionPackage.java742
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/FirstAddressHolder.java47
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/InternationalPrice.java85
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/UKAddress.java111
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/USAddress.java141
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/USState.java162
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/AddressImpl.java270
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/AddressListImpl.java287
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/DistrictUKAddressImpl.java247
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/ExtensionFactoryImpl.java231
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/ExtensionPackageImpl.java755
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/FirstAddressHolderImpl.java133
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/InternationalPriceImpl.java218
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/UKAddressImpl.java281
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/USAddressImpl.java316
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/util/ExtensionAdapterFactory.java222
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/util/ExtensionResourceFactoryImpl.java53
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/util/ExtensionResourceImpl.java32
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/util/ExtensionSwitch.java260
-rw-r--r--examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/util/ExtensionValidator.java283
24 files changed, 5263 insertions, 0 deletions
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/Address.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/Address.java
new file mode 100644
index 000000000..46d7a8cdc
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/Address.java
@@ -0,0 +1,112 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: Address.java,v 1.1 2006/07/11 16:56:57 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Address</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.Address#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.Address#getStreet <em>Street</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.Address#getCity <em>City</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage#getAddress()
+ * @model abstract="true"
+ * extendedMetaData="name='Address' kind='elementOnly'"
+ * @generated
+ */
+public interface Address extends EObject{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>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>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage#getAddress_Name()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='element' name='name'"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.Address#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Street</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Street</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Street</em>' attribute.
+ * @see #setStreet(String)
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage#getAddress_Street()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='element' name='street'"
+ * @generated
+ */
+ String getStreet();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.Address#getStreet <em>Street</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Street</em>' attribute.
+ * @see #getStreet()
+ * @generated
+ */
+ void setStreet(String value);
+
+ /**
+ * Returns the value of the '<em><b>City</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>City</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>City</em>' attribute.
+ * @see #setCity(String)
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage#getAddress_City()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='element' name='city'"
+ * @generated
+ */
+ String getCity();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.Address#getCity <em>City</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>City</em>' attribute.
+ * @see #getCity()
+ * @generated
+ */
+ void setCity(String value);
+
+} // Address
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/AddressList.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/AddressList.java
new file mode 100644
index 000000000..cb9d6be40
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/AddressList.java
@@ -0,0 +1,103 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AddressList.java,v 1.1 2006/07/11 16:56:56 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Address List</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.AddressList#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.AddressList#getFirstAddress <em>First Address</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.AddressList#getSecondAddress <em>Second Address</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage#getAddressList()
+ * @model extendedMetaData="name='AddressList' kind='elementOnly'"
+ * @generated
+ */
+public interface AddressList extends EObject{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>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>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage#getAddressList_Name()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='element' name='name'"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.AddressList#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>First Address</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>First Address</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>First Address</em>' containment reference.
+ * @see #setFirstAddress(FirstAddressHolder)
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage#getAddressList_FirstAddress()
+ * @model containment="true" resolveProxies="false" required="true"
+ * extendedMetaData="kind='element' name='firstAddress'"
+ * @generated
+ */
+ FirstAddressHolder getFirstAddress();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.AddressList#getFirstAddress <em>First Address</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>First Address</em>' containment reference.
+ * @see #getFirstAddress()
+ * @generated
+ */
+ void setFirstAddress(FirstAddressHolder value);
+
+ /**
+ * Returns the value of the '<em><b>Second Address</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.Address}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Second Address</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Second Address</em>' reference list.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage#getAddressList_SecondAddress()
+ * @model type="org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.Address" required="true"
+ * extendedMetaData="kind='element' name='secondAddress'"
+ * @generated
+ */
+ EList getSecondAddress();
+
+} // AddressList
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/DistrictUKAddress.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/DistrictUKAddress.java
new file mode 100644
index 000000000..0d066905c
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/DistrictUKAddress.java
@@ -0,0 +1,81 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DistrictUKAddress.java,v 1.1 2006/07/11 16:56:56 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>District UK Address</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.DistrictUKAddress#getDistrict <em>District</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage#getDistrictUKAddress()
+ * @model extendedMetaData="name='DistrictUKAddress' kind='elementOnly'"
+ * @generated
+ */
+public interface DistrictUKAddress extends UKAddress{
+ /**
+ * Returns the value of the '<em><b>District</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>District</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>District</em>' attribute.
+ * @see #isSetDistrict()
+ * @see #unsetDistrict()
+ * @see #setDistrict(String)
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage#getDistrictUKAddress_District()
+ * @model unique="false" unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * extendedMetaData="kind='element' name='district'"
+ * @generated
+ */
+ String getDistrict();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.DistrictUKAddress#getDistrict <em>District</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>District</em>' attribute.
+ * @see #isSetDistrict()
+ * @see #unsetDistrict()
+ * @see #getDistrict()
+ * @generated
+ */
+ void setDistrict(String value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.DistrictUKAddress#getDistrict <em>District</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetDistrict()
+ * @see #getDistrict()
+ * @see #setDistrict(String)
+ * @generated
+ */
+ void unsetDistrict();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.DistrictUKAddress#getDistrict <em>District</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>District</em>' attribute is set.
+ * @see #unsetDistrict()
+ * @see #getDistrict()
+ * @see #setDistrict(String)
+ * @generated
+ */
+ boolean isSetDistrict();
+
+} // DistrictUKAddress
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/ExtensionFactory.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/ExtensionFactory.java
new file mode 100644
index 000000000..d92986671
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/ExtensionFactory.java
@@ -0,0 +1,91 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ExtensionFactory.java,v 1.1 2006/07/11 16:56:56 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension;
+
+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.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage
+ * @generated
+ */
+public interface ExtensionFactory extends EFactory{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ExtensionFactory eINSTANCE = new org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.ExtensionFactoryImpl();
+
+ /**
+ * Returns a new object of class '<em>Address List</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Address List</em>'.
+ * @generated
+ */
+ AddressList createAddressList();
+
+ /**
+ * Returns a new object of class '<em>District UK Address</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>District UK Address</em>'.
+ * @generated
+ */
+ DistrictUKAddress createDistrictUKAddress();
+
+ /**
+ * Returns a new object of class '<em>First Address Holder</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>First Address Holder</em>'.
+ * @generated
+ */
+ FirstAddressHolder createFirstAddressHolder();
+
+ /**
+ * Returns a new object of class '<em>International Price</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>International Price</em>'.
+ * @generated
+ */
+ InternationalPrice createInternationalPrice();
+
+ /**
+ * Returns a new object of class '<em>UK Address</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>UK Address</em>'.
+ * @generated
+ */
+ UKAddress createUKAddress();
+
+ /**
+ * Returns a new object of class '<em>US Address</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>US Address</em>'.
+ * @generated
+ */
+ USAddress createUSAddress();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ ExtensionPackage getExtensionPackage();
+
+} //ExtensionFactory
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/ExtensionPackage.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/ExtensionPackage.java
new file mode 100644
index 000000000..2904062d0
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/ExtensionPackage.java
@@ -0,0 +1,742 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ExtensionPackage.java,v 1.1 2006/07/11 16:56:56 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+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 enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface ExtensionPackage extends EPackage{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "extension";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/emf/teneo/store/test/emf/schemaconstructs/extension";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "extension";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ExtensionPackage eINSTANCE = org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.ExtensionPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.AddressImpl <em>Address</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.AddressImpl
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.ExtensionPackageImpl#getAddress()
+ * @generated
+ */
+ int ADDRESS = 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADDRESS__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Street</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADDRESS__STREET = 1;
+
+ /**
+ * The feature id for the '<em><b>City</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADDRESS__CITY = 2;
+
+ /**
+ * The number of structural features of the the '<em>Address</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADDRESS_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.AddressListImpl <em>Address List</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.AddressListImpl
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.ExtensionPackageImpl#getAddressList()
+ * @generated
+ */
+ int ADDRESS_LIST = 1;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADDRESS_LIST__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>First Address</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADDRESS_LIST__FIRST_ADDRESS = 1;
+
+ /**
+ * The feature id for the '<em><b>Second Address</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADDRESS_LIST__SECOND_ADDRESS = 2;
+
+ /**
+ * The number of structural features of the the '<em>Address List</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADDRESS_LIST_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.FirstAddressHolderImpl <em>First Address Holder</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.FirstAddressHolderImpl
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.ExtensionPackageImpl#getFirstAddressHolder()
+ * @generated
+ */
+ int FIRST_ADDRESS_HOLDER = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.InternationalPriceImpl <em>International Price</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.InternationalPriceImpl
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.ExtensionPackageImpl#getInternationalPrice()
+ * @generated
+ */
+ int INTERNATIONAL_PRICE = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.UKAddressImpl <em>UK Address</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.UKAddressImpl
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.ExtensionPackageImpl#getUKAddress()
+ * @generated
+ */
+ int UK_ADDRESS = 5;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UK_ADDRESS__NAME = ADDRESS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Street</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UK_ADDRESS__STREET = ADDRESS__STREET;
+
+ /**
+ * The feature id for the '<em><b>City</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UK_ADDRESS__CITY = ADDRESS__CITY;
+
+ /**
+ * The feature id for the '<em><b>Postcode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UK_ADDRESS__POSTCODE = ADDRESS_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Export Code</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UK_ADDRESS__EXPORT_CODE = ADDRESS_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the the '<em>UK Address</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UK_ADDRESS_FEATURE_COUNT = ADDRESS_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.DistrictUKAddressImpl <em>District UK Address</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.DistrictUKAddressImpl
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.ExtensionPackageImpl#getDistrictUKAddress()
+ * @generated
+ */
+ int DISTRICT_UK_ADDRESS = 2;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRICT_UK_ADDRESS__NAME = UK_ADDRESS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Street</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRICT_UK_ADDRESS__STREET = UK_ADDRESS__STREET;
+
+ /**
+ * The feature id for the '<em><b>City</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRICT_UK_ADDRESS__CITY = UK_ADDRESS__CITY;
+
+ /**
+ * The feature id for the '<em><b>Postcode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRICT_UK_ADDRESS__POSTCODE = UK_ADDRESS__POSTCODE;
+
+ /**
+ * The feature id for the '<em><b>Export Code</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRICT_UK_ADDRESS__EXPORT_CODE = UK_ADDRESS__EXPORT_CODE;
+
+ /**
+ * The feature id for the '<em><b>District</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRICT_UK_ADDRESS__DISTRICT = UK_ADDRESS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the the '<em>District UK Address</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRICT_UK_ADDRESS_FEATURE_COUNT = UK_ADDRESS_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FIRST_ADDRESS_HOLDER__VALUE = 0;
+
+ /**
+ * The number of structural features of the the '<em>First Address Holder</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FIRST_ADDRESS_HOLDER_FEATURE_COUNT = 1;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTERNATIONAL_PRICE__VALUE = 0;
+
+ /**
+ * The feature id for the '<em><b>Currency</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTERNATIONAL_PRICE__CURRENCY = 1;
+
+ /**
+ * The number of structural features of the the '<em>International Price</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INTERNATIONAL_PRICE_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.USAddressImpl <em>US Address</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.USAddressImpl
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.ExtensionPackageImpl#getUSAddress()
+ * @generated
+ */
+ int US_ADDRESS = 6;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int US_ADDRESS__NAME = ADDRESS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Street</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int US_ADDRESS__STREET = ADDRESS__STREET;
+
+ /**
+ * The feature id for the '<em><b>City</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int US_ADDRESS__CITY = ADDRESS__CITY;
+
+ /**
+ * The feature id for the '<em><b>State</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int US_ADDRESS__STATE = ADDRESS_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Zip</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int US_ADDRESS__ZIP = ADDRESS_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the the '<em>US Address</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int US_ADDRESS_FEATURE_COUNT = ADDRESS_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USState <em>US State</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USState
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.ExtensionPackageImpl#getUSState()
+ * @generated
+ */
+ int US_STATE = 7;
+
+ /**
+ * The meta object id for the '<em>Postcode</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.ExtensionPackageImpl#getPostcode()
+ * @generated
+ */
+ int POSTCODE = 8;
+
+ /**
+ * The meta object id for the '<em>UK Postcode</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.ExtensionPackageImpl#getUKPostcode()
+ * @generated
+ */
+ int UK_POSTCODE = 9;
+
+ /**
+ * The meta object id for the '<em>US State Object</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USState
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.ExtensionPackageImpl#getUSStateObject()
+ * @generated
+ */
+ int US_STATE_OBJECT = 10;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.Address <em>Address</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Address</em>'.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.Address
+ * @generated
+ */
+ EClass getAddress();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.Address#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.Address#getName()
+ * @see #getAddress()
+ * @generated
+ */
+ EAttribute getAddress_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.Address#getStreet <em>Street</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Street</em>'.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.Address#getStreet()
+ * @see #getAddress()
+ * @generated
+ */
+ EAttribute getAddress_Street();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.Address#getCity <em>City</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>City</em>'.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.Address#getCity()
+ * @see #getAddress()
+ * @generated
+ */
+ EAttribute getAddress_City();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.AddressList <em>Address List</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Address List</em>'.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.AddressList
+ * @generated
+ */
+ EClass getAddressList();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.AddressList#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.AddressList#getName()
+ * @see #getAddressList()
+ * @generated
+ */
+ EAttribute getAddressList_Name();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.AddressList#getFirstAddress <em>First Address</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>First Address</em>'.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.AddressList#getFirstAddress()
+ * @see #getAddressList()
+ * @generated
+ */
+ EReference getAddressList_FirstAddress();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.AddressList#getSecondAddress <em>Second Address</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Second Address</em>'.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.AddressList#getSecondAddress()
+ * @see #getAddressList()
+ * @generated
+ */
+ EReference getAddressList_SecondAddress();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.DistrictUKAddress <em>District UK Address</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>District UK Address</em>'.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.DistrictUKAddress
+ * @generated
+ */
+ EClass getDistrictUKAddress();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.DistrictUKAddress#getDistrict <em>District</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>District</em>'.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.DistrictUKAddress#getDistrict()
+ * @see #getDistrictUKAddress()
+ * @generated
+ */
+ EAttribute getDistrictUKAddress_District();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.FirstAddressHolder <em>First Address Holder</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>First Address Holder</em>'.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.FirstAddressHolder
+ * @generated
+ */
+ EClass getFirstAddressHolder();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.FirstAddressHolder#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Value</em>'.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.FirstAddressHolder#getValue()
+ * @see #getFirstAddressHolder()
+ * @generated
+ */
+ EReference getFirstAddressHolder_Value();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.InternationalPrice <em>International Price</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>International Price</em>'.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.InternationalPrice
+ * @generated
+ */
+ EClass getInternationalPrice();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.InternationalPrice#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.InternationalPrice#getValue()
+ * @see #getInternationalPrice()
+ * @generated
+ */
+ EAttribute getInternationalPrice_Value();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.InternationalPrice#getCurrency <em>Currency</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Currency</em>'.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.InternationalPrice#getCurrency()
+ * @see #getInternationalPrice()
+ * @generated
+ */
+ EAttribute getInternationalPrice_Currency();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.UKAddress <em>UK Address</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>UK Address</em>'.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.UKAddress
+ * @generated
+ */
+ EClass getUKAddress();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.UKAddress#getPostcode <em>Postcode</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Postcode</em>'.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.UKAddress#getPostcode()
+ * @see #getUKAddress()
+ * @generated
+ */
+ EAttribute getUKAddress_Postcode();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.UKAddress#getExportCode <em>Export Code</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Export Code</em>'.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.UKAddress#getExportCode()
+ * @see #getUKAddress()
+ * @generated
+ */
+ EAttribute getUKAddress_ExportCode();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USAddress <em>US Address</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>US Address</em>'.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USAddress
+ * @generated
+ */
+ EClass getUSAddress();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USAddress#getState <em>State</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>State</em>'.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USAddress#getState()
+ * @see #getUSAddress()
+ * @generated
+ */
+ EAttribute getUSAddress_State();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USAddress#getZip <em>Zip</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Zip</em>'.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USAddress#getZip()
+ * @see #getUSAddress()
+ * @generated
+ */
+ EAttribute getUSAddress_Zip();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USState <em>US State</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>US State</em>'.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USState
+ * @generated
+ */
+ EEnum getUSState();
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.String <em>Postcode</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Postcode</em>'.
+ * @see java.lang.String
+ * @model instanceClass="java.lang.String"
+ * extendedMetaData="name='Postcode' baseType='http://www.eclipse.org/emf/2003/XMLType#string' length='7'"
+ * @generated
+ */
+ EDataType getPostcode();
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.String <em>UK Postcode</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>UK Postcode</em>'.
+ * @see java.lang.String
+ * @model instanceClass="java.lang.String"
+ * extendedMetaData="name='UKPostcode' baseType='Postcode' pattern='[A-Z]{2}\\d\\s\\d[A-Z]{2}'"
+ * @generated
+ */
+ EDataType getUKPostcode();
+
+ /**
+ * Returns the meta object for data type '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USState <em>US State Object</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>US State Object</em>'.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USState
+ * @model instanceClass="org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USState"
+ * extendedMetaData="name='USState:Object' baseType='USState'"
+ * @generated
+ */
+ EDataType getUSStateObject();
+
+ /**
+ * 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
+ */
+ ExtensionFactory getExtensionFactory();
+
+} //ExtensionPackage
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/FirstAddressHolder.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/FirstAddressHolder.java
new file mode 100644
index 000000000..44ec28ab1
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/FirstAddressHolder.java
@@ -0,0 +1,47 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FirstAddressHolder.java,v 1.1 2006/07/11 16:56:56 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>First Address Holder</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.FirstAddressHolder#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage#getFirstAddressHolder()
+ * @model extendedMetaData="name='firstAddress:holder' kind='simple'"
+ * @generated
+ */
+public interface FirstAddressHolder extends EObject {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.Address}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' reference list.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage#getFirstAddressHolder_Value()
+ * @model type="org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.Address" resolveProxies="false"
+ * extendedMetaData="name=':0' kind='simple'"
+ * @generated
+ */
+ EList getValue();
+
+} // FirstAddressHolder
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/InternationalPrice.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/InternationalPrice.java
new file mode 100644
index 000000000..a76b6f966
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/InternationalPrice.java
@@ -0,0 +1,85 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: InternationalPrice.java,v 1.1 2006/07/11 16:56:56 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension;
+
+import java.math.BigDecimal;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>International Price</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.InternationalPrice#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.InternationalPrice#getCurrency <em>Currency</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage#getInternationalPrice()
+ * @model extendedMetaData="name='internationalPrice' kind='simple'"
+ * @generated
+ */
+public interface InternationalPrice extends EObject {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(BigDecimal)
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage#getInternationalPrice_Value()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.Decimal"
+ * extendedMetaData="name=':0' kind='simple'"
+ * @generated
+ */
+ BigDecimal getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.InternationalPrice#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(BigDecimal value);
+
+ /**
+ * Returns the value of the '<em><b>Currency</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Currency</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Currency</em>' attribute.
+ * @see #setCurrency(String)
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage#getInternationalPrice_Currency()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String"
+ * extendedMetaData="kind='attribute' name='currency'"
+ * @generated
+ */
+ String getCurrency();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.InternationalPrice#getCurrency <em>Currency</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Currency</em>' attribute.
+ * @see #getCurrency()
+ * @generated
+ */
+ void setCurrency(String value);
+
+} // InternationalPrice
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/UKAddress.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/UKAddress.java
new file mode 100644
index 000000000..c921b7ddb
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/UKAddress.java
@@ -0,0 +1,111 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: UKAddress.java,v 1.1 2006/07/11 16:56:57 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension;
+
+import java.math.BigInteger;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>UK Address</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.UKAddress#getPostcode <em>Postcode</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.UKAddress#getExportCode <em>Export Code</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage#getUKAddress()
+ * @model extendedMetaData="name='UKAddress' kind='elementOnly'"
+ * @generated
+ */
+public interface UKAddress extends Address {
+ /**
+ * Returns the value of the '<em><b>Postcode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Postcode</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Postcode</em>' attribute.
+ * @see #setPostcode(String)
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage#getUKAddress_Postcode()
+ * @model unique="false" dataType="org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.UKPostcode" required="true"
+ * extendedMetaData="kind='element' name='postcode'"
+ * @generated
+ */
+ String getPostcode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.UKAddress#getPostcode <em>Postcode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Postcode</em>' attribute.
+ * @see #getPostcode()
+ * @generated
+ */
+ void setPostcode(String value);
+
+ /**
+ * Returns the value of the '<em><b>Export Code</b></em>' attribute.
+ * The default value is <code>"1"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Export Code</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Export Code</em>' attribute.
+ * @see #isSetExportCode()
+ * @see #unsetExportCode()
+ * @see #setExportCode(BigInteger)
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage#getUKAddress_ExportCode()
+ * @model default="1" unique="false" unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.PositiveInteger"
+ * extendedMetaData="kind='attribute' name='exportCode'"
+ * @generated
+ */
+ BigInteger getExportCode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.UKAddress#getExportCode <em>Export Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Export Code</em>' attribute.
+ * @see #isSetExportCode()
+ * @see #unsetExportCode()
+ * @see #getExportCode()
+ * @generated
+ */
+ void setExportCode(BigInteger value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.UKAddress#getExportCode <em>Export Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetExportCode()
+ * @see #getExportCode()
+ * @see #setExportCode(BigInteger)
+ * @generated
+ */
+ void unsetExportCode();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.UKAddress#getExportCode <em>Export Code</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Export Code</em>' attribute is set.
+ * @see #unsetExportCode()
+ * @see #getExportCode()
+ * @see #setExportCode(BigInteger)
+ * @generated
+ */
+ boolean isSetExportCode();
+
+} // UKAddress
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/USAddress.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/USAddress.java
new file mode 100644
index 000000000..aa7836514
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/USAddress.java
@@ -0,0 +1,141 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: USAddress.java,v 1.1 2006/07/11 16:56:57 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension;
+
+import java.math.BigInteger;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>US Address</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USAddress#getState <em>State</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USAddress#getZip <em>Zip</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage#getUSAddress()
+ * @model extendedMetaData="name='USAddress' kind='elementOnly'"
+ * @generated
+ */
+public interface USAddress extends Address{
+ /**
+ * Returns the value of the '<em><b>State</b></em>' attribute.
+ * The default value is <code>"AK"</code>.
+ * The literals are from the enumeration {@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USState}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>State</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>State</em>' attribute.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USState
+ * @see #isSetState()
+ * @see #unsetState()
+ * @see #setState(USState)
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage#getUSAddress_State()
+ * @model default="AK" unique="false" unsettable="true" required="true"
+ * extendedMetaData="kind='element' name='state'"
+ * @generated
+ */
+ USState getState();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USAddress#getState <em>State</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>State</em>' attribute.
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USState
+ * @see #isSetState()
+ * @see #unsetState()
+ * @see #getState()
+ * @generated
+ */
+ void setState(USState value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USAddress#getState <em>State</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetState()
+ * @see #getState()
+ * @see #setState(USState)
+ * @generated
+ */
+ void unsetState();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USAddress#getState <em>State</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>State</em>' attribute is set.
+ * @see #unsetState()
+ * @see #getState()
+ * @see #setState(USState)
+ * @generated
+ */
+ boolean isSetState();
+
+ /**
+ * Returns the value of the '<em><b>Zip</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Zip</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Zip</em>' attribute.
+ * @see #isSetZip()
+ * @see #unsetZip()
+ * @see #setZip(BigInteger)
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage#getUSAddress_Zip()
+ * @model unique="false" unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.PositiveInteger" required="true"
+ * extendedMetaData="kind='element' name='zip'"
+ * @generated
+ */
+ BigInteger getZip();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USAddress#getZip <em>Zip</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Zip</em>' attribute.
+ * @see #isSetZip()
+ * @see #unsetZip()
+ * @see #getZip()
+ * @generated
+ */
+ void setZip(BigInteger value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USAddress#getZip <em>Zip</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetZip()
+ * @see #getZip()
+ * @see #setZip(BigInteger)
+ * @generated
+ */
+ void unsetZip();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USAddress#getZip <em>Zip</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Zip</em>' attribute is set.
+ * @see #unsetZip()
+ * @see #getZip()
+ * @see #setZip(BigInteger)
+ * @generated
+ */
+ boolean isSetZip();
+
+} // USAddress
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/USState.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/USState.java
new file mode 100644
index 000000000..f32aa7ab9
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/USState.java
@@ -0,0 +1,162 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: USState.java,v 1.1 2006/07/11 16:56:57 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>US State</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage#getUSState()
+ * @model
+ * @generated
+ */
+public final class USState extends AbstractEnumerator {
+ /**
+ * The '<em><b>AK</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>AK</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #AK_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int AK = 0;
+
+ /**
+ * The '<em><b>AL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>AL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #AL_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int AL = 1;
+
+ /**
+ * The '<em><b>AR</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>AR</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #AR_LITERAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int AR = 2;
+
+ /**
+ * The '<em><b>AK</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #AK
+ * @generated
+ * @ordered
+ */
+ public static final USState AK_LITERAL = new USState(AK, "AK");
+
+ /**
+ * The '<em><b>AL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #AL
+ * @generated
+ * @ordered
+ */
+ public static final USState AL_LITERAL = new USState(AL, "AL");
+
+ /**
+ * The '<em><b>AR</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #AR
+ * @generated
+ * @ordered
+ */
+ public static final USState AR_LITERAL = new USState(AR, "AR");
+
+ /**
+ * An array of all the '<em><b>US State</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final USState[] VALUES_ARRAY =
+ new USState[] {
+ AK_LITERAL,
+ AL_LITERAL,
+ AR_LITERAL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>US State</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>US State</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static USState get(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ USState result = VALUES_ARRAY[i];
+ if (result.toString().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>US State</b></em>' literal with the specified value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static USState get(int value) {
+ switch (value) {
+ case AK: return AK_LITERAL;
+ case AL: return AL_LITERAL;
+ case AR: return AR_LITERAL;
+ }
+ return null;
+ }
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private USState(int value, String name) {
+ super(value, name);
+ }
+
+} //USState
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/AddressImpl.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/AddressImpl.java
new file mode 100644
index 000000000..9e0cd90cb
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/AddressImpl.java
@@ -0,0 +1,270 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AddressImpl.java,v 1.1 2006/07/11 16:56:59 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.Address;
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Address</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.AddressImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.AddressImpl#getStreet <em>Street</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.AddressImpl#getCity <em>City</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class AddressImpl extends EObjectImpl implements Address {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getStreet() <em>Street</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStreet()
+ * @generated
+ * @ordered
+ */
+ protected static final String STREET_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getStreet() <em>Street</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStreet()
+ * @generated
+ * @ordered
+ */
+ protected String street = STREET_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCity() <em>City</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCity()
+ * @generated
+ * @ordered
+ */
+ protected static final String CITY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCity() <em>City</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCity()
+ * @generated
+ * @ordered
+ */
+ protected String city = CITY_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AddressImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ExtensionPackage.eINSTANCE.getAddress();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ExtensionPackage.ADDRESS__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getStreet() {
+ return street;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStreet(String newStreet) {
+ String oldStreet = street;
+ street = newStreet;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ExtensionPackage.ADDRESS__STREET, oldStreet, street));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCity() {
+ return city;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCity(String newCity) {
+ String oldCity = city;
+ city = newCity;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ExtensionPackage.ADDRESS__CITY, oldCity, city));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(EStructuralFeature eFeature, boolean resolve) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.ADDRESS__NAME:
+ return getName();
+ case ExtensionPackage.ADDRESS__STREET:
+ return getStreet();
+ case ExtensionPackage.ADDRESS__CITY:
+ return getCity();
+ }
+ return eDynamicGet(eFeature, resolve);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(EStructuralFeature eFeature, Object newValue) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.ADDRESS__NAME:
+ setName((String)newValue);
+ return;
+ case ExtensionPackage.ADDRESS__STREET:
+ setStreet((String)newValue);
+ return;
+ case ExtensionPackage.ADDRESS__CITY:
+ setCity((String)newValue);
+ return;
+ }
+ eDynamicSet(eFeature, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.ADDRESS__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case ExtensionPackage.ADDRESS__STREET:
+ setStreet(STREET_EDEFAULT);
+ return;
+ case ExtensionPackage.ADDRESS__CITY:
+ setCity(CITY_EDEFAULT);
+ return;
+ }
+ eDynamicUnset(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.ADDRESS__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case ExtensionPackage.ADDRESS__STREET:
+ return STREET_EDEFAULT == null ? street != null : !STREET_EDEFAULT.equals(street);
+ case ExtensionPackage.ADDRESS__CITY:
+ return CITY_EDEFAULT == null ? city != null : !CITY_EDEFAULT.equals(city);
+ }
+ return eDynamicIsSet(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", street: ");
+ result.append(street);
+ result.append(", city: ");
+ result.append(city);
+ result.append(')');
+ return result.toString();
+ }
+
+} //AddressImpl
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/AddressListImpl.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/AddressListImpl.java
new file mode 100644
index 000000000..71c85f0ff
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/AddressListImpl.java
@@ -0,0 +1,287 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: AddressListImpl.java,v 1.1 2006/07/11 16:56:59 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.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.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.teneo.samples.emf.schemaconstructs.extension.Address;
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.AddressList;
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage;
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.FirstAddressHolder;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Address List</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.AddressListImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.AddressListImpl#getFirstAddress <em>First Address</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.AddressListImpl#getSecondAddress <em>Second Address</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AddressListImpl extends EObjectImpl implements AddressList {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getFirstAddress() <em>First Address</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFirstAddress()
+ * @generated
+ * @ordered
+ */
+ protected FirstAddressHolder firstAddress = null;
+
+ /**
+ * The cached value of the '{@link #getSecondAddress() <em>Second Address</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSecondAddress()
+ * @generated
+ * @ordered
+ */
+ protected EList secondAddress = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AddressListImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ExtensionPackage.eINSTANCE.getAddressList();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ExtensionPackage.ADDRESS_LIST__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FirstAddressHolder getFirstAddress() {
+ return firstAddress;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetFirstAddress(FirstAddressHolder newFirstAddress, NotificationChain msgs) {
+ FirstAddressHolder oldFirstAddress = firstAddress;
+ firstAddress = newFirstAddress;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExtensionPackage.ADDRESS_LIST__FIRST_ADDRESS, oldFirstAddress, newFirstAddress);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFirstAddress(FirstAddressHolder newFirstAddress) {
+ if (newFirstAddress != firstAddress) {
+ NotificationChain msgs = null;
+ if (firstAddress != null)
+ msgs = ((InternalEObject)firstAddress).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ExtensionPackage.ADDRESS_LIST__FIRST_ADDRESS, null, msgs);
+ if (newFirstAddress != null)
+ msgs = ((InternalEObject)newFirstAddress).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ExtensionPackage.ADDRESS_LIST__FIRST_ADDRESS, null, msgs);
+ msgs = basicSetFirstAddress(newFirstAddress, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ExtensionPackage.ADDRESS_LIST__FIRST_ADDRESS, newFirstAddress, newFirstAddress));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getSecondAddress() {
+ if (secondAddress == null) {
+ secondAddress = new EObjectResolvingEList(Address.class, this, ExtensionPackage.ADDRESS_LIST__SECOND_ADDRESS);
+ }
+ return secondAddress;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) {
+ if (featureID >= 0) {
+ switch (eDerivedStructuralFeatureID(featureID, baseClass)) {
+ case ExtensionPackage.ADDRESS_LIST__FIRST_ADDRESS:
+ return basicSetFirstAddress(null, msgs);
+ default:
+ return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs);
+ }
+ }
+ return eBasicSetContainer(null, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(EStructuralFeature eFeature, boolean resolve) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.ADDRESS_LIST__NAME:
+ return getName();
+ case ExtensionPackage.ADDRESS_LIST__FIRST_ADDRESS:
+ return getFirstAddress();
+ case ExtensionPackage.ADDRESS_LIST__SECOND_ADDRESS:
+ return getSecondAddress();
+ }
+ return eDynamicGet(eFeature, resolve);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(EStructuralFeature eFeature, Object newValue) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.ADDRESS_LIST__NAME:
+ setName((String)newValue);
+ return;
+ case ExtensionPackage.ADDRESS_LIST__FIRST_ADDRESS:
+ setFirstAddress((FirstAddressHolder)newValue);
+ return;
+ case ExtensionPackage.ADDRESS_LIST__SECOND_ADDRESS:
+ getSecondAddress().clear();
+ getSecondAddress().addAll((Collection)newValue);
+ return;
+ }
+ eDynamicSet(eFeature, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.ADDRESS_LIST__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case ExtensionPackage.ADDRESS_LIST__FIRST_ADDRESS:
+ setFirstAddress((FirstAddressHolder)null);
+ return;
+ case ExtensionPackage.ADDRESS_LIST__SECOND_ADDRESS:
+ getSecondAddress().clear();
+ return;
+ }
+ eDynamicUnset(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.ADDRESS_LIST__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case ExtensionPackage.ADDRESS_LIST__FIRST_ADDRESS:
+ return firstAddress != null;
+ case ExtensionPackage.ADDRESS_LIST__SECOND_ADDRESS:
+ return secondAddress != null && !secondAddress.isEmpty();
+ }
+ return eDynamicIsSet(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //AddressListImpl
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/DistrictUKAddressImpl.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/DistrictUKAddressImpl.java
new file mode 100644
index 000000000..d5ed45876
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/DistrictUKAddressImpl.java
@@ -0,0 +1,247 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: DistrictUKAddressImpl.java,v 1.1 2006/07/11 16:56:59 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl;
+
+import java.math.BigInteger;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.DistrictUKAddress;
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>District UK Address</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.DistrictUKAddressImpl#getDistrict <em>District</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DistrictUKAddressImpl extends UKAddressImpl implements DistrictUKAddress {
+ /**
+ * The default value of the '{@link #getDistrict() <em>District</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDistrict()
+ * @generated
+ * @ordered
+ */
+ protected static final String DISTRICT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDistrict() <em>District</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDistrict()
+ * @generated
+ * @ordered
+ */
+ protected String district = DISTRICT_EDEFAULT;
+
+ /**
+ * This is true if the District attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean districtESet = false;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DistrictUKAddressImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ExtensionPackage.eINSTANCE.getDistrictUKAddress();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDistrict() {
+ return district;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDistrict(String newDistrict) {
+ String oldDistrict = district;
+ district = newDistrict;
+ boolean oldDistrictESet = districtESet;
+ districtESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ExtensionPackage.DISTRICT_UK_ADDRESS__DISTRICT, oldDistrict, district, !oldDistrictESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetDistrict() {
+ String oldDistrict = district;
+ boolean oldDistrictESet = districtESet;
+ district = DISTRICT_EDEFAULT;
+ districtESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, ExtensionPackage.DISTRICT_UK_ADDRESS__DISTRICT, oldDistrict, DISTRICT_EDEFAULT, oldDistrictESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetDistrict() {
+ return districtESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(EStructuralFeature eFeature, boolean resolve) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__NAME:
+ return getName();
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__STREET:
+ return getStreet();
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__CITY:
+ return getCity();
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__POSTCODE:
+ return getPostcode();
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__EXPORT_CODE:
+ return getExportCode();
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__DISTRICT:
+ return getDistrict();
+ }
+ return eDynamicGet(eFeature, resolve);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(EStructuralFeature eFeature, Object newValue) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__NAME:
+ setName((String)newValue);
+ return;
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__STREET:
+ setStreet((String)newValue);
+ return;
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__CITY:
+ setCity((String)newValue);
+ return;
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__POSTCODE:
+ setPostcode((String)newValue);
+ return;
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__EXPORT_CODE:
+ setExportCode((BigInteger)newValue);
+ return;
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__DISTRICT:
+ setDistrict((String)newValue);
+ return;
+ }
+ eDynamicSet(eFeature, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__STREET:
+ setStreet(STREET_EDEFAULT);
+ return;
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__CITY:
+ setCity(CITY_EDEFAULT);
+ return;
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__POSTCODE:
+ setPostcode(POSTCODE_EDEFAULT);
+ return;
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__EXPORT_CODE:
+ unsetExportCode();
+ return;
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__DISTRICT:
+ unsetDistrict();
+ return;
+ }
+ eDynamicUnset(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__STREET:
+ return STREET_EDEFAULT == null ? street != null : !STREET_EDEFAULT.equals(street);
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__CITY:
+ return CITY_EDEFAULT == null ? city != null : !CITY_EDEFAULT.equals(city);
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__POSTCODE:
+ return POSTCODE_EDEFAULT == null ? postcode != null : !POSTCODE_EDEFAULT.equals(postcode);
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__EXPORT_CODE:
+ return isSetExportCode();
+ case ExtensionPackage.DISTRICT_UK_ADDRESS__DISTRICT:
+ return isSetDistrict();
+ }
+ return eDynamicIsSet(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (district: ");
+ if (districtESet) result.append(district); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //DistrictUKAddressImpl
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/ExtensionFactoryImpl.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/ExtensionFactoryImpl.java
new file mode 100644
index 000000000..fe49599f0
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/ExtensionFactoryImpl.java
@@ -0,0 +1,231 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ExtensionFactoryImpl.java,v 1.1 2006/07/11 16:56:59 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.xml.type.XMLTypeFactory;
+import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
+
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ExtensionFactoryImpl extends EFactoryImpl implements ExtensionFactory {
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExtensionFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case ExtensionPackage.ADDRESS_LIST: return createAddressList();
+ case ExtensionPackage.DISTRICT_UK_ADDRESS: return createDistrictUKAddress();
+ case ExtensionPackage.FIRST_ADDRESS_HOLDER: return createFirstAddressHolder();
+ case ExtensionPackage.INTERNATIONAL_PRICE: return createInternationalPrice();
+ case ExtensionPackage.UK_ADDRESS: return createUKAddress();
+ case ExtensionPackage.US_ADDRESS: return createUSAddress();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case ExtensionPackage.US_STATE: {
+ USState result = USState.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+ case ExtensionPackage.POSTCODE:
+ return createPostcodeFromString(eDataType, initialValue);
+ case ExtensionPackage.UK_POSTCODE:
+ return createUKPostcodeFromString(eDataType, initialValue);
+ case ExtensionPackage.US_STATE_OBJECT:
+ return createUSStateObjectFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case ExtensionPackage.US_STATE:
+ return instanceValue == null ? null : instanceValue.toString();
+ case ExtensionPackage.POSTCODE:
+ return convertPostcodeToString(eDataType, instanceValue);
+ case ExtensionPackage.UK_POSTCODE:
+ return convertUKPostcodeToString(eDataType, instanceValue);
+ case ExtensionPackage.US_STATE_OBJECT:
+ return convertUSStateObjectToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AddressList createAddressList() {
+ AddressListImpl addressList = new AddressListImpl();
+ return addressList;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DistrictUKAddress createDistrictUKAddress() {
+ DistrictUKAddressImpl districtUKAddress = new DistrictUKAddressImpl();
+ return districtUKAddress;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FirstAddressHolder createFirstAddressHolder() {
+ FirstAddressHolderImpl firstAddressHolder = new FirstAddressHolderImpl();
+ return firstAddressHolder;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InternationalPrice createInternationalPrice() {
+ InternationalPriceImpl internationalPrice = new InternationalPriceImpl();
+ return internationalPrice;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UKAddress createUKAddress() {
+ UKAddressImpl ukAddress = new UKAddressImpl();
+ return ukAddress;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public USAddress createUSAddress() {
+ USAddressImpl usAddress = new USAddressImpl();
+ return usAddress;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String createPostcodeFromString(EDataType eDataType, String initialValue) {
+ return (String)XMLTypeFactory.eINSTANCE.createFromString(XMLTypePackage.eINSTANCE.getString(), initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertPostcodeToString(EDataType eDataType, Object instanceValue) {
+ return XMLTypeFactory.eINSTANCE.convertToString(XMLTypePackage.eINSTANCE.getString(), instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String createUKPostcodeFromString(EDataType eDataType, String initialValue) {
+ return (String)ExtensionFactory.eINSTANCE.createFromString(ExtensionPackage.eINSTANCE.getPostcode(), initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertUKPostcodeToString(EDataType eDataType, Object instanceValue) {
+ return ExtensionFactory.eINSTANCE.convertToString(ExtensionPackage.eINSTANCE.getPostcode(), instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public USState createUSStateObjectFromString(EDataType eDataType, String initialValue) {
+ return (USState)ExtensionFactory.eINSTANCE.createFromString(ExtensionPackage.eINSTANCE.getUSState(), initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertUSStateObjectToString(EDataType eDataType, Object instanceValue) {
+ return ExtensionFactory.eINSTANCE.convertToString(ExtensionPackage.eINSTANCE.getUSState(), instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExtensionPackage getExtensionPackage() {
+ return (ExtensionPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ public static ExtensionPackage getPackage() {
+ return ExtensionPackage.eINSTANCE;
+ }
+
+} //ExtensionFactoryImpl
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/ExtensionPackageImpl.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/ExtensionPackageImpl.java
new file mode 100644
index 000000000..ebdb6ffa6
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/ExtensionPackageImpl.java
@@ -0,0 +1,755 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ExtensionPackageImpl.java,v 1.1 2006/07/11 16:56:59 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+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 org.eclipse.emf.ecore.xml.type.XMLTypePackage;
+
+import org.eclipse.emf.ecore.xml.type.impl.XMLTypePackageImpl;
+
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.Address;
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.AddressList;
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.DistrictUKAddress;
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionFactory;
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage;
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.FirstAddressHolder;
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.InternationalPrice;
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.UKAddress;
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USAddress;
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USState;
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.util.ExtensionValidator;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ExtensionPackageImpl extends EPackageImpl implements ExtensionPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass addressEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass addressListEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass districtUKAddressEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass firstAddressHolderEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass internationalPriceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass ukAddressEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass usAddressEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum usStateEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType postcodeEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType ukPostcodeEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType usStateObjectEDataType = 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.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private ExtensionPackageImpl() {
+ super(eNS_URI, ExtensionFactory.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. Simple
+ * dependencies are satisfied by calling this method on all
+ * dependent packages before doing anything else. This method drives
+ * initialization for interdependent packages directly, in parallel
+ * with this package, itself.
+ * <p>Of this package and its interdependencies, all packages which
+ * have not yet been registered by their URI values are first created
+ * and registered. The packages are then initialized in two steps:
+ * meta-model objects for all of the packages are created before any
+ * are initialized, since one package's meta-model objects may refer to
+ * those of another.
+ * <p>Invocation of this method will not affect any packages that have
+ * already been initialized.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static ExtensionPackage init() {
+ if (isInited) return (ExtensionPackage)EPackage.Registry.INSTANCE.getEPackage(ExtensionPackage.eNS_URI);
+
+ // Obtain or create and register package
+ ExtensionPackageImpl theExtensionPackage = (ExtensionPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof ExtensionPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new ExtensionPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ XMLTypePackageImpl.init();
+
+ // Create package meta-data objects
+ theExtensionPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theExtensionPackage.initializePackageContents();
+
+ // Register package validator
+ EValidator.Registry.INSTANCE.put
+ (theExtensionPackage,
+ new EValidator.Descriptor() {
+ public EValidator getEValidator() {
+ return ExtensionValidator.INSTANCE;
+ }
+ });
+
+ // Mark meta-data to indicate it can't be changed
+ theExtensionPackage.freeze();
+
+ return theExtensionPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAddress() {
+ return addressEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAddress_Name() {
+ return (EAttribute)addressEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAddress_Street() {
+ return (EAttribute)addressEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAddress_City() {
+ return (EAttribute)addressEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAddressList() {
+ return addressListEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAddressList_Name() {
+ return (EAttribute)addressListEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAddressList_FirstAddress() {
+ return (EReference)addressListEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAddressList_SecondAddress() {
+ return (EReference)addressListEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDistrictUKAddress() {
+ return districtUKAddressEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDistrictUKAddress_District() {
+ return (EAttribute)districtUKAddressEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFirstAddressHolder() {
+ return firstAddressHolderEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFirstAddressHolder_Value() {
+ return (EReference)firstAddressHolderEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInternationalPrice() {
+ return internationalPriceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getInternationalPrice_Value() {
+ return (EAttribute)internationalPriceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getInternationalPrice_Currency() {
+ return (EAttribute)internationalPriceEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getUKAddress() {
+ return ukAddressEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getUKAddress_Postcode() {
+ return (EAttribute)ukAddressEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getUKAddress_ExportCode() {
+ return (EAttribute)ukAddressEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getUSAddress() {
+ return usAddressEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getUSAddress_State() {
+ return (EAttribute)usAddressEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getUSAddress_Zip() {
+ return (EAttribute)usAddressEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getUSState() {
+ return usStateEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EDataType getPostcode() {
+ return postcodeEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EDataType getUKPostcode() {
+ return ukPostcodeEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EDataType getUSStateObject() {
+ return usStateObjectEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExtensionFactory getExtensionFactory() {
+ return (ExtensionFactory)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
+ addressEClass = createEClass(ADDRESS);
+ createEAttribute(addressEClass, ADDRESS__NAME);
+ createEAttribute(addressEClass, ADDRESS__STREET);
+ createEAttribute(addressEClass, ADDRESS__CITY);
+
+ addressListEClass = createEClass(ADDRESS_LIST);
+ createEAttribute(addressListEClass, ADDRESS_LIST__NAME);
+ createEReference(addressListEClass, ADDRESS_LIST__FIRST_ADDRESS);
+ createEReference(addressListEClass, ADDRESS_LIST__SECOND_ADDRESS);
+
+ districtUKAddressEClass = createEClass(DISTRICT_UK_ADDRESS);
+ createEAttribute(districtUKAddressEClass, DISTRICT_UK_ADDRESS__DISTRICT);
+
+ firstAddressHolderEClass = createEClass(FIRST_ADDRESS_HOLDER);
+ createEReference(firstAddressHolderEClass, FIRST_ADDRESS_HOLDER__VALUE);
+
+ internationalPriceEClass = createEClass(INTERNATIONAL_PRICE);
+ createEAttribute(internationalPriceEClass, INTERNATIONAL_PRICE__VALUE);
+ createEAttribute(internationalPriceEClass, INTERNATIONAL_PRICE__CURRENCY);
+
+ ukAddressEClass = createEClass(UK_ADDRESS);
+ createEAttribute(ukAddressEClass, UK_ADDRESS__POSTCODE);
+ createEAttribute(ukAddressEClass, UK_ADDRESS__EXPORT_CODE);
+
+ usAddressEClass = createEClass(US_ADDRESS);
+ createEAttribute(usAddressEClass, US_ADDRESS__STATE);
+ createEAttribute(usAddressEClass, US_ADDRESS__ZIP);
+
+ // Create enums
+ usStateEEnum = createEEnum(US_STATE);
+
+ // Create data types
+ postcodeEDataType = createEDataType(POSTCODE);
+ ukPostcodeEDataType = createEDataType(UK_POSTCODE);
+ usStateObjectEDataType = createEDataType(US_STATE_OBJECT);
+ }
+
+ /**
+ * <!-- 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
+ XMLTypePackageImpl theXMLTypePackage = (XMLTypePackageImpl)EPackage.Registry.INSTANCE.getEPackage(XMLTypePackage.eNS_URI);
+
+ // Add supertypes to classes
+ districtUKAddressEClass.getESuperTypes().add(this.getUKAddress());
+ ukAddressEClass.getESuperTypes().add(this.getAddress());
+ usAddressEClass.getESuperTypes().add(this.getAddress());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(addressEClass, Address.class, "Address", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getAddress_Name(), theXMLTypePackage.getString(), "name", null, 1, 1, Address.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAddress_Street(), theXMLTypePackage.getString(), "street", null, 1, 1, Address.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getAddress_City(), theXMLTypePackage.getString(), "city", null, 1, 1, Address.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(addressListEClass, AddressList.class, "AddressList", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getAddressList_Name(), theXMLTypePackage.getString(), "name", null, 1, 1, AddressList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAddressList_FirstAddress(), this.getFirstAddressHolder(), null, "firstAddress", null, 1, 1, AddressList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAddressList_SecondAddress(), this.getAddress(), null, "secondAddress", null, 1, -1, AddressList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(districtUKAddressEClass, DistrictUKAddress.class, "DistrictUKAddress", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getDistrictUKAddress_District(), theXMLTypePackage.getString(), "district", null, 1, 1, DistrictUKAddress.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(firstAddressHolderEClass, FirstAddressHolder.class, "FirstAddressHolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getFirstAddressHolder_Value(), this.getAddress(), null, "value", null, 0, -1, FirstAddressHolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(internationalPriceEClass, InternationalPrice.class, "InternationalPrice", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getInternationalPrice_Value(), theXMLTypePackage.getDecimal(), "value", null, 0, 1, InternationalPrice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getInternationalPrice_Currency(), theXMLTypePackage.getString(), "currency", null, 0, 1, InternationalPrice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(ukAddressEClass, UKAddress.class, "UKAddress", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getUKAddress_Postcode(), this.getUKPostcode(), "postcode", null, 1, 1, UKAddress.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getUKAddress_ExportCode(), theXMLTypePackage.getPositiveInteger(), "exportCode", "1", 0, 1, UKAddress.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(usAddressEClass, USAddress.class, "USAddress", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getUSAddress_State(), this.getUSState(), "state", "AK", 1, 1, USAddress.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getUSAddress_Zip(), theXMLTypePackage.getPositiveInteger(), "zip", null, 1, 1, USAddress.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(usStateEEnum, USState.class, "USState");
+ addEEnumLiteral(usStateEEnum, USState.AK_LITERAL);
+ addEEnumLiteral(usStateEEnum, USState.AL_LITERAL);
+ addEEnumLiteral(usStateEEnum, USState.AR_LITERAL);
+
+ // Initialize data types
+ initEDataType(postcodeEDataType, String.class, "Postcode", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(ukPostcodeEDataType, String.class, "UKPostcode", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(usStateObjectEDataType, USState.class, "USStateObject", IS_SERIALIZABLE, IS_GENERATED_INSTANCE_CLASS);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http:///org/eclipse/emf/ecore/util/ExtendedMetaData
+ createExtendedMetaDataAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/emf/ecore/util/ExtendedMetaData</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createExtendedMetaDataAnnotations() {
+ String source = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData";
+ addAnnotation
+ (addressEClass,
+ source,
+ new String[] {
+ "name", "Address",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getAddress_Name(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "name"
+ });
+ addAnnotation
+ (getAddress_Street(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "street"
+ });
+ addAnnotation
+ (getAddress_City(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "city"
+ });
+ addAnnotation
+ (addressListEClass,
+ source,
+ new String[] {
+ "name", "AddressList",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getAddressList_Name(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "name"
+ });
+ addAnnotation
+ (getAddressList_FirstAddress(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "firstAddress"
+ });
+ addAnnotation
+ (getAddressList_SecondAddress(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "secondAddress"
+ });
+ addAnnotation
+ (districtUKAddressEClass,
+ source,
+ new String[] {
+ "name", "DistrictUKAddress",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getDistrictUKAddress_District(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "district"
+ });
+ addAnnotation
+ (firstAddressHolderEClass,
+ source,
+ new String[] {
+ "name", "firstAddress:holder",
+ "kind", "simple"
+ });
+ addAnnotation
+ (getFirstAddressHolder_Value(),
+ source,
+ new String[] {
+ "name", ":0",
+ "kind", "simple"
+ });
+ addAnnotation
+ (internationalPriceEClass,
+ source,
+ new String[] {
+ "name", "internationalPrice",
+ "kind", "simple"
+ });
+ addAnnotation
+ (getInternationalPrice_Value(),
+ source,
+ new String[] {
+ "name", ":0",
+ "kind", "simple"
+ });
+ addAnnotation
+ (getInternationalPrice_Currency(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "currency"
+ });
+ addAnnotation
+ (postcodeEDataType,
+ source,
+ new String[] {
+ "name", "Postcode",
+ "baseType", "http://www.eclipse.org/emf/2003/XMLType#string",
+ "length", "7"
+ });
+ addAnnotation
+ (ukAddressEClass,
+ source,
+ new String[] {
+ "name", "UKAddress",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getUKAddress_Postcode(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "postcode"
+ });
+ addAnnotation
+ (getUKAddress_ExportCode(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "exportCode"
+ });
+ addAnnotation
+ (ukPostcodeEDataType,
+ source,
+ new String[] {
+ "name", "UKPostcode",
+ "baseType", "Postcode",
+ "pattern", "[A-Z]{2}\\d\\s\\d[A-Z]{2}"
+ });
+ addAnnotation
+ (usAddressEClass,
+ source,
+ new String[] {
+ "name", "USAddress",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getUSAddress_State(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "state"
+ });
+ addAnnotation
+ (getUSAddress_Zip(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "zip"
+ });
+ addAnnotation
+ (usStateEEnum,
+ source,
+ new String[] {
+ "name", "USState"
+ });
+ addAnnotation
+ (usStateObjectEDataType,
+ source,
+ new String[] {
+ "name", "USState:Object",
+ "baseType", "USState"
+ });
+ }
+
+} //ExtensionPackageImpl
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/FirstAddressHolderImpl.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/FirstAddressHolderImpl.java
new file mode 100644
index 000000000..a4088f3d2
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/FirstAddressHolderImpl.java
@@ -0,0 +1,133 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: FirstAddressHolderImpl.java,v 1.1 2006/07/11 16:56:59 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectEList;
+
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.Address;
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage;
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.FirstAddressHolder;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>First Address Holder</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.FirstAddressHolderImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FirstAddressHolderImpl extends EObjectImpl implements FirstAddressHolder {
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected EList value = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FirstAddressHolderImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ExtensionPackage.eINSTANCE.getFirstAddressHolder();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getValue() {
+ if (value == null) {
+ value = new EObjectEList(Address.class, this, ExtensionPackage.FIRST_ADDRESS_HOLDER__VALUE);
+ }
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(EStructuralFeature eFeature, boolean resolve) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.FIRST_ADDRESS_HOLDER__VALUE:
+ return getValue();
+ }
+ return eDynamicGet(eFeature, resolve);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(EStructuralFeature eFeature, Object newValue) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.FIRST_ADDRESS_HOLDER__VALUE:
+ getValue().clear();
+ getValue().addAll((Collection)newValue);
+ return;
+ }
+ eDynamicSet(eFeature, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.FIRST_ADDRESS_HOLDER__VALUE:
+ getValue().clear();
+ return;
+ }
+ eDynamicUnset(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.FIRST_ADDRESS_HOLDER__VALUE:
+ return value != null && !value.isEmpty();
+ }
+ return eDynamicIsSet(eFeature);
+ }
+
+} //FirstAddressHolderImpl
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/InternationalPriceImpl.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/InternationalPriceImpl.java
new file mode 100644
index 000000000..1f9f42ab4
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/InternationalPriceImpl.java
@@ -0,0 +1,218 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: InternationalPriceImpl.java,v 1.1 2006/07/11 16:56:59 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl;
+
+import java.math.BigDecimal;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage;
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.InternationalPrice;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>International Price</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.InternationalPriceImpl#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.InternationalPriceImpl#getCurrency <em>Currency</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InternationalPriceImpl extends EObjectImpl implements InternationalPrice {
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final BigDecimal VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected BigDecimal value = VALUE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCurrency() <em>Currency</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCurrency()
+ * @generated
+ * @ordered
+ */
+ protected static final String CURRENCY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCurrency() <em>Currency</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCurrency()
+ * @generated
+ * @ordered
+ */
+ protected String currency = CURRENCY_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InternationalPriceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ExtensionPackage.eINSTANCE.getInternationalPrice();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BigDecimal getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(BigDecimal newValue) {
+ BigDecimal oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ExtensionPackage.INTERNATIONAL_PRICE__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCurrency() {
+ return currency;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCurrency(String newCurrency) {
+ String oldCurrency = currency;
+ currency = newCurrency;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ExtensionPackage.INTERNATIONAL_PRICE__CURRENCY, oldCurrency, currency));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(EStructuralFeature eFeature, boolean resolve) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.INTERNATIONAL_PRICE__VALUE:
+ return getValue();
+ case ExtensionPackage.INTERNATIONAL_PRICE__CURRENCY:
+ return getCurrency();
+ }
+ return eDynamicGet(eFeature, resolve);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(EStructuralFeature eFeature, Object newValue) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.INTERNATIONAL_PRICE__VALUE:
+ setValue((BigDecimal)newValue);
+ return;
+ case ExtensionPackage.INTERNATIONAL_PRICE__CURRENCY:
+ setCurrency((String)newValue);
+ return;
+ }
+ eDynamicSet(eFeature, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.INTERNATIONAL_PRICE__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ case ExtensionPackage.INTERNATIONAL_PRICE__CURRENCY:
+ setCurrency(CURRENCY_EDEFAULT);
+ return;
+ }
+ eDynamicUnset(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.INTERNATIONAL_PRICE__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ case ExtensionPackage.INTERNATIONAL_PRICE__CURRENCY:
+ return CURRENCY_EDEFAULT == null ? currency != null : !CURRENCY_EDEFAULT.equals(currency);
+ }
+ return eDynamicIsSet(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (value: ");
+ result.append(value);
+ result.append(", currency: ");
+ result.append(currency);
+ result.append(')');
+ return result.toString();
+ }
+
+} //InternationalPriceImpl
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/UKAddressImpl.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/UKAddressImpl.java
new file mode 100644
index 000000000..661425933
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/UKAddressImpl.java
@@ -0,0 +1,281 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: UKAddressImpl.java,v 1.1 2006/07/11 16:56:59 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl;
+
+import java.math.BigInteger;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage;
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.UKAddress;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>UK Address</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.UKAddressImpl#getPostcode <em>Postcode</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.UKAddressImpl#getExportCode <em>Export Code</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class UKAddressImpl extends AddressImpl implements UKAddress {
+ /**
+ * The default value of the '{@link #getPostcode() <em>Postcode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPostcode()
+ * @generated
+ * @ordered
+ */
+ protected static final String POSTCODE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPostcode() <em>Postcode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPostcode()
+ * @generated
+ * @ordered
+ */
+ protected String postcode = POSTCODE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getExportCode() <em>Export Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExportCode()
+ * @generated
+ * @ordered
+ */
+ protected static final BigInteger EXPORT_CODE_EDEFAULT = new BigInteger("1");
+
+ /**
+ * The cached value of the '{@link #getExportCode() <em>Export Code</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExportCode()
+ * @generated
+ * @ordered
+ */
+ protected BigInteger exportCode = EXPORT_CODE_EDEFAULT;
+
+ /**
+ * This is true if the Export Code attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean exportCodeESet = false;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected UKAddressImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ExtensionPackage.eINSTANCE.getUKAddress();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getPostcode() {
+ return postcode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPostcode(String newPostcode) {
+ String oldPostcode = postcode;
+ postcode = newPostcode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ExtensionPackage.UK_ADDRESS__POSTCODE, oldPostcode, postcode));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BigInteger getExportCode() {
+ return exportCode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExportCode(BigInteger newExportCode) {
+ BigInteger oldExportCode = exportCode;
+ exportCode = newExportCode;
+ boolean oldExportCodeESet = exportCodeESet;
+ exportCodeESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ExtensionPackage.UK_ADDRESS__EXPORT_CODE, oldExportCode, exportCode, !oldExportCodeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetExportCode() {
+ BigInteger oldExportCode = exportCode;
+ boolean oldExportCodeESet = exportCodeESet;
+ exportCode = EXPORT_CODE_EDEFAULT;
+ exportCodeESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, ExtensionPackage.UK_ADDRESS__EXPORT_CODE, oldExportCode, EXPORT_CODE_EDEFAULT, oldExportCodeESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetExportCode() {
+ return exportCodeESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(EStructuralFeature eFeature, boolean resolve) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.UK_ADDRESS__NAME:
+ return getName();
+ case ExtensionPackage.UK_ADDRESS__STREET:
+ return getStreet();
+ case ExtensionPackage.UK_ADDRESS__CITY:
+ return getCity();
+ case ExtensionPackage.UK_ADDRESS__POSTCODE:
+ return getPostcode();
+ case ExtensionPackage.UK_ADDRESS__EXPORT_CODE:
+ return getExportCode();
+ }
+ return eDynamicGet(eFeature, resolve);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(EStructuralFeature eFeature, Object newValue) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.UK_ADDRESS__NAME:
+ setName((String)newValue);
+ return;
+ case ExtensionPackage.UK_ADDRESS__STREET:
+ setStreet((String)newValue);
+ return;
+ case ExtensionPackage.UK_ADDRESS__CITY:
+ setCity((String)newValue);
+ return;
+ case ExtensionPackage.UK_ADDRESS__POSTCODE:
+ setPostcode((String)newValue);
+ return;
+ case ExtensionPackage.UK_ADDRESS__EXPORT_CODE:
+ setExportCode((BigInteger)newValue);
+ return;
+ }
+ eDynamicSet(eFeature, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.UK_ADDRESS__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case ExtensionPackage.UK_ADDRESS__STREET:
+ setStreet(STREET_EDEFAULT);
+ return;
+ case ExtensionPackage.UK_ADDRESS__CITY:
+ setCity(CITY_EDEFAULT);
+ return;
+ case ExtensionPackage.UK_ADDRESS__POSTCODE:
+ setPostcode(POSTCODE_EDEFAULT);
+ return;
+ case ExtensionPackage.UK_ADDRESS__EXPORT_CODE:
+ unsetExportCode();
+ return;
+ }
+ eDynamicUnset(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.UK_ADDRESS__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case ExtensionPackage.UK_ADDRESS__STREET:
+ return STREET_EDEFAULT == null ? street != null : !STREET_EDEFAULT.equals(street);
+ case ExtensionPackage.UK_ADDRESS__CITY:
+ return CITY_EDEFAULT == null ? city != null : !CITY_EDEFAULT.equals(city);
+ case ExtensionPackage.UK_ADDRESS__POSTCODE:
+ return POSTCODE_EDEFAULT == null ? postcode != null : !POSTCODE_EDEFAULT.equals(postcode);
+ case ExtensionPackage.UK_ADDRESS__EXPORT_CODE:
+ return isSetExportCode();
+ }
+ return eDynamicIsSet(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (postcode: ");
+ result.append(postcode);
+ result.append(", exportCode: ");
+ if (exportCodeESet) result.append(exportCode); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //UKAddressImpl
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/USAddressImpl.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/USAddressImpl.java
new file mode 100644
index 000000000..c0bb3f7a0
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/impl/USAddressImpl.java
@@ -0,0 +1,316 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: USAddressImpl.java,v 1.1 2006/07/11 16:56:59 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl;
+
+import java.math.BigInteger;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage;
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USAddress;
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USState;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>US Address</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.USAddressImpl#getState <em>State</em>}</li>
+ * <li>{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.impl.USAddressImpl#getZip <em>Zip</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class USAddressImpl extends AddressImpl implements USAddress {
+ /**
+ * The default value of the '{@link #getState() <em>State</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getState()
+ * @generated
+ * @ordered
+ */
+ protected static final USState STATE_EDEFAULT = USState.AK_LITERAL;
+
+ /**
+ * The cached value of the '{@link #getState() <em>State</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getState()
+ * @generated
+ * @ordered
+ */
+ protected USState state = STATE_EDEFAULT;
+
+ /**
+ * This is true if the State attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean stateESet = false;
+
+ /**
+ * The default value of the '{@link #getZip() <em>Zip</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getZip()
+ * @generated
+ * @ordered
+ */
+ protected static final BigInteger ZIP_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getZip() <em>Zip</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getZip()
+ * @generated
+ * @ordered
+ */
+ protected BigInteger zip = ZIP_EDEFAULT;
+
+ /**
+ * This is true if the Zip attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean zipESet = false;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected USAddressImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ExtensionPackage.eINSTANCE.getUSAddress();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public USState getState() {
+ return state;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setState(USState newState) {
+ USState oldState = state;
+ state = newState == null ? STATE_EDEFAULT : newState;
+ boolean oldStateESet = stateESet;
+ stateESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ExtensionPackage.US_ADDRESS__STATE, oldState, state, !oldStateESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetState() {
+ USState oldState = state;
+ boolean oldStateESet = stateESet;
+ state = STATE_EDEFAULT;
+ stateESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, ExtensionPackage.US_ADDRESS__STATE, oldState, STATE_EDEFAULT, oldStateESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetState() {
+ return stateESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BigInteger getZip() {
+ return zip;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setZip(BigInteger newZip) {
+ BigInteger oldZip = zip;
+ zip = newZip;
+ boolean oldZipESet = zipESet;
+ zipESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ExtensionPackage.US_ADDRESS__ZIP, oldZip, zip, !oldZipESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetZip() {
+ BigInteger oldZip = zip;
+ boolean oldZipESet = zipESet;
+ zip = ZIP_EDEFAULT;
+ zipESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, ExtensionPackage.US_ADDRESS__ZIP, oldZip, ZIP_EDEFAULT, oldZipESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetZip() {
+ return zipESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(EStructuralFeature eFeature, boolean resolve) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.US_ADDRESS__NAME:
+ return getName();
+ case ExtensionPackage.US_ADDRESS__STREET:
+ return getStreet();
+ case ExtensionPackage.US_ADDRESS__CITY:
+ return getCity();
+ case ExtensionPackage.US_ADDRESS__STATE:
+ return getState();
+ case ExtensionPackage.US_ADDRESS__ZIP:
+ return getZip();
+ }
+ return eDynamicGet(eFeature, resolve);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(EStructuralFeature eFeature, Object newValue) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.US_ADDRESS__NAME:
+ setName((String)newValue);
+ return;
+ case ExtensionPackage.US_ADDRESS__STREET:
+ setStreet((String)newValue);
+ return;
+ case ExtensionPackage.US_ADDRESS__CITY:
+ setCity((String)newValue);
+ return;
+ case ExtensionPackage.US_ADDRESS__STATE:
+ setState((USState)newValue);
+ return;
+ case ExtensionPackage.US_ADDRESS__ZIP:
+ setZip((BigInteger)newValue);
+ return;
+ }
+ eDynamicSet(eFeature, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.US_ADDRESS__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case ExtensionPackage.US_ADDRESS__STREET:
+ setStreet(STREET_EDEFAULT);
+ return;
+ case ExtensionPackage.US_ADDRESS__CITY:
+ setCity(CITY_EDEFAULT);
+ return;
+ case ExtensionPackage.US_ADDRESS__STATE:
+ unsetState();
+ return;
+ case ExtensionPackage.US_ADDRESS__ZIP:
+ unsetZip();
+ return;
+ }
+ eDynamicUnset(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ExtensionPackage.US_ADDRESS__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case ExtensionPackage.US_ADDRESS__STREET:
+ return STREET_EDEFAULT == null ? street != null : !STREET_EDEFAULT.equals(street);
+ case ExtensionPackage.US_ADDRESS__CITY:
+ return CITY_EDEFAULT == null ? city != null : !CITY_EDEFAULT.equals(city);
+ case ExtensionPackage.US_ADDRESS__STATE:
+ return isSetState();
+ case ExtensionPackage.US_ADDRESS__ZIP:
+ return isSetZip();
+ }
+ return eDynamicIsSet(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (state: ");
+ if (stateESet) result.append(state); else result.append("<unset>");
+ result.append(", zip: ");
+ if (zipESet) result.append(zip); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //USAddressImpl
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/util/ExtensionAdapterFactory.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/util/ExtensionAdapterFactory.java
new file mode 100644
index 000000000..b541a1f15
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/util/ExtensionAdapterFactory.java
@@ -0,0 +1,222 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ExtensionAdapterFactory.java,v 1.1 2006/07/11 16:57:01 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.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.emf.teneo.samples.emf.schemaconstructs.extension.*;
+
+/**
+ * <!-- 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.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage
+ * @generated
+ */
+public class ExtensionAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ExtensionPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExtensionAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = ExtensionPackage.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
+ */
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch the delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExtensionSwitch modelSwitch =
+ new ExtensionSwitch() {
+ public Object caseAddress(Address object) {
+ return createAddressAdapter();
+ }
+ public Object caseAddressList(AddressList object) {
+ return createAddressListAdapter();
+ }
+ public Object caseDistrictUKAddress(DistrictUKAddress object) {
+ return createDistrictUKAddressAdapter();
+ }
+ public Object caseFirstAddressHolder(FirstAddressHolder object) {
+ return createFirstAddressHolderAdapter();
+ }
+ public Object caseInternationalPrice(InternationalPrice object) {
+ return createInternationalPriceAdapter();
+ }
+ public Object caseUKAddress(UKAddress object) {
+ return createUKAddressAdapter();
+ }
+ public Object caseUSAddress(USAddress object) {
+ return createUSAddressAdapter();
+ }
+ public Object 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
+ */
+ public Adapter createAdapter(Notifier target) {
+ return (Adapter)modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.Address <em>Address</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.emf.teneo.samples.emf.schemaconstructs.extension.Address
+ * @generated
+ */
+ public Adapter createAddressAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.AddressList <em>Address List</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.emf.teneo.samples.emf.schemaconstructs.extension.AddressList
+ * @generated
+ */
+ public Adapter createAddressListAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.DistrictUKAddress <em>District UK Address</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.emf.teneo.samples.emf.schemaconstructs.extension.DistrictUKAddress
+ * @generated
+ */
+ public Adapter createDistrictUKAddressAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.FirstAddressHolder <em>First Address Holder</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.emf.teneo.samples.emf.schemaconstructs.extension.FirstAddressHolder
+ * @generated
+ */
+ public Adapter createFirstAddressHolderAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.InternationalPrice <em>International Price</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.emf.teneo.samples.emf.schemaconstructs.extension.InternationalPrice
+ * @generated
+ */
+ public Adapter createInternationalPriceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.UKAddress <em>UK Address</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.emf.teneo.samples.emf.schemaconstructs.extension.UKAddress
+ * @generated
+ */
+ public Adapter createUKAddressAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.USAddress <em>US Address</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.emf.teneo.samples.emf.schemaconstructs.extension.USAddress
+ * @generated
+ */
+ public Adapter createUSAddressAdapter() {
+ 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;
+ }
+
+} //ExtensionAdapterFactory
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/util/ExtensionResourceFactoryImpl.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/util/ExtensionResourceFactoryImpl.java
new file mode 100644
index 000000000..96dd2ce3b
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/util/ExtensionResourceFactoryImpl.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ExtensionResourceFactoryImpl.java,v 1.1 2006/07/11 16:57:01 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.util;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.resource.Resource;
+
+import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl;
+
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Resource Factory</b> associated with the package.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.util.ExtensionResourceImpl
+ * @generated
+ */
+public class ExtensionResourceFactoryImpl extends ResourceFactoryImpl {
+ /**
+ * Creates an instance of the resource factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExtensionResourceFactoryImpl() {
+ super();
+ }
+
+ /**
+ * Creates an instance of the resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Resource createResource(URI uri) {
+ XMLResource result = new ExtensionResourceImpl(uri);
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
+
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_SCHEMA_LOCATION, Boolean.TRUE);
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
+
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_LEXICAL_HANDLER, Boolean.TRUE);
+ return result;
+ }
+
+} //ExtensionResourceFactoryImpl
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/util/ExtensionResourceImpl.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/util/ExtensionResourceImpl.java
new file mode 100644
index 000000000..8e856642c
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/util/ExtensionResourceImpl.java
@@ -0,0 +1,32 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ExtensionResourceImpl.java,v 1.1 2006/07/11 16:57:01 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.util;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Resource </b> associated with the package.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.util.ExtensionResourceFactoryImpl
+ * @generated
+ */
+public class ExtensionResourceImpl extends XMLResourceImpl {
+ /**
+ * Creates an instance of the resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param uri the URI of the new resource.
+ * @generated
+ */
+ public ExtensionResourceImpl(URI uri) {
+ super(uri);
+ }
+
+} //ExtensionResourceImpl
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/util/ExtensionSwitch.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/util/ExtensionSwitch.java
new file mode 100644
index 000000000..bf74b2be5
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/util/ExtensionSwitch.java
@@ -0,0 +1,260 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ExtensionSwitch.java,v 1.1 2006/07/11 16:57:01 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.util;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.*;
+
+/**
+ * <!-- 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.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage
+ * @generated
+ */
+public class ExtensionSwitch {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ExtensionPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExtensionSwitch() {
+ if (modelPackage == null) {
+ modelPackage = ExtensionPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * 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
+ */
+ public Object doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * 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
+ */
+ protected Object doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch((EClass)eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * 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
+ */
+ protected Object doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case ExtensionPackage.ADDRESS: {
+ Address address = (Address)theEObject;
+ Object result = caseAddress(address);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ExtensionPackage.ADDRESS_LIST: {
+ AddressList addressList = (AddressList)theEObject;
+ Object result = caseAddressList(addressList);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ExtensionPackage.DISTRICT_UK_ADDRESS: {
+ DistrictUKAddress districtUKAddress = (DistrictUKAddress)theEObject;
+ Object result = caseDistrictUKAddress(districtUKAddress);
+ if (result == null) result = caseUKAddress(districtUKAddress);
+ if (result == null) result = caseAddress(districtUKAddress);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ExtensionPackage.FIRST_ADDRESS_HOLDER: {
+ FirstAddressHolder firstAddressHolder = (FirstAddressHolder)theEObject;
+ Object result = caseFirstAddressHolder(firstAddressHolder);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ExtensionPackage.INTERNATIONAL_PRICE: {
+ InternationalPrice internationalPrice = (InternationalPrice)theEObject;
+ Object result = caseInternationalPrice(internationalPrice);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ExtensionPackage.UK_ADDRESS: {
+ UKAddress ukAddress = (UKAddress)theEObject;
+ Object result = caseUKAddress(ukAddress);
+ if (result == null) result = caseAddress(ukAddress);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ExtensionPackage.US_ADDRESS: {
+ USAddress usAddress = (USAddress)theEObject;
+ Object result = caseUSAddress(usAddress);
+ if (result == null) result = caseAddress(usAddress);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>Address</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 interpretting the object as an instance of '<em>Address</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseAddress(Address object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>Address List</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 interpretting the object as an instance of '<em>Address List</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseAddressList(AddressList object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>District UK Address</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 interpretting the object as an instance of '<em>District UK Address</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseDistrictUKAddress(DistrictUKAddress object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>First Address Holder</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 interpretting the object as an instance of '<em>First Address Holder</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseFirstAddressHolder(FirstAddressHolder object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>International Price</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 interpretting the object as an instance of '<em>International Price</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseInternationalPrice(InternationalPrice object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>UK Address</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 interpretting the object as an instance of '<em>UK Address</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseUKAddress(UKAddress object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>US Address</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 interpretting the object as an instance of '<em>US Address</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseUSAddress(USAddress object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting 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 interpretting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ public Object defaultCase(EObject object) {
+ return null;
+ }
+
+} //ExtensionSwitch
diff --git a/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/util/ExtensionValidator.java b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/util/ExtensionValidator.java
new file mode 100644
index 000000000..1d74f0b88
--- /dev/null
+++ b/examples/org.eclipse.emf.teneo.samples/src/org/eclipse/emf/teneo/samples/emf/schemaconstructs/extension/util/ExtensionValidator.java
@@ -0,0 +1,283 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id: ExtensionValidator.java,v 1.1 2006/07/11 16:57:01 mtaal Exp $
+ */
+package org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.util;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.EObjectValidator;
+
+import org.eclipse.emf.ecore.xml.type.util.XMLTypeUtil;
+import org.eclipse.emf.ecore.xml.type.util.XMLTypeValidator;
+
+import org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Validator</b> for the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension.ExtensionPackage
+ * @generated
+ */
+public class ExtensionValidator extends EObjectValidator {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final ExtensionValidator INSTANCE = new ExtensionValidator();
+
+ /**
+ * 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 = "org.eclipse.emf.teneo.samples.emf.schemaconstructs.extension";
+
+ /**
+ * 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;
+
+ /**
+ * The cached base package validator.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected XMLTypeValidator xmlTypeValidator;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExtensionValidator() {
+ super();
+ xmlTypeValidator = XMLTypeValidator.INSTANCE;
+ }
+
+ /**
+ * Returns the package of this validator switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EPackage getEPackage() {
+ return ExtensionPackage.eINSTANCE;
+ }
+
+ /**
+ * Calls <code>validateXXX</code> for the corresonding classifier of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean validate(int classifierID, Object value, DiagnosticChain diagnostics, Map context) {
+ switch (classifierID) {
+ case ExtensionPackage.ADDRESS:
+ return validateAddress((Address)value, diagnostics, context);
+ case ExtensionPackage.ADDRESS_LIST:
+ return validateAddressList((AddressList)value, diagnostics, context);
+ case ExtensionPackage.DISTRICT_UK_ADDRESS:
+ return validateDistrictUKAddress((DistrictUKAddress)value, diagnostics, context);
+ case ExtensionPackage.FIRST_ADDRESS_HOLDER:
+ return validateFirstAddressHolder((FirstAddressHolder)value, diagnostics, context);
+ case ExtensionPackage.INTERNATIONAL_PRICE:
+ return validateInternationalPrice((InternationalPrice)value, diagnostics, context);
+ case ExtensionPackage.UK_ADDRESS:
+ return validateUKAddress((UKAddress)value, diagnostics, context);
+ case ExtensionPackage.US_ADDRESS:
+ return validateUSAddress((USAddress)value, diagnostics, context);
+ case ExtensionPackage.US_STATE:
+ return validateUSState((Object)value, diagnostics, context);
+ case ExtensionPackage.POSTCODE:
+ return validatePostcode((String)value, diagnostics, context);
+ case ExtensionPackage.UK_POSTCODE:
+ return validateUKPostcode((String)value, diagnostics, context);
+ case ExtensionPackage.US_STATE_OBJECT:
+ return validateUSStateObject((USState)value, diagnostics, context);
+ default:
+ return true;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateAddress(Address address, DiagnosticChain diagnostics, Map context) {
+ return validate_EveryDefaultConstraint(address, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateAddressList(AddressList addressList, DiagnosticChain diagnostics, Map context) {
+ return validate_EveryDefaultConstraint(addressList, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateDistrictUKAddress(DistrictUKAddress districtUKAddress, DiagnosticChain diagnostics, Map context) {
+ return validate_EveryDefaultConstraint(districtUKAddress, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateFirstAddressHolder(FirstAddressHolder firstAddressHolder, DiagnosticChain diagnostics, Map context) {
+ return validate_EveryDefaultConstraint(firstAddressHolder, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateInternationalPrice(InternationalPrice internationalPrice, DiagnosticChain diagnostics, Map context) {
+ return validate_EveryDefaultConstraint(internationalPrice, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateUKAddress(UKAddress ukAddress, DiagnosticChain diagnostics, Map context) {
+ return validate_EveryDefaultConstraint(ukAddress, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateUSAddress(USAddress usAddress, DiagnosticChain diagnostics, Map context) {
+ return validate_EveryDefaultConstraint(usAddress, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateUSState(Object usState, DiagnosticChain diagnostics, Map context) {
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validatePostcode(String postcode, DiagnosticChain diagnostics, Map context) {
+ boolean result = validatePostcode_MinLength(postcode, diagnostics, context);
+ if (result || diagnostics != null) result &= validatePostcode_MaxLength(postcode, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * Validates the MinLength constraint of '<em>Postcode</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validatePostcode_MinLength(String postcode, DiagnosticChain diagnostics, Map context) {
+ int length = postcode.length();
+ boolean result = length >= 7;
+ if (!result && diagnostics != null)
+ reportMinLengthViolation(ExtensionPackage.eINSTANCE.getPostcode(), postcode, length, 7, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * Validates the MaxLength constraint of '<em>Postcode</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validatePostcode_MaxLength(String postcode, DiagnosticChain diagnostics, Map context) {
+ int length = postcode.length();
+ boolean result = length <= 7;
+ if (!result && diagnostics != null)
+ reportMaxLengthViolation(ExtensionPackage.eINSTANCE.getPostcode(), postcode, length, 7, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateUKPostcode(String ukPostcode, DiagnosticChain diagnostics, Map context) {
+ boolean result = validatePostcode_MinLength(ukPostcode, diagnostics, context);
+ if (result || diagnostics != null) result &= validatePostcode_MaxLength(ukPostcode, diagnostics, context);
+ if (result || diagnostics != null) result &= validateUKPostcode_Pattern(ukPostcode, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @see #validateUKPostcode_Pattern
+ */
+ public static final PatternMatcher [][] UK_POSTCODE__PATTERN__VALUES =
+ new PatternMatcher [][] {
+ new PatternMatcher [] {
+ XMLTypeUtil.createPatternMatcher("[A-Z]{2}\\d\\s\\d[A-Z]{2}")
+ }
+ };
+
+ /**
+ * Validates the Pattern constraint of '<em>UK Postcode</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateUKPostcode_Pattern(String ukPostcode, DiagnosticChain diagnostics, Map context) {
+ return validatePattern(ExtensionPackage.eINSTANCE.getUKPostcode(), ukPostcode, UK_POSTCODE__PATTERN__VALUES, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateUSStateObject(USState usStateObject, DiagnosticChain diagnostics, Map context) {
+ return true;
+ }
+
+} //ExtensionValidator

Back to the top