00001 <?php 00002 /** 00003 * Magento 00004 * 00005 * NOTICE OF LICENSE 00006 * 00007 * This source file is subject to the Open Software License (OSL 3.0) 00008 * that is bundled with this package in the file LICENSE.txt. 00009 * It is also available through the world-wide-web at this URL: 00010 * http://opensource.org/licenses/osl-3.0.php 00011 * If you did not receive a copy of the license and are unable to 00012 * obtain it through the world-wide-web, please send an email 00013 * to license@magentocommerce.com so we can send you a copy immediately. 00014 * 00015 * DISCLAIMER 00016 * 00017 * Do not edit or add to this file if you wish to upgrade Magento to newer 00018 * versions in the future. If you wish to customize Magento for your 00019 * needs please refer to http://www.magentocommerce.com for more information. 00020 * 00021 * @category Varien 00022 * @package Varien_Event 00023 * @copyright Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com) 00024 * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) 00025 */ 00026 00027 00028 /** 00029 * Event observer collection 00030 * 00031 * @category Varien 00032 * @package Varien_Event 00033 * @author Magento Core Team <core@magentocommerce.com> 00034 */ 00035 class Varien_Event_Observer_Collection 00036 { 00037 /** 00038 * Array of observers 00039 * 00040 * @var array 00041 */ 00042 protected $_observers; 00043 00044 /** 00045 * Initializes observers 00046 * 00047 */ 00048 public function __construct() 00049 { 00050 $this->_observers = array(); 00051 } 00052 00053 /** 00054 * Returns all observers in the collection 00055 * 00056 * @return array 00057 */ 00058 public function getAllObservers() 00059 { 00060 return $this->_observers; 00061 } 00062 00063 /** 00064 * Returns observer by its name 00065 * 00066 * @param string $observerName 00067 * @return Varien_Event_Observer 00068 */ 00069 public function getObserverByName($observerName) 00070 { 00071 return $this->_observers[$observerName]; 00072 } 00073 00074 /** 00075 * Adds an observer to the collection 00076 * 00077 * @param Varien_Event_Observer $observer 00078 * @return Varien_Event_Observer_Collection 00079 */ 00080 public function addObserver(Varien_Event_Observer $observer) 00081 { 00082 $this->_observers[$observer->getName()] = $observer; 00083 return $this; 00084 } 00085 00086 /** 00087 * Removes an observer from the collection by its name 00088 * 00089 * @param string $observerName 00090 * @return Varien_Event_Observer_Collection 00091 */ 00092 public function removeObserverByName($observerName) 00093 { 00094 unset($this->_observers[$observerName]); 00095 return $this; 00096 } 00097 00098 /** 00099 * Dispatches an event to all observers in the collection 00100 * 00101 * @param Varien_Event $event 00102 * @return Varien_Event_Observer_Collection 00103 */ 00104 public function dispatch(Varien_Event $event) 00105 { 00106 foreach ($this->_observers as $observer) { 00107 $observer->dispatch($event); 00108 } 00109 return $this; 00110 } 00111 }