Changeset 1926
- Timestamp:
- 11/11/08 00:50:23 (2 months ago)
- Files:
-
- framework/trunk/src/main/php/net/stubbles/rdbms/persistence/finder/stubDatabaseFinder.php (modified) (3 diffs)
- framework/trunk/src/main/php/net/stubbles/rdbms/persistence/serializer/stubDatabaseSerializer.php (modified) (2 diffs)
- framework/trunk/src/main/php/net/stubbles/rdbms/persistence/stubSetterMethodHelper.php (modified) (6 diffs)
- framework/trunk/src/test/php/net/stubbles/rdbms/persistence/stubSetterMethodHelperTestCase.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
framework/trunk/src/main/php/net/stubbles/rdbms/persistence/finder/stubDatabaseFinder.php
r1925 r1926 93 93 } 94 94 95 $setterMethodHelper = new stubSetterMethodHelper($entityClass );95 $setterMethodHelper = new stubSetterMethodHelper($entityClass->getName()); 96 96 $data = $this->fetchData($entityClass, $setterMethodHelper, null, $primaryKeys); 97 97 if (count($data) === 0) { … … 121 121 } 122 122 123 $setterMethodHelper = new stubSetterMethodHelper($entityClass );123 $setterMethodHelper = new stubSetterMethodHelper($entityClass->getName()); 124 124 $data = $this->fetchData($entityClass, $setterMethodHelper, $criterion, null, $orderBy, $offset, $amount); 125 125 $finderResult = new stubDatabaseFinderResult($entityClass, $data, $setterMethodHelper); … … 143 143 } 144 144 145 $setterMethodHelper = new stubSetterMethodHelper($entityClass );145 $setterMethodHelper = new stubSetterMethodHelper($entityClass->getName()); 146 146 $data = $this->fetchData($entityClass, $setterMethodHelper, null, null, $orderBy, $offset, $amount); 147 147 $finderResult = new stubDatabaseFinderResult($entityClass, $data, $setterMethodHelper); framework/trunk/src/main/php/net/stubbles/rdbms/persistence/serializer/stubDatabaseSerializer.php
r1925 r1926 214 214 throw new stubDatabaseSerializerException('Persistence error for ' . $entityClass->getFullQualifiedClassName() . ': should be updated, but one primary key column is null: ' . $method); 215 215 } elseif (null === $value) { 216 $primaryKeys[$method] = array('setterMethod' => stubSetterMethodHelper::getSetterMethodName($column, $entityClass , $method),216 $primaryKeys[$method] = array('setterMethod' => stubSetterMethodHelper::getSetterMethodName($column, $entityClass->getName(), $method), 217 217 'tableName' => $tableRow->getTableName() 218 218 ); … … 228 228 } 229 229 230 $defaultValues[] = array('setterMethod' => stubSetterMethodHelper::getSetterMethodName($column, $entityClass , $method),230 $defaultValues[] = array('setterMethod' => stubSetterMethodHelper::getSetterMethodName($column, $entityClass->getName(), $method), 231 231 'value' => $value, 232 232 'defaultValue' => $defaultValue, framework/trunk/src/main/php/net/stubbles/rdbms/persistence/stubSetterMethodHelper.php
r1925 r1926 6 6 * @package stubbles 7 7 * @subpackage rdbms_persistence 8 * @version $Id$ 8 9 */ 9 10 stubClassLoader::load('net::stubbles::lang::types::stubDate', 10 11 'net::stubbles::rdbms::querybuilder::stubDatabaseTableColumn', 11 'net::stubbles::rdbms::persistence::stubPersistenceException', 12 'net::stubbles::reflection::reflection' 12 'net::stubbles::rdbms::persistence::stubPersistenceException' 13 13 ); 14 14 /** … … 21 21 { 22 22 /** 23 * reflection instance forclass to collect setter methods of23 * name of class to collect setter methods of 24 24 * 25 * @var st ubBaseReflectionClass25 * @var string 26 26 */ 27 protected $ refBaseClass;27 protected $className; 28 28 /** 29 29 * list of setter methods … … 36 36 * constructor 37 37 * 38 * @param st ubBaseReflectionClass $refBaseClass reflection instance forclass to collect setter methods of38 * @param string $className name of class to collect setter methods of 39 39 */ 40 public function __construct( stubBaseReflectionClass $refBaseClass)40 public function __construct($className) 41 41 { 42 $this-> refBaseClass = $refBaseClass;42 $this->className = $className; 43 43 } 44 44 … … 52 52 public function addSetterMethod(stubDatabaseTableColumn $dbColumn, $getterMethodName) 53 53 { 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), 55 55 'type' => $dbColumn->getType() 56 56 ); … … 66 66 public function applySetterMethods($entity, array $data) 67 67 { 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); 71 70 } 72 71 … … 89 88 * 90 89 * @param stubDatabaseTableColumn $dbColumn description of column 91 * @param st ubBaseReflectionClass $refBaseClass the class thatcontains the method90 * @param string $className name of class which contains the method 92 91 * @param string $getterMethodName name of the method annotated with DBColumn 93 92 * @return string name of setter setter method 94 93 * @throws stubPersistenceException 95 94 */ 96 public static function getSetterMethodName(stubDatabaseTableColumn $dbColumn, stubBaseReflectionClass $refBaseClass, $getterMethodName)95 public static function getSetterMethodName(stubDatabaseTableColumn $dbColumn, $className, $getterMethodName) 97 96 { 98 97 $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.'); 101 100 } 102 101 framework/trunk/src/test/php/net/stubbles/rdbms/persistence/stubSetterMethodHelperTestCase.php
r1896 r1926 6 6 * @package stubbles 7 7 * @subpackage rdbms_persistence_test 8 * @version $Id$ 8 9 */ 9 10 stubClassLoader::load('net::stubbles::rdbms::persistence::stubSetterMethodHelper', … … 33 34 public function setUp() 34 35 { 35 $refClass = new stubReflectionClass('MockSinglePrimaryKeyEntity'); 36 $this->setterMethodHelper = new stubSetterMethodHelper($refClass); 36 $this->setterMethodHelper = new stubSetterMethodHelper('MockSinglePrimaryKeyEntity'); 37 37 } 38 38
