// Obtain or create and register interdependencies
ProjectPackageImpl theProjectPackage = (ProjectPackageImpl) (EPackage.Registry.INSTANCE
.getEPackage(ProjectPackage.eNS_URI) instanceof ProjectPackageImpl ? EPackage.Registry.INSTANCE
.getEPackage(ProjectPackage.eNS_URI) : ProjectPackage.eINSTANCE);
RenderPackageImpl theRenderPackage = (RenderPackageImpl) (EPackage.Registry.INSTANCE
.getEPackage(RenderPackage.eNS_URI) instanceof RenderPackageImpl ? EPackage.Registry.INSTANCE
.getEPackage(RenderPackage.eNS_URI) : RenderPackage.eINSTANCE);
// Create package meta-data objects
theElementPackage.createPackageContents();
theProjectPackage.createPackageContents();
theRenderPackage.createPackageContents();
// Initialize created meta-data
theElementPackage.initializePackageContents();
theProjectPackage.initializePackageContents();
theRenderPackage.initializePackageContents();
// Mark meta-data to indicate it can't be changed
theElementPackage.freeze();
// Update the registry and return the package