_properties = new TList; $this->_propertyMap = new TMap; } public function getProperties(){ return $this->_properties; } public function getID(){ return $this->_ID; } public function setID($value){ $this->_ID = $value; } public function getExtends(){ return $this->_extend; } public function setExtends($value){ $this->_extend = $value; } public function getProperty($index) { if(is_string($index)) return $this->_propertyMap->itemAt($index); else if(is_int($index)) return $this->_properties->itemAt($index); else throw new TDataMapperException( 'sqlmap_index_must_be_string_or_int', $index); } public function addParameterProperty(TParameterProperty $property) { $this->_propertyMap->add($property->getProperty(), $property); $this->_properties->add($property); } public function insertParameterProperty($index, TParameterProperty $property) { $this->_propertyMap->add($property->getProperty(), $property); $this->_properties->insertAt($index, $property); } public function getPropertyNames() { return $this->_propertyMap->getKeys(); } public function getParameter($mapping, $parameterValue, $statement) { $value = $parameterValue; $typeHandler = $mapping->getTypeHandler(); try { $value = TPropertyAccess::get($parameterValue, $mapping->getProperty()); } catch (TInvalidPropertyException $e) { throw new TSqlMapExecutionException( 'sqlmap_unable_to_get_property_for_parameter',$this->getID(), $mapping->getProperty(), get_class($parameterValue), $e->getMessage(), $statement->getID()); } if(!is_null($typeHandler)) { try { $value = $typeHandler->getParameter($value); } catch (Exception $e) { throw new TSqlMapExecutionException( 'sqlmap_error_in_parameter_from_handler',$this->getID(), $value, get_class($typeHandler), $e->getMessage()); } } if(!is_null($nullValue = $mapping->getNullValue())) { if($nullValue === $value) $value = null; } if(!is_null($type = $mapping->getType())) $value = TTypeHandlerFactory::convertToType($type, $value); return $value; } } ?>