00001 <?php 00024 class Harbor extends BaseConstruction { 00025 // Namen des Hafens (z.B. Hamburger Hafen) 00026 private $harborName = "Unbekannter Hafen"; 00027 00028 // Schiffsliste aller gebauten Schiffe 00029 private $constructedShips = null; 00030 00031 // Liegeplatz-Liste 00032 private $berthList = null; 00033 00034 // List of all assigned shipyards 00035 private $shipyardList = null; 00036 00037 // Constructor 00038 protected function __construct () { 00039 // Call parent constructor 00040 parent::__construct(__CLASS__); 00041 } 00042 00043 // Creates a harbor 00044 public final static function createHarbor ($harborName) { 00045 // Hafen-Instanz holen 00046 $harborInstance = new Harbor(); 00047 00048 // Hafenname setzen 00049 $harborInstance->setHarborName($harborName); 00050 00051 // Werftliste initialisieren 00052 $harborInstance->createshipyardList(); 00053 00054 // Instanz zurueckliefern 00055 return $harborInstance; 00056 } 00057 00058 // Werft-Liste generieren 00059 public function createshipyardList () { 00060 $this->shipyardList = new FrameworkArrayObject("FakedShipyardList"); 00061 } 00062 00063 // Setter fuer Hafennamen 00064 public final function setHarborName ($harborName) { 00065 $this->harborName = (string) $harborName; 00066 } 00067 00068 // Getter fuer Hafennamen 00069 public final function getHarborName () { 00070 return $this->harborName; 00071 } 00072 00073 // Werft in den Hafen einbauen und Werft->Reederei zuweisen 00074 public function addNewShipyardNotify ($shipyardName, ShippingCompany $companyInstance) { 00075 // Werft generieren und in die Werftliste aufnehmen 00076 $this->shipyardList->append(Shipyard::createShipyardNotify($this, $shipyardName, $companyInstance)); 00077 } 00078 00079 // Werft in den Hafen einbauen ohne Zuweisung einer Reederei (gehoert der "Stadt" dann) 00080 public function addNewShipyard ($shipyardName) { 00081 // Werft generieren und in die Werftliste aufnehmen 00082 $this->shipyardList->append(Shipyard::createShipyard($this, $shipyardName)); 00083 } 00084 } 00085 00086 // [EOF] 00087 ?>
1.5.6