| // | Stephan Schmidt | // +-----------------------------------------------------------------------+ // // $Id: Notification.php 284686 2009-07-24 05:22:17Z clockwerx $ /** * Default state of the notification */ define('EVENT_NOTIFICATION_STATE_DEFAULT', 0); /** * Notification has been cancelled */ define('EVENT_NOTIFICATION_STATE_CANCELLED', 1); /** * A Notification object * * The Notification object can be easily subclassed and serves as a container * for the information about the notification. It holds an object which is * usually a reference to the object that posted the notification, * a notification name used to identify the notification and some user * information which can be anything you need. * * @category Event * @package Event_Dispatcher * @author Bertrand Mansion * @author Stephan Schmidt * @copyright 1997-2005 The PHP Group * @license http://www.opensource.org/licenses/bsd-license.php BSD License * @version Release: @package_version@ * @link http://pear.php.net/package/Event_Dispatcher */ class Event_Notification { /** * name of the notofication * @var string * @access private */ var $_notificationName; /** * object of interesed (the sender of the notification, in most cases) * @var object * @access private */ var $_notificationObject; /** * additional information about the notification * @var mixed * @access private */ var $_notificationInfo = array(); /** * state of the notification * * This may be: * - EVENT_NOTIFICATION_STATE_DEFAULT * - EVENT_NOTIFICATION_STATE_CANCELLED * * @var integer * @access private */ var $_notificationState = EVENT_NOTIFICATION_STATE_DEFAULT; /** * amount of observers that received this notification * @var mixed * @access private */ var $_notificationCount = 0; /** * Constructor * * @access public * @param object The object of interest for the notification, * usually is the posting object * @param string Notification name * @param array Free information array */ function Event_Notification(&$object, $name, $info = array()) { $this->_notificationObject =& $object; $this->_notificationName = $name; $this->_notificationInfo = $info; } /** * Returns the notification name * @return string Notification name */ function getNotificationName() { return $this->_notificationName; } /** * Returns the contained object * @return object Contained object */ function &getNotificationObject() { return $this->_notificationObject; } /** * Returns the user info array * @return array user info */ function getNotificationInfo() { return $this->_notificationInfo; } /** * Increase the internal count * * @access public */ function increaseNotificationCount() { ++$this->_notificationCount; } /** * Get the number of posted notifications * * @access public * @return int */ function getNotificationCount() { return $this->_notificationCount; } /** * Cancel the notification * * @access public * @return void */ function cancelNotification() { $this->_notificationState = EVENT_NOTIFICATION_STATE_CANCELLED; } /** * Checks whether the notification has been cancelled * * @access public * @return boolean */ function isNotificationCancelled() { return ($this->_notificationState === EVENT_NOTIFICATION_STATE_CANCELLED); } } ?>