PageRenderTime 25ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 1ms

/estadisticas/estadisticas/public/xStreamOld/application/models/catalogs/SecurityControllerCatalog.php

https://bitbucket.org/xsngroup/estadisticas
PHP | 336 lines | 267 code | 11 blank | 58 comment | 5 complexity | b5e838e93d644b108ca4ecb2bd699b29 MD5 | raw file
  1. <?php
  2. /**
  3. * Bender Modeler
  4. *
  5. * Our Simple Models
  6. *
  7. * @category lib
  8. * @package lib_models
  9. * @copyright Copyright (c) 2008-2010 Bender Modeler (http://www.ctrl-zetta.com/#code)
  10. * @author <zetta> <chentepixtol>, $LastChangedBy$
  11. * @version 1.0.0 SVN: $Id$
  12. */
  13. /**
  14. * Dependences
  15. */
  16. require_once "lib/db/Catalog.php";
  17. require_once "application/models/beans/SecurityController.php";
  18. require_once "application/models/exceptions/SecurityControllerException.php";
  19. require_once "application/models/collections/SecurityControllerCollection.php";
  20. require_once "application/models/factories/SecurityControllerFactory.php";
  21. /**
  22. * Singleton SecurityControllerCatalog Class
  23. *
  24. * @category lib
  25. * @package lib_models
  26. * @subpackage lib_models_catalogs
  27. * @copyright Copyright (c) 2008-2010 Bender Modeler (http://www.ctrl-zetta.com/#code)
  28. * @copyright This File as been proudly generated by Bender (http://code.google.com/p/bender-modeler/). <chentepixtol> <zetta>
  29. * @author zetta & chentepixtol
  30. * @version 1.0.0 SVN: $Revision$
  31. */
  32. class SecurityControllerCatalog extends Catalog
  33. {
  34. /**
  35. * Singleton Instance
  36. * @var SecurityControllerCatalog
  37. */
  38. static protected $instance = null;
  39. /**
  40. * Método para obtener la instancia del catálogo
  41. * @return SecurityControllerCatalog
  42. */
  43. public static function getInstance()
  44. {
  45. if (!isset(self::$instance))
  46. {
  47. self::$instance = new self();
  48. }
  49. return self::$instance;
  50. }
  51. /**
  52. * Constructor de la clase SecurityControllerCatalog
  53. * @return SecurityControllerCatalog
  54. */
  55. protected function SecurityControllerCatalog()
  56. {
  57. parent::Catalog();
  58. }
  59. /**
  60. * Metodo para agregar un SecurityController a la base de datos
  61. * @param SecurityController $securityController Objeto SecurityController
  62. */
  63. public function create($securityController)
  64. {
  65. if(!($securityController instanceof SecurityController))
  66. throw new SecurityControllerException("passed parameter isn't a SecurityController instance");
  67. try
  68. {
  69. $data = array(
  70. 'name' => $securityController->getName(),
  71. 'system' => $securityController->getSystem(),
  72. );
  73. $data = array_filter($data, 'Catalog::notNull');
  74. $this->db->insert(SecurityController::TABLENAME, $data);
  75. $securityController->setIdController($this->db->lastInsertId());
  76. }
  77. catch(Exception $e)
  78. {
  79. throw new SecurityControllerException("The SecurityController can't be saved \n" . $e->getMessage());
  80. }
  81. }
  82. /**
  83. * Metodo para Obtener los datos de un objeto por su llave primaria
  84. * @param int $idController
  85. * @return SecurityController|null
  86. */
  87. public function getById($idController)
  88. {
  89. try
  90. {
  91. $criteria = new Criteria();
  92. $criteria->add(SecurityController::ID_CONTROLLER, $idController, Criteria::EQUAL);
  93. $newSecurityController = $this->getByCriteria($criteria)->getOne();
  94. }
  95. catch(Exception $e)
  96. {
  97. throw new SecurityControllerException("Can't obtain the SecurityController \n" . $e->getMessage());
  98. }
  99. return $newSecurityController;
  100. }
  101. /**
  102. * Metodo para Obtener una colección de objetos por varios ids
  103. * @param array $ids
  104. * @return SecurityControllerCollection
  105. */
  106. public function getByIds(array $ids)
  107. {
  108. if(null == $ids) return new SecurityControllerCollection();
  109. try
  110. {
  111. $criteria = new Criteria();
  112. $criteria->add(SecurityController::ID_CONTROLLER, $ids, Criteria::IN);
  113. $securityControllerCollection = $this->getByCriteria($criteria);
  114. }
  115. catch(Exception $e)
  116. {
  117. throw new SecurityControllerException("SecurityControllerCollection can't be populated\n" . $e->getMessage());
  118. }
  119. return $securityControllerCollection;
  120. }
  121. /**
  122. * Metodo para Obtener todos los ids en un arreglo
  123. * @return array
  124. */
  125. public function retrieveAllIds()
  126. {
  127. try
  128. {
  129. $result = $this->db->fetchCol('SELECT id_controller FROM '.SecurityController::TABLENAME);
  130. }
  131. catch(Exception $e)
  132. {
  133. throw new SecurityControllerException("Can't obtain the ids\n" . $e->getMessage());
  134. }
  135. return $result;
  136. }
  137. /**
  138. * Metodo para actualizar un SecurityController
  139. * @param SecurityController $securityController
  140. */
  141. public function update($securityController)
  142. {
  143. if(!($securityController instanceof SecurityController))
  144. throw new SecurityControllerException("passed parameter isn't a SecurityController instance");
  145. try
  146. {
  147. $where[] = "id_controller = '{$securityController->getIdController()}'";
  148. $data = array(
  149. 'name' => $securityController->getName(),
  150. 'system' => $securityController->getSystem(),
  151. );
  152. $data = array_filter($data, 'Catalog::notNull');
  153. $this->db->update(SecurityController::TABLENAME, $data, $where);
  154. }
  155. catch(Exception $e)
  156. {
  157. throw new SecurityControllerException("The SecurityController can't be updated \n" . $e->getMessage());
  158. }
  159. }
  160. /**
  161. * Metodo para guardar un securityController
  162. * @param SecurityController $securityController
  163. */
  164. public function save($securityController)
  165. {
  166. if(!($securityController instanceof SecurityController))
  167. throw new SecurityControllerException("passed parameter isn't a SecurityController instance");
  168. if(null != $securityController->getIdController())
  169. $this->update($securityController);
  170. else
  171. $this->create($securityController);
  172. }
  173. /**
  174. * Metodo para eliminar un securityController
  175. * @param SecurityController $securityController
  176. */
  177. public function delete($securityController)
  178. {
  179. if(!($securityController instanceof SecurityController))
  180. throw new SecurityControllerException("passed parameter isn't a SecurityController instance");
  181. $this->deleteById($securityController->getIdController());
  182. }
  183. /**
  184. * Metodo para eliminar un SecurityController a partir de su Id
  185. * @param int $idController
  186. */
  187. public function deleteById($idController)
  188. {
  189. try
  190. {
  191. $where = array($this->db->quoteInto('id_controller = ?', $idController));
  192. $this->db->delete(SecurityController::TABLENAME, $where);
  193. }
  194. catch(Exception $e)
  195. {
  196. throw new SecurityControllerException("The SecurityController can't be deleted\n" . $e->getMessage());
  197. }
  198. }
  199. /**
  200. * Metodo para eliminar varios SecurityController a partir de su Id
  201. * @param array $ids
  202. */
  203. public function deleteByIds(array $ids)
  204. {
  205. try
  206. {
  207. $criteria = new Criteria();
  208. $criteria->add(SecurityController::ID_CONTROLLER, $ids, Criteria::IN);
  209. $this->db->delete(SecurityController::TABLENAME, array($criteria->createSql()));
  210. }
  211. catch(Exception $e)
  212. {
  213. throw new SecurityControllerException("Can't delete that\n" . $e->getMessage());
  214. }
  215. }
  216. /**
  217. * Metodo para obtener todos los id de SecurityController por criterio
  218. * @param Criteria $criteria
  219. * @return array Array con todos los id de SecurityController que encajen en la busqueda
  220. */
  221. public function getIdsByCriteria(Criteria $criteria = null)
  222. {
  223. $criteria = (null === $criteria) ? new Criteria() : $criteria;
  224. try
  225. {
  226. $sql = "SELECT id_controller
  227. FROM ".SecurityController::TABLENAME."
  228. WHERE " . $criteria->createSql();
  229. $ids = $this->db->fetchCol($sql);
  230. } catch(Exception $e)
  231. {
  232. throw new SecurityControllerException("Can't obtain SecurityController's id\n" . $e->getMessage());
  233. }
  234. return $ids;
  235. }
  236. /**
  237. * Metodo para obtener un campo en particular de un SecurityController dado un criterio
  238. * @param string $field
  239. * @param Criteria $criteria
  240. * @return array Array con el campo de los objetos SecurityController que encajen en la busqueda
  241. */
  242. public function getCustomFieldByCriteria($field, Criteria $criteria = null)
  243. {
  244. $criteria = (null === $criteria) ? new Criteria() : $criteria;
  245. try
  246. {
  247. $sql = "SELECT {$field}
  248. FROM ".SecurityController::TABLENAME."
  249. WHERE " . $criteria->createSql();
  250. $result = $this->db->fetchCol($sql);
  251. } catch(Zend_Db_Exception $e)
  252. {
  253. throw new SecurityControllerException("No se pudieron obtener los ids de objetos {$Bean}\n" . $e->getMessage());
  254. }
  255. return $result;
  256. }
  257. /**
  258. * Metodo que regresa una coleccion de objetos SecurityController
  259. * dependiendo del criterio establecido
  260. * @param Criteria $criteria
  261. * @return SecurityControllerCollection $securityControllerCollection
  262. */
  263. public function getByCriteria(Criteria $criteria = null)
  264. {
  265. $criteria = (null === $criteria) ? new Criteria() : $criteria;
  266. $this->db->setFetchMode(Zend_Db::FETCH_ASSOC);
  267. try
  268. {
  269. $sql = "SELECT * FROM ".SecurityController::TABLENAME."
  270. WHERE " . $criteria->createSql();
  271. $securityControllerCollection = new SecurityControllerCollection();
  272. foreach ($this->db->fetchAll($sql) as $result){
  273. $securityControllerCollection->append($this->getSecurityControllerInstance($result));
  274. }
  275. }
  276. catch(Zend_Db_Exception $e)
  277. {
  278. throw new SecurityControllerException("Cant obtain SecurityControllerCollection\n" . $e->getMessage());
  279. }
  280. return $securityControllerCollection;
  281. }
  282. /**
  283. * Metodo que cuenta SecurityController
  284. * dependiendo del criterio establecido
  285. * @param Criteria $criteria
  286. * @param string $field
  287. * @return int $count
  288. */
  289. public function countByCriteria(Criteria $criteria = null, $field = 'id_controller')
  290. {
  291. $criteria = (null === $criteria) ? new Criteria() : $criteria;
  292. try
  293. {
  294. $sql = "SELECT COUNT( $field ) FROM ".SecurityController::TABLENAME."
  295. WHERE " . $criteria->createSql();
  296. $count = $this->db->fetchOne($sql);
  297. }
  298. catch(Zend_Db_Exception $e)
  299. {
  300. throw new SecurityControllerException("Cant obtain the count \n" . $e->getMessage());
  301. }
  302. return $count;
  303. }
  304. /**
  305. * Método que construye un objeto SecurityController y lo rellena con la información del rowset
  306. * @param array $result El arreglo que devolvió el objeto Zend_Db despues del fetch
  307. * @return SecurityController
  308. */
  309. private function getSecurityControllerInstance($result)
  310. {
  311. return SecurityControllerFactory::createFromArray($result);
  312. }
  313. }