| 
<?php
 /**
 * Abstract event handler.
 * This class sets the base of custom event handler.
 * These handlers are the event filters - if they accept the event, then will export it
 *
 *
 * @author Marius Zadara <[email protected]>
 * @category org.zadara.marius.logger.classes
 * @copyright (C) 2008 Marius Zadara <[email protected]>
 * @license GNU GPL
 * @package org.zadara.marius.logger
 * @abstract
 *
 */
 abstract class EventHandler
 {
 /**
 * Unique id of the event handler
 * @access protected
 */
 protected $uniqueId;
 
 /**
 * Event handler exporter.
 * On this exporter the export function will be called
 * if the event has been accepted.
 *
 * @access protected
 */
 protected $eventExporter;
 
 /**
 * Default constructor.
 * It sets the values of the fields.
 *
 * @access public
 * @param String $uniqueId Unique id of the handler
 * @return EventHandler
 */
 public function EventHandler($uniqueId = null)
 {
 // set the event exporter
 $this->eventExporter = null;
 
 // and the unique id
 $this->uniqueId = is_null($uniqueId) ? uniqid() : $uniqueId;
 }
 
 
 /**
 * Definition of the function that accepts the event.
 * The body of this function will be set into the custom event handlers
 * based on this class. In this function you can define any kind of rules
 * that will accept or reject the event
 *
 * @access public
 * @param Event $event The new event to be accepted - or not
 * @return boolean
 */
 public abstract function isEventAccepted($event);
 
 
 /**
 * Handler unique id getter
 * @access public
 * @final
 */
 public final function getUniqueId()
 {
 return $this->uniqueId;
 }
 
 
 /**
 * Function to set the handler's exporter.
 * This object will be used to export the event.
 *
 * @param EventExporter $exporter The exporter object
 * @see EventExporter
 * @final
 * @access public
 */
 public final function setExporter($exporter)
 {
 if ($this->eventExporter != null)
 return;
 
 $this->eventExporter = $exporter;
 
 }
 
 
 /**
 * Function to get the event handler's exporter object.
 *
 * @access public
 * @final
 * @return eventExporter
 */
 public final function getExporter()
 {
 return $this->eventExporter;
 }
 
 }
 
 
 ?>
 |