ModelManagerInterface.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. <?php
  2. /*
  3. * This file is part of the Sonata package.
  4. *
  5. * (c) Thomas Rabaix <thomas.rabaix@sonata-project.org>
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. namespace Sonata\AdminBundle\Model;
  11. use Sonata\AdminBundle\Admin\FieldDescriptionInterface;
  12. use Sonata\AdminBundle\Datagrid\DatagridInterface;
  13. use Sonata\AdminBundle\Datagrid\ProxyQueryInterface;
  14. use Sonata\AdminBundle\Admin\AdminInterface;
  15. interface ModelManagerInterface
  16. {
  17. /**
  18. * Returns true if the model has a relation
  19. *
  20. * @abstract
  21. * @param string $name
  22. * @return booleab
  23. */
  24. function hasMetadata($name);
  25. /**
  26. *
  27. * @param string $name
  28. * @return \Doctrine\ORM\Mapping\ClassMetadataInfo
  29. */
  30. function getMetadata($name);
  31. /**
  32. * Returns a new FieldDescription
  33. *
  34. * @abstract
  35. * @param string $class
  36. * @param string $name
  37. * @param array $options
  38. * @return \Sonata\AdminBundle\Admin\FieldDescriptionInterface
  39. */
  40. function getNewFieldDescriptionInstance($class, $name, array $options = array());
  41. /**
  42. * @param $object
  43. * @return void
  44. */
  45. function create($object);
  46. /**
  47. * @param object $object
  48. * @return void
  49. */
  50. function update($object);
  51. /**
  52. * @param object $object
  53. * @return void
  54. */
  55. function delete($object);
  56. /**
  57. * @param string $class
  58. * @param array $criteria
  59. * @return object
  60. */
  61. function findBy($class, array $criteria = array());
  62. /**
  63. * @abstract
  64. * @param $class
  65. * @param array $criteria
  66. * @return void
  67. */
  68. function findOneBy($class, array $criteria = array());
  69. /**
  70. * @abstract
  71. * @param $class
  72. * @param $id
  73. * @return void
  74. */
  75. function find($class, $id);
  76. /**
  77. * @abstract
  78. * @param $class
  79. * @param \Sonata\AdminBundle\Datagrid\ProxyQueryInterface $queryProxy
  80. * @return void
  81. */
  82. function batchDelete($class, ProxyQueryInterface $queryProxy);
  83. /**
  84. * @abstract
  85. * @param $parentAssociationMapping
  86. * @param $class
  87. * @return void
  88. */
  89. function getParentFieldDescription($parentAssociationMapping, $class);
  90. /**
  91. * @abstract
  92. * @param string $class
  93. * @param string $alias
  94. * @return a query instance
  95. */
  96. function createQuery($class, $alias = 'o');
  97. /**
  98. * @abstract
  99. * @param string $class
  100. * @return string
  101. */
  102. function getModelIdentifier($class);
  103. /**
  104. *
  105. * @param object $model
  106. * @return mixed
  107. */
  108. function getIdentifierValues($model);
  109. /**
  110. * @param string $class
  111. * @return array
  112. */
  113. function getIdentifierFieldNames($class);
  114. /**
  115. * @abstract
  116. * @param $entity
  117. */
  118. function getNormalizedIdentifier($entity);
  119. /**
  120. * @abstract
  121. * @param string $class
  122. * @return void
  123. */
  124. function getModelInstance($class);
  125. /**
  126. * @abstract
  127. * @param string $class
  128. * @return void
  129. */
  130. function getModelCollectionInstance($class);
  131. /**
  132. * Removes an element from the collection
  133. *
  134. * @param mixed $collection
  135. * @param mixed $element
  136. * @return void
  137. */
  138. function collectionRemoveElement(&$collection, &$element);
  139. /**
  140. * Add an element from the collection
  141. *
  142. * @param mixed $collection
  143. * @param mixed $element
  144. * @return mixed
  145. */
  146. function collectionAddElement(&$collection, &$element);
  147. /**
  148. * Check if the element exists in the collection
  149. *
  150. * @param mixed $collection
  151. * @param mixed $element
  152. * @return boolean
  153. */
  154. function collectionHasElement(&$collection, &$element);
  155. /**
  156. * Clear the collection
  157. *
  158. * @param mixed $collection
  159. * @return mixed
  160. */
  161. function collectionClear(&$collection);
  162. /**
  163. * Returns the parameters used in the columns header
  164. *
  165. * @param \Sonata\AdminBundle\Admin\FieldDescriptionInterface $fieldDescription
  166. * @param \Sonata\AdminBundle\Datagrid\DatagridInterface $datagrid
  167. * @return string
  168. */
  169. function getSortParameters(FieldDescriptionInterface $fieldDescription, DatagridInterface $datagrid);
  170. /**
  171. * @param sring $class
  172. * @return array
  173. */
  174. function getDefaultSortValues($class);
  175. /**
  176. * @param string $class
  177. * @param array $array
  178. * @return void
  179. */
  180. function modelReverseTransform($class, array $array = array());
  181. /**
  182. * @param string $class
  183. * @param object $instance
  184. * @return void
  185. */
  186. function modelTransform($class, $instance);
  187. /**
  188. * @param mixed $query
  189. * @return void
  190. */
  191. function executeQuery($query);
  192. /**
  193. * @param \Sonata\AdminBundle\Datagrid\DatagridInterface $datagrid
  194. * @param array $fields
  195. * @param null $firstResult
  196. * @param null $maxResult
  197. * @return void
  198. */
  199. function getDataSourceIterator(DatagridInterface $datagrid, array $fields, $firstResult = null, $maxResult = null);
  200. /**
  201. * @param $class
  202. * @return array
  203. */
  204. function getExportFields($class);
  205. }