ModelManagerInterface.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  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. interface ModelManagerInterface
  14. {
  15. /**
  16. * Returns true if the model has a relation
  17. *
  18. * @abstract
  19. * @param string $name
  20. * @return booleab
  21. */
  22. function hasMetadata($name);
  23. /**
  24. *
  25. * @param string $name
  26. * @return \Doctrine\ORM\Mapping\ClassMetadataInfo
  27. */
  28. function getMetadata($name);
  29. /**
  30. * Returns a new FieldDescription
  31. *
  32. * @abstract
  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 string integer
  57. * @return object
  58. */
  59. function find($class, $id);
  60. /**
  61. * @param string $class classname
  62. * @param array $idx
  63. * @return void
  64. */
  65. function batchDelete($class, $idx);
  66. /**
  67. * @abstract
  68. * @param $parentAssociationMapping
  69. * @param $class
  70. * @return void
  71. */
  72. function getParentFieldDescription($parentAssociationMapping, $class);
  73. /**
  74. * @abstract
  75. * @param string $alias
  76. * @return a query instance
  77. */
  78. function createQuery($class, $alias = 'o');
  79. /**
  80. * @abstract
  81. * @param string $class
  82. * @return string
  83. */
  84. function getEntityIdentifier($class);
  85. /**
  86. * @abstract
  87. * @param string $class
  88. * @return void
  89. */
  90. function getModelInstance($class);
  91. /**
  92. * Returns the parameters used in the columns header
  93. *
  94. * @param \Sonata\AdminBundle\Admin\FieldDescriptionInterface $fieldDescription
  95. * @param \Sonata\AdminBundle\Datagrid\DatagridInterface $datagrid
  96. * @return string
  97. */
  98. function getSortParameters(FieldDescriptionInterface $fieldDescription, DatagridInterface $datagrid);
  99. /**
  100. * @param sring $class
  101. * @return array
  102. */
  103. function getDefaultSortValues($class);
  104. }