getDebugInstance()->output(sprintf("[%s:%d] Konstruktor erreicht.
\n", __CLASS__, __LINE__ )); } // Beschreibung setzen $this->setPartDescr("Händler"); // Unique-ID erzeugen $this->createUniqueID(); // Clean up a little $this->removeSystemArray(); } // Haendler mit Namen erzeugen public static function createMerchant ($merchantName, Harbor $harborInstance) { // String absichern $merchantName = (string) $merchantName; // Instanz holen $merchantInstance = new Merchant(); // Debug message if ((defined('DEBUG_MERCHANT')) || (defined('DEBUG_ALL'))) { $merchantInstance->getDebugInstance()->output(sprintf("[%s:%d] Ein Händler %s wird angelegt und soll sich am %s niederlassen.
\n", __CLASS__, __LINE__, $merchantName, $harborInstance->getHarborName() )); } // Haendlernamen setzen $merchantInstance->setMerchantName($merchantName); // In dem angegebenen Hafen den Haendler ansiedeln $merchantInstance->setHarborInstance($harborInstance); // Preisliste initialisieren $merchantInstance->createPriceList(); // Instanz zurueckliefern return $merchantInstance; } // Initialize pricing list private function createPriceList () { if ((defined('DEBUG_MERCHANT')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Der Händler %s erhält eine leere Preisliste.
\n", __CLASS__, __LINE__, $this->getMerchantName() )); $this->priceList = new FrameworkArrayObject(); } // Setter for merchant name public function setMerchantName ($merchantName) { // Secure string $merchantName = (string) $merchantName; // Debug message if ((defined('DEBUG_MERCHANT')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Der Händlername %s ist nun bekannt.
\n", __CLASS__, __LINE__, $merchantName )); $this->merchantName = $merchantName; } // Getter for merchant name public function getMerchantName () { if ((defined('DEBUG_MERCHANT')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Der Händlername %s wird verlangt.
\n", __CLASS__, __LINE__, $this->merchantName )); return $this->merchantName; } // Setter for harbor instance public function setHarborInstance (Harbor $harborInstance) { if ((defined('DEBUG_MERCHANT')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Der Händler %s lässt sich am %s nieder.
\n", __CLASS__, __LINE__, $this->getMerchantName(), $harborInstance->getHarborName() )); $this->harborInstance = $harborInstance; } // Getter for harbor instance public function getHarborInstance () { if ((defined('DEBUG_MERCHANT')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Der Händler %s hat sich am %s niedergelassen.
\n", __CLASS__, __LINE__, $this->getMerchantName(), $harborInstance->getHarborName() )); return $this->harborInstance; } // Add new item to merchant's price list public function addItemToPriceList (ItemIsTradeable $itemInstance, $price) { // Secure pricing $price = (float) $price; // Debug message if ((defined('DEBUG_MERCHANT')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Der Händler %s kann nun das Schiffsteil %s "%s" zu %s verkaufen.
\n", __CLASS__, __LINE__, $this->getMerchantName(), $itemInstance->__toString(), $itemInstance->getPartDescr(), $this->formatCurrency($price) )); // Construct pricing item and add it to the list $this->priceList->append(array( 'item' => $itemInstance, 'price' => $price )); // Remove price attribute $itemInstance->removePrice(); } // Get a price from the merchant's list public function getPriceFromList (ItemIsTradeable $itemInstance) { $price = 0; // Iterate throw whole list for ($iter = $this->priceList->getIterator(); $iter->valid(); $iter->next()) { // Get current item $item = $iter->current(); // Does this item match? The unique ID may not work... if ($item['item']->itemMatches($itemInstance)) { // Extract price and stop searching $price = $item['price']; break; } } // Was the item found? if ($price === 0) { // Throw exception throw new ItemNotInPriceListException($itemInstance, self::EXCEPTION_ITEM_NOT_IN_PRICE_LIST); } // Return price return $price; } /** * Stub! */ public function saveObjectToDatabase () { $this->getDebugInstance()->output(sprintf("[%s:] Stub %s erreicht.", $this->__toString(), __FUNCTION__ )); } } // [EOF] ?>