00001 <?php 00024 class UserDatabaseWrapper extends BaseDatabaseWrapper { 00025 // Constants for exceptions 00026 const EXCEPTION_CLIENT_USERNAME_NOT_FOUND = 0x180; 00027 00028 // Constants for database columns 00029 const DB_COLUMN_USERID = "userid"; 00030 const DB_COLUMN_USERNAME = "username"; 00031 const DB_COLUMN_EMAIL = "email"; 00032 const DB_COLUMN_CONFIRM_HASH = "confirm_hash"; 00033 const DB_COLUMN_USER_STATUS = "user_status"; 00034 00035 // Constants for database table names 00036 const DB_TABLE_USER = "user"; 00037 00043 protected function __construct() { 00044 // Call parent constructor 00045 parent::__construct(__CLASS__); 00046 } 00047 00053 public final static function createUserDatabaseWrapper () { 00054 // Get a new instance 00055 $wrapperInstance = new UserDatabaseWrapper(); 00056 00057 // Set (primary!) table name 00058 $wrapperInstance->setTableName(self::DB_TABLE_USER); 00059 00060 // Return the instance 00061 return $wrapperInstance; 00062 } 00063 00069 public final function getIndexKey () { 00070 return $this->getDatabaseInstance()->getIndexKey(); 00071 } 00072 00079 public function insertRegistrationObject (UserRegister $registrationInstance) { 00080 // Generate a data set for the request 00081 $dataSetInstance = ObjectFactory::createObjectByConfiguredName('dataset_criteria_class', array(self::DB_TABLE_USER)); 00082 00083 // Set the primary key 00084 $dataSetInstance->setUniqueKey('username'); 00085 00086 // Add registration elements to the dataset 00087 $registrationInstance->addElementsToDataSet($dataSetInstance); 00088 00089 // "Insert" this request instance completely into the database 00090 $this->getDatabaseInstance()->queryInsertDataSet($dataSetInstance); 00091 } 00092 00099 public function doUpdateByResult (UpdateableResult $resultInstance) { 00100 // Generate a data set object 00101 $dataSetInstance = ObjectFactory::createObjectByConfiguredName('dataset_criteria_class', array(self::DB_TABLE_USER)); 00102 00103 // Add all update criteria to the database set 00104 $resultInstance->addElementsToDataSet($dataSetInstance); 00105 00106 // Add seach criteria 00107 $dataSetInstance->setSearchInstance($resultInstance->getSearchInstance()); 00108 00109 // Set the primary key 00110 $dataSetInstance->setUniqueKey('username'); 00111 00112 // "Update" this request with the database 00113 $this->getDatabaseInstance()->queryUpdateDataSet($dataSetInstance); 00114 } 00115 } 00116 00117 // [EOF] 00118 ?>
1.5.6