ModelManagerInterface.php 4.7 KB

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