ModelManagerInterface.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  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. * @param string $name
  21. * @return boolean
  22. */
  23. function hasMetadata($name);
  24. /**
  25. *
  26. * @param string $name
  27. * @return \Doctrine\ORM\Mapping\ClassMetadataInfo
  28. */
  29. function getMetadata($name);
  30. /**
  31. * Returns a new FieldDescription
  32. *
  33. * @param string $class
  34. * @param string $name
  35. * @param array $options
  36. * @return \Sonata\AdminBundle\Admin\FieldDescriptionInterface
  37. */
  38. function getNewFieldDescriptionInstance($class, $name, array $options = array());
  39. /**
  40. * @param $object
  41. * @return void
  42. */
  43. function create($object);
  44. /**
  45. * @param object $object
  46. * @return void
  47. */
  48. function update($object);
  49. /**
  50. * @param object $object
  51. * @return void
  52. */
  53. function delete($object);
  54. /**
  55. * @param string $class
  56. * @param array $criteria
  57. * @return object
  58. */
  59. function findBy($class, array $criteria = array());
  60. /**
  61. * @abstract
  62. * @param $class
  63. * @param array $criteria
  64. * @return void
  65. */
  66. function findOneBy($class, array $criteria = array());
  67. /**
  68. * @abstract
  69. * @param $class
  70. * @param $id
  71. * @return void
  72. */
  73. function find($class, $id);
  74. /**
  75. * @abstract
  76. * @param $class
  77. * @param \Sonata\AdminBundle\Datagrid\ProxyQueryInterface $queryProxy
  78. * @return void
  79. */
  80. function batchDelete($class, ProxyQueryInterface $queryProxy);
  81. /**
  82. * @abstract
  83. * @param $parentAssociationMapping
  84. * @param $class
  85. * @return void
  86. */
  87. function getParentFieldDescription($parentAssociationMapping, $class);
  88. /**
  89. * @abstract
  90. * @param string $class
  91. * @param string $alias
  92. * @return ProxyQueryInterface
  93. */
  94. function createQuery($class, $alias = 'o');
  95. /**
  96. * @abstract
  97. * @param string $class
  98. * @return string
  99. */
  100. function getModelIdentifier($class);
  101. /**
  102. *
  103. * @param object $model
  104. * @return mixed
  105. */
  106. function getIdentifierValues($model);
  107. /**
  108. * @param string $class
  109. * @return array
  110. */
  111. function getIdentifierFieldNames($class);
  112. /**
  113. * @abstract
  114. * @param $entity
  115. */
  116. function getNormalizedIdentifier($entity);
  117. /**
  118. * @abstract
  119. * @param string $class
  120. * @return void
  121. */
  122. function getModelInstance($class);
  123. /**
  124. * @abstract
  125. * @param string $class
  126. * @return void
  127. */
  128. function getModelCollectionInstance($class);
  129. /**
  130. * Removes an element from the collection
  131. *
  132. * @param mixed $collection
  133. * @param mixed $element
  134. * @return void
  135. */
  136. function collectionRemoveElement(&$collection, &$element);
  137. /**
  138. * Add an element from the collection
  139. *
  140. * @param mixed $collection
  141. * @param mixed $element
  142. * @return mixed
  143. */
  144. function collectionAddElement(&$collection, &$element);
  145. /**
  146. * Check if the element exists in the collection
  147. *
  148. * @param mixed $collection
  149. * @param mixed $element
  150. * @return boolean
  151. */
  152. function collectionHasElement(&$collection, &$element);
  153. /**
  154. * Clear the collection
  155. *
  156. * @param mixed $collection
  157. * @return mixed
  158. */
  159. function collectionClear(&$collection);
  160. /**
  161. * Returns the parameters used in the columns header
  162. *
  163. * @param \Sonata\AdminBundle\Admin\FieldDescriptionInterface $fieldDescription
  164. * @param \Sonata\AdminBundle\Datagrid\DatagridInterface $datagrid
  165. * @return array
  166. */
  167. function getSortParameters(FieldDescriptionInterface $fieldDescription, DatagridInterface $datagrid);
  168. /**
  169. * @param string $class
  170. * @return array
  171. */
  172. function getDefaultSortValues($class);
  173. /**
  174. * @param string $class
  175. * @param array $array
  176. * @return void
  177. */
  178. function modelReverseTransform($class, array $array = array());
  179. /**
  180. * @param string $class
  181. * @param object $instance
  182. * @return void
  183. */
  184. function modelTransform($class, $instance);
  185. /**
  186. * @param mixed $query
  187. * @return void
  188. */
  189. function executeQuery($query);
  190. /**
  191. * @param \Sonata\AdminBundle\Datagrid\DatagridInterface $datagrid
  192. * @param array $fields
  193. * @param null $firstResult
  194. * @param null $maxResult
  195. * @return \Exporter\Source\SourceIteratorInterface
  196. */
  197. function getDataSourceIterator(DatagridInterface $datagrid, array $fields, $firstResult = null, $maxResult = null);
  198. /**
  199. * @param $class
  200. * @return array
  201. */
  202. function getExportFields($class);
  203. /**
  204. * @param \Sonata\AdminBundle\Datagrid\DatagridInterface $datagrid
  205. * @param $page
  206. * @return mixed
  207. */
  208. function getPaginationParameters(DatagridInterface $datagrid, $page);
  209. }