Strategy.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <?php
  2. namespace Gedmo\Tree;
  3. use Doctrine\Common\Persistence\ObjectManager;
  4. use Gedmo\Mapping\Event\AdapterInterface;
  5. interface Strategy
  6. {
  7. /**
  8. * NestedSet strategy
  9. */
  10. const NESTED = 'nested';
  11. /**
  12. * Closure strategy
  13. */
  14. const CLOSURE = 'closure';
  15. /**
  16. * Materialized Path strategy
  17. */
  18. const MATERIALIZED_PATH = 'materializedPath';
  19. /**
  20. * Get the name of strategy
  21. *
  22. * @return string
  23. */
  24. public function getName();
  25. /**
  26. * Initialize strategy with tree listener
  27. *
  28. * @param TreeListener $listener
  29. */
  30. public function __construct(TreeListener $listener);
  31. /**
  32. * Operations after metadata is loaded
  33. *
  34. * @param ObjectManager $om
  35. * @param object $meta
  36. */
  37. public function processMetadataLoad($om, $meta);
  38. /**
  39. * Operations on tree node insertion
  40. *
  41. * @param ObjectManager $om - object manager
  42. * @param object $object - node
  43. * @param AdapterInterface $ea - event adapter
  44. *
  45. * @return void
  46. */
  47. public function processScheduledInsertion($om, $object, AdapterInterface $ea);
  48. /**
  49. * Operations on tree node updates
  50. *
  51. * @param ObjectManager $om - object manager
  52. * @param object $object - node
  53. * @param AdapterInterface $ea - event adapter
  54. *
  55. * @return void
  56. */
  57. public function processScheduledUpdate($om, $object, AdapterInterface $ea);
  58. /**
  59. * Operations on tree node delete
  60. *
  61. * @param ObjectManager $om - object manager
  62. * @param object $object - node
  63. *
  64. * @return void
  65. */
  66. public function processScheduledDelete($om, $object);
  67. /**
  68. * Operations on tree node removal
  69. *
  70. * @param ObjectManager $om - object manager
  71. * @param object $object - node
  72. *
  73. * @return void
  74. */
  75. public function processPreRemove($om, $object);
  76. /**
  77. * Operations on tree node persist
  78. *
  79. * @param ObjectManager $om - object manager
  80. * @param object $object - node
  81. *
  82. * @return void
  83. */
  84. public function processPrePersist($om, $object);
  85. /**
  86. * Operations on tree node update
  87. *
  88. * @param ObjectManager $om - object manager
  89. * @param object $object - node
  90. *
  91. * @return void
  92. */
  93. public function processPreUpdate($om, $object);
  94. /**
  95. * Operations on tree node insertions
  96. *
  97. * @param ObjectManager $om - object manager
  98. * @param object $object - node
  99. * @param AdapterInterface $ea - event adapter
  100. *
  101. * @return void
  102. */
  103. public function processPostPersist($om, $object, AdapterInterface $ea);
  104. /**
  105. * Operations on tree node updates
  106. *
  107. * @param ObjectManager $om - object manager
  108. * @param object $object - node
  109. * @param AdapterInterface $ea - event adapter
  110. *
  111. * @return void
  112. */
  113. public function processPostUpdate($om, $object, AdapterInterface $ea);
  114. /**
  115. * Operations on tree node removals
  116. *
  117. * @param ObjectManager $om - object manager
  118. * @param object $object - node
  119. * @param AdapterInterface $ea - event adapter
  120. *
  121. * @return void
  122. */
  123. public function processPostRemove($om, $object, AdapterInterface $ea);
  124. /**
  125. * Operations on the end of flush process
  126. *
  127. * @param ObjectManager $om - object manager
  128. * @param AdapterInterface $ea - event adapter
  129. *
  130. * @return void
  131. */
  132. public function onFlushEnd($om, AdapterInterface $ea);
  133. }