{
    if (isInited) return (Ecore2EcorePackage)EPackage.Registry.INSTANCE.getEPackage(Ecore2EcorePackage.eNS_URI);

    // Obtain or create and register package
    Ecore2EcorePackageImpl theEcore2EcorePackage = (Ecore2EcorePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof Ecore2EcorePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new Ecore2EcorePackageImpl());

    isInited = true;

    // Initialize simple dependencies
    MappingPackage.eINSTANCE.eClass();

    // Create package meta-data objects
    theEcore2EcorePackage.createPackageContents();

    // Initialize created meta-data
    theEcore2EcorePackage.initializePackageContents();

    // Mark meta-data to indicate it can't be changed
    theEcore2EcorePackage.freeze();

    return theEcore2EcorePackage;
  }