ModelManagerInterface.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  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 string $class
  116. * @return void
  117. */
  118. function getModelInstance($class);
  119. /**
  120. * @abstract
  121. * @param string $class
  122. * @return void
  123. */
  124. function getModelCollectionInstance($class);
  125. /**
  126. * Removes an element from the collection
  127. *
  128. * @param mixed $collection
  129. * @param mixed $element
  130. * @return void
  131. */
  132. function collectionRemoveElement(&$collection, &$element);
  133. /**
  134. * Add an element from the collection
  135. *
  136. * @param mixed $collection
  137. * @param mixed $element
  138. * @return mixed
  139. */
  140. function collectionAddElement(&$collection, &$element);
  141. /**
  142. * Check if the element exists in the collection
  143. *
  144. * @param mixed $collection
  145. * @param mixed $element
  146. * @return boolean
  147. */
  148. function collectionHasElement(&$collection, &$element);
  149. /**
  150. * Clear the collection
  151. *
  152. * @param mixed $collection
  153. * @return mixed
  154. */
  155. function collectionClear(&$collection);
  156. /**
  157. * Returns the parameters used in the columns header
  158. *
  159. * @param \Sonata\AdminBundle\Admin\FieldDescriptionInterface $fieldDescription
  160. * @param \Sonata\AdminBundle\Datagrid\DatagridInterface $datagrid
  161. * @return string
  162. */
  163. function getSortParameters(FieldDescriptionInterface $fieldDescription, DatagridInterface $datagrid);
  164. /**
  165. * @param sring $class
  166. * @return array
  167. */
  168. function getDefaultSortValues($class);
  169. /**
  170. * @abstract
  171. * @param string $class
  172. * @param array $array
  173. * @return void
  174. */
  175. function modelReverseTransform($class, array $array = array());
  176. /**
  177. * @abstract
  178. * @param string $class
  179. * @param object $instance
  180. * @return void
  181. */
  182. function modelTransform($class, $instance);
  183. /**
  184. * @abstract
  185. * @param mixed $query
  186. * @return void
  187. */
  188. function executeQuery($query);
  189. }