. */ /** * Doctrine_Pager_Range * * @author Guilherme Blanco * @package Doctrine * @subpackage Pager * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @version $Revision$ * @link www.phpdoctrine.com * @since 1.0 */ abstract class Doctrine_Pager_Range { /** * @var array $options Custom Doctrine_Pager_Range implementation options */ protected $options; /** * @var Doctrine_Pager $pager Doctrine_Pager object related to the pager range */ private $pager; /** * __construct * * @param array $options Custom subclass implementation options. * Default is a blank array * @param Doctrine_Pager $pager Optional Doctrine_Pager object to be associated * @return void */ final public function __construct($options = array(), $pager = null) { $this->_setOptions($options); if ($pager !== null) { $this->setPager($pager); } } /** * getPager * * Returns the Doctrine_Pager object related to the pager range * * @return Doctrine_Pager Doctrine_Pager object related to the pager range */ public function getPager() { return $this->pager; } /** * setPager * * Defines the Doctrine_Pager object related to the pager range and * automatically (re-)initialize Doctrine_Pager_Range * * @param $pager Doctrine_Pager object related to the pager range * @return void */ public function setPager($pager) { $this->pager = $pager; // Lazy-load initialization. It only should be called when all // needed information data is ready (this can only happens when we have // options stored and a Doctrine_Pager assocated) $this->_initialize(); } /** * getOptions * * Returns the custom Doctrine_Pager_Range implementation options * * @return array Custom Doctrine_Pager_Range implementation options */ public function getOptions() { return $this->options; } /** * _setOptions * * Defines the subclass implementation options * * @param $options Custom Doctrine_Pager_Range implementation options * @return void */ protected function _setOptions($options) { $this->options = $options; } /** * _initialize * * Initialize Doctrine_Page_Range subclass which does custom class definitions * * @return void */ abstract protected function _initialize(); /** * rangeAroundPage * * Calculate and returns an array representing the range around the current page * * @return array */ abstract public function rangeAroundPage(); }