setNsURI(eNS_URI);
// Obtain other dependent packages
BasePackage theBasePackage = (BasePackage)EPackage.Registry.INSTANCE.getEPackage(BasePackage.eNS_URI);
SectorPackage theSectorPackage = (SectorPackage)EPackage.Registry.INSTANCE.getEPackage(SectorPackage.eNS_URI);
ShipdevicePackage theShipdevicePackage = (ShipdevicePackage)EPackage.Registry.INSTANCE.getEPackage(ShipdevicePackage.eNS_URI);
// Create type parameters
// Set bounds for type parameters
// Add supertypes to classes
abstractStructureEClass.getESuperTypes().add(theBasePackage.getAbstractNamedEntity());
stationEClass.getESuperTypes().add(this.getAbstractStructure());
satelliteEClass.getESuperTypes().add(this.getAbstractStructure());
jumpgateEClass.getESuperTypes().add(this.getAbstractStructure());
shipEClass.getESuperTypes().add(this.getAbstractStructure());
// Initialize classes and features; add operations and parameters
initEClass(abstractStructureEClass, AbstractStructure.class, "AbstractStructure", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(stationEClass, Station.class, "Station", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(satelliteEClass, Satellite.class, "Satellite", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(jumpgateEClass, Jumpgate.class, "Jumpgate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getJumpgate_LinkedJumpgate(), this.getJumpgate(), null, "linkedJumpgate", null, 0, 1, Jumpgate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getJumpgate_ParentSector(), theSectorPackage.getSector(), null, "parentSector", null, 1, 1, Jumpgate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(shipEClass, Ship.class, "Ship", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getShip_Height(), ecorePackage.getEFloat(), "height", null, 1, 1, Ship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getShip_Width(), ecorePackage.getEFloat(), "width", null, 1, 1, Ship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getShip_Length(), ecorePackage.getEFloat(), "length", null, 1, 1, Ship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getShip_ShipType(), this.getShipType(), "shipType", null, 1, 1, Ship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getShip_Weight(), ecorePackage.getEFloat(), "weight", null, 1, 1, Ship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getShip_MaxAngularVelocity(), ecorePackage.getEFloat(), "maxAngularVelocity", null, 1, 1, Ship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getShip_MaxLinearVelocity(), ecorePackage.getEFloat(), "maxLinearVelocity", null, 1, 1, Ship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getShip_Slots(), this.getSlot(), null, "slots", null, 0, -1, Ship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(slotEClass, Slot.class, "Slot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getSlot_SlotType(), theShipdevicePackage.getSlotType(), "slotType", null, 1, 1, Slot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getSlot_SlotSize(), theShipdevicePackage.getSlotSize(), "slotSize", null, 1, 1, Slot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
// Initialize enums and add enum literals
initEEnum(shipTypeEEnum, ShipType.class, "ShipType");
addEEnumLiteral(shipTypeEEnum, ShipType.FIGHTER);
addEEnumLiteral(shipTypeEEnum, ShipType.CARRIER);