gt:     entityEClass = createEClass(ENTITY);
context: /**
   */
  package org.example.entities.entities.impl;
  
  import org.eclipse.emf.ecore.EAttribute;
  import org.eclipse.emf.ecore.EClass;
  import org.eclipse.emf.ecore.EPackage;
  import org.eclipse.emf.ecore.EReference;
  
  import org.eclipse.emf.ecore.impl.EPackageImpl;
  
  import org.example.entities.entities.Attribute;
  import org.example.entities.entities.AttributeType;
  import org.example.entities.entities.BasicType;
  import org.example.entities.entities.ElementType;
  import org.example.entities.entities.EntitiesFactory;
  import org.example.entities.entities.EntitiesPackage;
  import org.example.entities.entities.Entity;
  import org.example.entities.entities.EntityType;
  import org.example.entities.entities.Model;
  
  /**
   * <!-- begin-user-doc -->
   * An implementation of the model <b>Package</b>.
   * <!-- end-user-doc -->
   * @generated
   */
  public class EntitiesPackageImpl extends EPackageImpl implements EntitiesPackage
  {
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    private EClass modelEClass = null;
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    private EClass entityEClass = null;
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    private EClass attributeEClass = null;
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    private EClass attributeTypeEClass = null;
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    private EClass elementTypeEClass = null;
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    private EClass basicTypeEClass = null;
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    private EClass entityTypeEClass = 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.example.entities.entities.EntitiesPackage#eNS_URI
     * @see #init()
     * @generated
     */
    private EntitiesPackageImpl()
    {
      super(eNS_URI, EntitiesFactory.eINSTANCE);
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    private static boolean isInited = false;
  
    /**
     * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
     * 
     * <p>This method is used to initialize {@link EntitiesPackage#eINSTANCE} when that field is accessed.
     * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see #eNS_URI
     * @see #createPackageContents()
     * @see #initializePackageContents()
     * @generated
     */
    public static EntitiesPackage init()
    {
      if (isInited) return (EntitiesPackage)EPackage.Registry.INSTANCE.getEPackage(EntitiesPackage.eNS_URI);
  
      // Obtain or create and register package
      EntitiesPackageImpl theEntitiesPackage = (EntitiesPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EntitiesPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new EntitiesPackageImpl());
  
      isInited = true;
  
      // Create package meta-data objects
      theEntitiesPackage.createPackageContents();
  
      // Initialize created meta-data
      theEntitiesPackage.initializePackageContents();
  
      // Mark meta-data to indicate it can't be changed
      theEntitiesPackage.freeze();
  
    
      // Update the registry and return the package
      EPackage.Registry.INSTANCE.put(EntitiesPackage.eNS_URI, theEntitiesPackage);
      return theEntitiesPackage;
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public EClass getModel()
    {
      return modelEClass;
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public EReference getModel_Entities()
    {
      return (EReference)modelEClass.getEStructuralFeatures().get(0);
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public EClass getEntity()
    {
      return entityEClass;
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public EAttribute getEntity_Name()
    {
      return (EAttribute)entityEClass.getEStructuralFeatures().get(0);
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public EReference getEntity_SuperType()
    {
      return (EReference)entityEClass.getEStructuralFeatures().get(1);
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public EReference getEntity_Attributes()
    {
      return (EReference)entityEClass.getEStructuralFeatures().get(2);
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public EClass getAttribute()
    {
      return attributeEClass;
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public EReference getAttribute_Type()
    {
      return (EReference)attributeEClass.getEStructuralFeatures().get(0);
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public EAttribute getAttribute_Name()
    {
      return (EAttribute)attributeEClass.getEStructuralFeatures().get(1);
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public EClass getAttributeType()
    {
      return attributeTypeEClass;
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public EReference getAttributeType_ElementType()
    {
      return (EReference)attributeTypeEClass.getEStructuralFeatures().get(0);
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public EAttribute getAttributeType_Array()
    {
      return (EAttribute)attributeTypeEClass.getEStructuralFeatures().get(1);
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public EAttribute getAttributeType_Length()
    {
      return (EAttribute)attributeTypeEClass.getEStructuralFeatures().get(2);
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public EClass getElementType()
    {
      return elementTypeEClass;
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public EClass getBasicType()
    {
      return basicTypeEClass;
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public EAttribute getBasicType_TypeName()
    {
      return (EAttribute)basicTypeEClass.getEStructuralFeatures().get(0);
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public EClass getEntityType()
    {
      return entityTypeEClass;
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public EReference getEntityType_Entity()
    {
      return (EReference)entityTypeEClass.getEStructuralFeatures().get(0);
    }
  
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public EntitiesFactory getEntitiesFactory()
    {
      return (EntitiesFactory)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
      modelEClass = createEClass(MODEL);
      createEReference(modelEClass, MODEL__ENTITIES);
  
  