Changeset 1926

Show
Ignore:
Timestamp:
11/11/08 00:50:23 (2 months ago)
Author:
mikey
Message:

follow-up to refactoring #183: get rid of reflection dependency in net::stubbles::rdbms::persistence::stubSetterMethodHelper

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • framework/trunk/src/main/php/net/stubbles/rdbms/persistence/finder/stubDatabaseFinder.php

    r1925 r1926  
    9393        } 
    9494         
    95         $setterMethodHelper = new stubSetterMethodHelper($entityClass); 
     95        $setterMethodHelper = new stubSetterMethodHelper($entityClass->getName()); 
    9696        $data               = $this->fetchData($entityClass, $setterMethodHelper, null, $primaryKeys); 
    9797        if (count($data) === 0) { 
     
    121121        } 
    122122         
    123         $setterMethodHelper = new stubSetterMethodHelper($entityClass); 
     123        $setterMethodHelper = new stubSetterMethodHelper($entityClass->getName()); 
    124124        $data               = $this->fetchData($entityClass, $setterMethodHelper, $criterion, null, $orderBy, $offset, $amount); 
    125125        $finderResult       = new stubDatabaseFinderResult($entityClass, $data, $setterMethodHelper); 
     
    143143        } 
    144144         
    145         $setterMethodHelper = new stubSetterMethodHelper($entityClass); 
     145        $setterMethodHelper = new stubSetterMethodHelper($entityClass->getName()); 
    146146        $data               = $this->fetchData($entityClass, $setterMethodHelper, null, null, $orderBy, $offset, $amount); 
    147147        $finderResult       = new stubDatabaseFinderResult($entityClass, $data, $setterMethodHelper); 
  • framework/trunk/src/main/php/net/stubbles/rdbms/persistence/serializer/stubDatabaseSerializer.php

    r1925 r1926  
    214214                    throw new stubDatabaseSerializerException('Persistence error for ' . $entityClass->getFullQualifiedClassName() . ': should be updated, but one primary key column is null: ' . $method); 
    215215                } elseif (null === $value) { 
    216                     $primaryKeys[$method] = array('setterMethod' => stubSetterMethodHelper::getSetterMethodName($column, $entityClass, $method), 
     216                    $primaryKeys[$method] = array('setterMethod' => stubSetterMethodHelper::getSetterMethodName($column, $entityClass->getName(), $method), 
    217217                                                  'tableName'    => $tableRow->getTableName() 
    218218                                            ); 
     
    228228                } 
    229229                 
    230                 $defaultValues[] = array('setterMethod' => stubSetterMethodHelper::getSetterMethodName($column, $entityClass, $method), 
     230                $defaultValues[] = array('setterMethod' => stubSetterMethodHelper::getSetterMethodName($column, $entityClass->getName(), $method), 
    231231                                         'value'        => $value, 
    232232                                         'defaultValue' => $defaultValue, 
  • framework/trunk/src/main/php/net/stubbles/rdbms/persistence/stubSetterMethodHelper.php

    r1925 r1926  
    66 * @package     stubbles 
    77 * @subpackage  rdbms_persistence 
     8 * @version     $Id$ 
    89 */ 
    910stubClassLoader::load('net::stubbles::lang::types::stubDate', 
    1011                      'net::stubbles::rdbms::querybuilder::stubDatabaseTableColumn', 
    11                       'net::stubbles::rdbms::persistence::stubPersistenceException', 
    12                       'net::stubbles::reflection::reflection' 
     12                      'net::stubbles::rdbms::persistence::stubPersistenceException' 
    1313); 
    1414/** 
     
    2121{ 
    2222    /** 
    23      * reflection instance for class to collect setter methods of 
     23     * name of class to collect setter methods of 
    2424     * 
    25      * @var  stubBaseReflectionClass 
     25     * @var  string 
    2626     */ 
    27     protected $refBaseClass
     27    protected $className
    2828    /** 
    2929     * list of setter methods 
     
    3636     * constructor 
    3737     * 
    38      * @param  stubBaseReflectionClass  $refBaseClass  reflection instance for class to collect setter methods of 
     38     * @param  string  $className  name of class to collect setter methods of 
    3939     */ 
    40     public function __construct(stubBaseReflectionClass $refBaseClass
     40    public function __construct($className
    4141    { 
    42         $this->refBaseClass = $refBaseClass
     42        $this->className = $className
    4343    } 
    4444 
     
    5252    public function addSetterMethod(stubDatabaseTableColumn $dbColumn, $getterMethodName) 
    5353    { 
    54         $this->setterMethods[$dbColumn->getName()] = array('setterMethod' => self::getSetterMethodName($dbColumn, $this->refBaseClass, $getterMethodName), 
     54        $this->setterMethods[$dbColumn->getName()] = array('setterMethod' => self::getSetterMethodName($dbColumn, $this->className, $getterMethodName), 
    5555                                                           'type'         => $dbColumn->getType() 
    5656                                                     ); 
     
    6666    public function applySetterMethods($entity, array $data) 
    6767    { 
    68         $className = $this->refBaseClass->getName(); 
    69         if (($entity instanceof $className) === false) { 
    70             throw new stubPersistenceException('Given entity must be of type ' . $this->refBaseClass->getFullQualifiedClassName()); 
     68        if (($entity instanceof $this->className) === false) { 
     69            throw new stubPersistenceException('Given entity must be of type ' . $this->className); 
    7170        } 
    7271         
     
    8988     * 
    9089     * @param   stubDatabaseTableColumn   $dbColumn          description of column 
    91      * @param   stubBaseReflectionClass   $refBaseClass      the class that contains the method 
     90     * @param   string                    $className         name of class which contains the method 
    9291     * @param   string                    $getterMethodName  name of the method annotated with DBColumn 
    9392     * @return  string                    name of setter setter method 
    9493     * @throws  stubPersistenceException 
    9594     */ 
    96     public static function getSetterMethodName(stubDatabaseTableColumn $dbColumn, stubBaseReflectionClass $refBaseClass, $getterMethodName) 
     95    public static function getSetterMethodName(stubDatabaseTableColumn $dbColumn, $className, $getterMethodName) 
    9796    { 
    9897        $setterMethodName = (($dbColumn->hasSetterMethod() == true) ? ($dbColumn->getSetterMethod()) : (str_replace('get', 'set', $getterMethodName))); 
    99         if (in_array($setterMethodName, get_class_methods($refBaseClass->getName())) === false) { 
    100             throw new stubPersistenceException('Public setter method ' . $refBaseClass->getFullQualifiedClassName() . '::' . $setterMethodName . '() for database field ' . $dbColumn->getName() . '  does not exist.'); 
     98        if (in_array($setterMethodName, get_class_methods($className)) === false) { 
     99            throw new stubPersistenceException('Public setter method ' . $className . '::' . $setterMethodName . '() for database field ' . $dbColumn->getName() . '  does not exist.'); 
    101100        } 
    102101         
  • framework/trunk/src/test/php/net/stubbles/rdbms/persistence/stubSetterMethodHelperTestCase.php

    r1896 r1926  
    66 * @package     stubbles 
    77 * @subpackage  rdbms_persistence_test 
     8 * @version     $Id$ 
    89 */ 
    910stubClassLoader::load('net::stubbles::rdbms::persistence::stubSetterMethodHelper', 
     
    3334    public function setUp() 
    3435    { 
    35         $refClass = new stubReflectionClass('MockSinglePrimaryKeyEntity'); 
    36         $this->setterMethodHelper = new stubSetterMethodHelper($refClass); 
     36        $this->setterMethodHelper = new stubSetterMethodHelper('MockSinglePrimaryKeyEntity'); 
    3737    } 
    3838