/package/app/app/alpha/lib/model/assetPeer.php

https://github.com/richhl/kalturaCE · PHP · 277 lines · 159 code · 37 blank · 81 comment · 13 complexity · 795da36216d9df72bb336ff302919f8f MD5 · raw file

  1. <?php
  2. /**
  3. * Subclass for performing query and update operations on the 'flavor_asset' table.
  4. *
  5. *
  6. *
  7. * @package Core
  8. * @subpackage model
  9. */
  10. class assetPeer extends BaseassetPeer
  11. {
  12. // cache classes by their type
  13. protected static $class_types_cache = array(
  14. assetType::FLAVOR => flavorAssetPeer::OM_CLASS,
  15. assetType::THUMBNAIL => thumbAssetPeer::OM_CLASS,
  16. );
  17. /**
  18. * @var assetParamsPeer
  19. */
  20. protected static $instance = null;
  21. public static function resetInstanceCriteriaFilter()
  22. {
  23. self::$instance = null;
  24. if ( self::$s_criteria_filter == null )
  25. self::$s_criteria_filter = new criteriaFilter ();
  26. $c = self::$s_criteria_filter->getFilter();
  27. if($c)
  28. {
  29. $c->remove(self::STATUS);
  30. $c->remove(self::TYPE);
  31. }
  32. else
  33. {
  34. $c = new Criteria();
  35. }
  36. $c->add(self::STATUS, asset::FLAVOR_ASSET_STATUS_DELETED, Criteria::NOT_EQUAL);
  37. self::$s_criteria_filter->setFilter ( $c );
  38. }
  39. public function setInstanceCriteriaFilter()
  40. {
  41. }
  42. /**
  43. * Returns the default criteria filter
  44. *
  45. * @return criteriaFilter The default criteria filter.
  46. */
  47. public static function &getCriteriaFilter()
  48. {
  49. if(self::$s_criteria_filter == null)
  50. self::setDefaultCriteriaFilter();
  51. if(self::$instance)
  52. self::$instance->setInstanceCriteriaFilter();
  53. return self::$s_criteria_filter;
  54. }
  55. /**
  56. * The returned Class will contain objects of the default type or
  57. * objects that inherit from the default.
  58. *
  59. * @param array $row PropelPDO result row.
  60. * @param int $colnum Column to examine for OM class information (first is 0).
  61. * @throws PropelException Any exceptions caught during processing will be
  62. * rethrown wrapped into a PropelException.
  63. */
  64. public static function getOMClass($row, $colnum)
  65. {
  66. if($row)
  67. {
  68. $assetType = $row[$colnum + 21]; // type column
  69. if(isset(self::$class_types_cache[$assetType]))
  70. return self::$class_types_cache[$assetType];
  71. $extendedCls = KalturaPluginManager::getObjectClass(parent::OM_CLASS, $assetType);
  72. if($extendedCls)
  73. {
  74. self::$class_types_cache[$assetType] = $extendedCls;
  75. return $extendedCls;
  76. }
  77. self::$class_types_cache[$assetType] = parent::OM_CLASS;
  78. }
  79. return parent::OM_CLASS;
  80. }
  81. /**
  82. *
  83. * @return flavorAsset
  84. */
  85. public static function retrieveByPKNoFilter ($pk, $con = null)
  86. {
  87. self::setUseCriteriaFilter ( false );
  88. $res = parent::retrieveByPK( $pk , $con );
  89. self::setUseCriteriaFilter ( true );
  90. return $res;
  91. }
  92. public static function retrieveByPKsNoFilter ($pks, $con = null)
  93. {
  94. self::setUseCriteriaFilter ( false );
  95. $res = parent::retrieveByPKs( $pks , $con );
  96. self::setUseCriteriaFilter ( true );
  97. return $res;
  98. }
  99. /**
  100. * Retrieve by ID instead of INT_ID
  101. * @param int $id
  102. * @param $con
  103. * @return asset
  104. */
  105. public static function retrieveById($id, $con = null)
  106. {
  107. $c = new Criteria();
  108. $c->add(assetPeer::ID, $id);
  109. return assetPeer::doSelectOne($c, $con);
  110. }
  111. /**
  112. * @param string $entryId
  113. * @return asset
  114. */
  115. public static function retrieveOriginalByEntryId($entryId)
  116. {
  117. $c = new Criteria();
  118. $c->add(self::ENTRY_ID, $entryId);
  119. $c->add(self::IS_ORIGINAL, true);
  120. return self::doSelectOne($c);
  121. }
  122. /**
  123. * Retrieve by IDs instead of INT_ID
  124. * @param $ids
  125. * @param $con
  126. * @return array<asset>
  127. */
  128. public static function retrieveByIds($ids, $con = null)
  129. {
  130. $c = new Criteria();
  131. $c->add(assetPeer::ID, $ids, Criteria::IN);
  132. return assetPeer::doSelect($c, $con);
  133. }
  134. public static function doSelectOneJoinFlavorParams(Criteria $criteria, $con = null)
  135. {
  136. $critcopy = clone $criteria;
  137. $critcopy->setLimit(1);
  138. $objects = assetPeer::doSelectJoinflavorParams($critcopy, $con);
  139. if ($objects) {
  140. return $objects[0];
  141. }
  142. return null;
  143. }
  144. /**
  145. *
  146. * @return flavorAsset
  147. */
  148. public static function retrieveByEntryIdAndExtension($entryId, $extension)
  149. {
  150. $c = new Criteria();
  151. $c->add(self::ENTRY_ID, $entryId);
  152. $c->add(self::FILE_EXT, $extension);
  153. return self::doSelectOne($c);
  154. }
  155. /**
  156. *
  157. * @return flavorAsset
  158. */
  159. public static function retrieveByEntryIdAndParams($entryId, $paramsId)
  160. {
  161. $c = new Criteria();
  162. $c->add(self::ENTRY_ID, $entryId);
  163. $c->add(self::FLAVOR_PARAMS_ID, $paramsId);
  164. // Gonen 10/05/10 - fixed bug when requesting download of original from KMC1 (pre-Andromeda)
  165. // migrated entries had all flavors set with flavor_params_ID to 0
  166. // all normal entries (not migrated) should have only the original with flavor params 0 (and is_original set to 1)
  167. if($paramsId == 0)
  168. {
  169. $c->addAnd(self::IS_ORIGINAL, 1);
  170. }
  171. return self::doSelectOne($c);
  172. }
  173. /**
  174. *
  175. * @param string $entryId
  176. * @return array<flavorAsset>
  177. */
  178. public static function retrieveByEntryId($entryId)
  179. {
  180. $c = new Criteria();
  181. $c->add(self::ENTRY_ID, $entryId);
  182. return self::doSelect($c);
  183. }
  184. public static function retreiveReadyByEntryIdAndFlavorParams($entryId, array $flavorParamsIds)
  185. {
  186. $c = new Criteria();
  187. $c->add(assetPeer::ENTRY_ID, $entryId);
  188. $c->add(assetPeer::STATUS, flavorAsset::FLAVOR_ASSET_STATUS_READY);
  189. $c->add(assetPeer::FLAVOR_PARAMS_ID, $flavorParamsIds, Criteria::IN);
  190. // The client will most probably expect the list to be ordered by bitrate
  191. $c->addAscendingOrderByColumn ( assetPeer::BITRATE ); /// TODO - should be server side ?
  192. return assetPeer::doSelect($c);
  193. }
  194. /**
  195. * @param string $entryId
  196. * @return flavorAsset
  197. */
  198. public static function retreiveOriginalByEntryId($entryId)
  199. {
  200. $c = new Criteria();
  201. $c->add(assetPeer::ENTRY_ID, $entryId);
  202. $c->add(assetPeer::IS_ORIGINAL, true);
  203. return assetPeer::doSelectOne($c);
  204. }
  205. /**
  206. * Leaves only the specified tag in the flavor assets array
  207. *
  208. * @param array $assets
  209. * @param string $tag
  210. * @return array<assets>
  211. */
  212. public static function filterByTag(array &$assets, $tag)
  213. {
  214. $newAssets = array();
  215. foreach($assets as &$asset)
  216. {
  217. if ($asset->hasTag($tag))
  218. $newAssets[] = &$asset;
  219. }
  220. $assets = $newAssets;
  221. return $newAssets;
  222. }
  223. /**
  224. * @param string $entryId
  225. * @param array $paramsIds
  226. * @param $con
  227. *
  228. * @return array
  229. */
  230. public static function getReadyIdsByParamsIds($entryId, array $paramsIds, $con = null)
  231. {
  232. $criteria = new Criteria();
  233. $criteria->addSelectColumn(assetPeer::ID);
  234. $criteria->add(assetPeer::ENTRY_ID, $entryId);
  235. $criteria->add(assetPeer::STATUS, asset::FLAVOR_ASSET_STATUS_READY);
  236. $criteria->add(assetPeer::FLAVOR_PARAMS_ID, $paramsIds, Criteria::IN);
  237. $stmt = assetPeer::doSelectStmt($criteria, $con);
  238. return $stmt->fetchAll(PDO::FETCH_COLUMN);
  239. }
  240. }