code: public static BasePackage init() {
  		if (isInited) return (BasePackage)EPackage.Registry.INSTANCE.getEPackage(BasePackage.eNS_URI);
  
  		// Obtain or create and register package
  		BasePackageImpl theBasePackage = (BasePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof BasePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new BasePackageImpl());
  
  		isInited = true;
  
  		// Obtain or create and register interdependencies
  		AfplibPackageImpl theAfplibPackage = (AfplibPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(AfplibPackage.eNS_URI) instanceof AfplibPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(AfplibPackage.eNS_URI) : AfplibPackage.eINSTANCE);
  
  		// Load packages
  		theAfplibPackage.loadPackage();
  
  		// Create package meta-data objects
  		theBasePackage.createPackageContents();
  
  		// Initialize created meta-data
  		theBasePackage.initializePackageContents();
  
  		// Fix loaded packages
  		theAfplibPackage.fixPackageContents();
  
  		// Register package validator
  		EValidator.Registry.INSTANCE.put
  			(theBasePackage, 
  			 new EValidator.Descriptor() {
  				 public EValidator getEValidator() {
  					 return BaseValidator.INSTANCE;
  				 }
  			 });
  
  		// Mark meta-data to indicate it can't be changed
  		theBasePackage.freeze();
  
    
  		// Update the registry and return the package
  		EPackage.Registry.INSTANCE.put(BasePackage.eNS_URI, theBasePackage);
  		return theBasePackage;
  	}
docs: 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 BasePackage#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