Changeset 1438

Show
Ignore:
Timestamp:
03/19/08 17:47:47 (2 months ago)
Author:
mikey
Message:

refactoring #137, part 1: enhanced page factories

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/main/php/net/stubbles/lang/exceptions/stubConfigurationException.php

    r1014 r1438  
    77 * @subpackage  lang_exceptions 
    88 */ 
     9stubClassLoader::load('net::stubbles::lang::exceptions::stubChainedException'); 
    910/** 
    1011 * Exception to be thrown in case any component has not been configured correctly 
     
    1314 * @subpackage  lang_exceptions 
    1415 */ 
    15 class stubConfigurationException extends stubException 
     16class stubConfigurationException extends stubChainedException 
    1617{ 
    1718    // nothing to do 
  • trunk/src/main/php/net/stubbles/websites/rasmus/stubPageRasmusFactory.php

    r1362 r1438  
    77 * @subpackage  websites_rasmus 
    88 */ 
    9 stubClassLoader::load('net::stubbles::websites::stubPageConfigurationException', 
    10                       'net::stubbles::websites::stubPageFactory', 
     9stubClassLoader::load('net::stubbles::websites::stubAbstractPageFactory', 
    1110                      'net::stubbles::websites::rasmus::stubRasmusPage' 
    1211); 
     
    1716 * @subpackage  websites_rasmus 
    1817 */ 
    19 class stubPageRasmusFactory extends stubBaseObject implements stubPageFactory 
     18class stubPageRasmusFactory extends stubAbstractPageFactory 
    2019{ 
    2120    /** 
     
    6665     * @param   string          $configSource   source of the page configuration to use 
    6766     * @return  stubRasmusPage 
    68      * @throws  stubPageConfigurationException 
    6967     */ 
    7068    public function getPage($configSource) 
  • trunk/src/main/php/net/stubbles/websites/stubPageFactory.php

    r1231 r1438  
    77 * @subpackage  websites 
    88 */ 
    9 stubClassLoader::load('net::stubbles::websites::stubPage', 
    10                       'net::stubbles::websites::stubPageConfigurationException
     9stubClassLoader::load('net::stubbles::ipo::request::stubRequest', 
     10                      'net::stubbles::websites::stubPage
    1111); 
    1212/** 
     
    1818interface stubPageFactory extends stubObject 
    1919{ 
     20 
     21    /** 
     22     * sets page name prefix  
     23     * 
     24     * @param  string  $pagePrefix 
     25     */ 
     26    public function setPagePrefix($pagePrefix); 
     27 
     28    /** 
     29     * sets name of home page 
     30     * 
     31     * @param  string  $indexPageName 
     32     */ 
     33    public function setIndexPageName($indexPageName); 
     34 
     35    /** 
     36     * sets the name of the request parameter containing the page name 
     37     * 
     38     * @param  string  $requestParamName 
     39     */ 
     40    public function setRequestParamName($requestParamName); 
     41 
     42    /** 
     43     * retrieves the page name 
     44     * 
     45     * @param   stubRequest  $request 
     46     * @return  string 
     47     */ 
     48    public function getPageName(stubRequest $request); 
     49 
    2050    /** 
    2151     * checks whether the page factory knows the page or not 
    2252     * 
    23      * @param   string  $configSource  source of the page configuration to use 
     53     * @param   string  $pageName  name of the page to check for 
    2454     * @return  bool 
    2555     */ 
    26     public function hasPage($configSource); 
    27      
     56    public function hasPage($pageName); 
     57 
    2858    /** 
    2959     * returns the configured stubPage instance 
    3060     * 
    31      * @param   string    $configSource  source of the page configuration to us
     61     * @param   string    $pageName  name of the page to retriev
    3262     * @return  stubPage 
    33      * @throws  stubPageConfigurationException 
    3463     */ 
    35     public function getPage($configSource); 
     64    public function getPage($pageName); 
    3665} 
    3766?> 
  • trunk/src/main/php/net/stubbles/websites/stubPageXJConfFactory.php

    r1232 r1438  
    77 * @subpackage  websites 
    88 */ 
    9 stubClassLoader::load('net::stubbles::util::stubRegistry', 
     9stubClassLoader::load('net::stubbles::lang::exceptions::stubConfigurationException', 
     10                      'net::stubbles::util::stubRegistry', 
    1011                      'net::stubbles::util::xjconf::xjconf', 
    11                       'net::stubbles::websites::stubPageConfigurationException', 
    12                       'net::stubbles::websites::stubPageFactory' 
     12                      'net::stubbles::websites::stubAbstractPageFactory' 
    1313); 
    1414/** 
     
    1818 * @subpackage  websites 
    1919 */ 
    20 class stubPageXJConfFactory extends stubBaseObject implements stubPageFactory 
     20class stubPageXJConfFactory extends stubAbstractPageFactory 
    2121{ 
    2222    /** 
     
    5959    public function hasPage($configSource) 
    6060    { 
    61         return file_exists($this->configPath . $configSource . '.xml'); 
     61        return file_exists($this->configPath . $this->pagePrefix . $configSource . '.xml'); 
    6262    } 
    6363 
     
    6767     * @param   string    $configSource   source of the page configuration to use 
    6868     * @return  stubPage 
    69      * @throws  stubPageConfigurationException 
    7069     */ 
    7170    public function getPage($configSource) 
    7271    { 
    73         $configSource = str_replace('/', DIRECTORY_SEPARATOR, $configSource); 
     72        $configSource = str_replace('/', DIRECTORY_SEPARATOR, $this->pagePrefix . $configSource); 
    7473        $cacheSource  = $this->cachePath . $configSource . '.cache'; 
    7574        $configSource = $this->configPath . $configSource . '.xml'; 
     
    108107     * @param   string    $configSource   source of the page configuration to use 
    109108     * @return  stubPage 
    110      * @throws  stubPageConfigurationException 
     109     * @throws  stubConfigurationException 
    111110     */ 
    112111    protected function getPageFromXJConf($configSource) 
     
    125124            return self::$xjconf->getConfigValue('page'); 
    126125        } catch (stubXJConfException $xjce) { 
    127             throw new stubPageConfigurationException('Can not read page configuration from ' . $configSource, $xjce); 
     126            throw new stubConfigurationException('Can not read page configuration from ' . $configSource, $xjce); 
    128127        } 
    129128    } 
  • trunk/src/test/php/net/stubbles/integration/stubPageXJConfFactoryTestCase.php

    r1308 r1438  
    2424    { 
    2525        $pageFactory = new stubPageXJConfFactory(); 
    26         $page        = $pageFactory->getPage('conf/index'); 
     26        $pageFactory->setPagePrefix('conf/'); 
     27        $page        = $pageFactory->getPage('index'); 
    2728        $this->assertEquals('default', $page->getProperty('skin')); 
    2829        $elements = $page->getElements(); 
     
    3435        // cached 
    3536        $pageFactory = new stubPageXJConfFactory(); 
    36         $page        = $pageFactory->getPage('conf/index'); 
     37        $pageFactory->setPagePrefix('conf/'); 
     38        $page        = $pageFactory->getPage('index'); 
    3739        $this->assertEquals('default', $page->getProperty('skin')); 
    3840        $elements = $page->getElements(); 
  • trunk/src/test/php/net/stubbles/websites/WebsitesTestSuite.php

    r1431 r1438  
    2424        $suite = new self(); 
    2525        $dir   = dirname(__FILE__); 
     26        $suite->addTestFile($dir . '/stubAbstractPageFactoryTestCase.php'); 
    2627        $suite->addTestFile($dir . '/stubDefaultWebsiteInitializerTestCase.php'); 
    2728        $suite->addTestFile($dir . '/stubFrontControllerTestCase.php'); 
     
    4041 
    4142        // processors 
    42         $suite->addTestFile($dir . '/processors/stubAbstractPageProcessorTestCase.php'); 
    4343        $suite->addTestFile($dir . '/processors/stubAbstractProcessorResolverTestCase.php'); 
    4444        $suite->addTestFile($dir . '/processors/stubAbstractProcessorTestCase.php');