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

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

    isInited = true;

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

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

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

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

    return theTreePackage;
  }