| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 | <?php
namespace Gedmo\Tree;
use Gedmo\Mapping\Event\AdapterInterface;
interface Strategy
{
    /**
     * NestedSet strategy
     */
    const NESTED = 'nested';
    /**
     * Closure strategy
     */
    const CLOSURE = 'closure';
    /**
     * Materialized Path strategy
     */
    const MATERIALIZED_PATH = 'materializedPath';
    /**
     * Get the name of strategy
     *
     * @return string
     */
    function getName();
    /**
     * Initialize strategy with tree listener
     *
     * @param TreeListener $listener
     * @return void
     */
    function __construct(TreeListener $listener);
    /**
     * Operations after metadata is loaded
     *
     * @param object $om
     * @param object $meta
     */
    function processMetadataLoad($om, $meta);
    /**
     * Operations on tree node insertion
     *
     * @param object $om - object manager
     * @param object $object - node
     * @param AdapterInterface $ea - event adapter
     * @return void
     */
    function processScheduledInsertion($om, $object, AdapterInterface $ea);
    /**
     * Operations on tree node updates
     *
     * @param object $om - object manager
     * @param object $object - node
     * @param AdapterInterface $ea - event adapter
     * @return void
     */
    function processScheduledUpdate($om, $object, AdapterInterface $ea);
    /**
     * Operations on tree node delete
     *
     * @param object $om - object manager
     * @param object $object - node
     * @return void
     */
    function processScheduledDelete($om, $object);
    /**
     * Operations on tree node removal
     *
     * @param object $om - object manager
     * @param object $object - node
     * @return void
     */
    function processPreRemove($om, $object);
    /**
     * Operations on tree node persist
     *
     * @param object $om - object manager
     * @param object $object - node
     * @return void
     */
    function processPrePersist($om, $object);
    /**
     * Operations on tree node update
     *
     * @param object $om - object manager
     * @param object $object - node
     * @return void
     */
    function processPreUpdate($om, $object);
    /**
     * Operations on tree node insertions
     *
     * @param object $om - object manager
     * @param object $object - node
     * @param AdapterInterface $ea - event adapter
     * @return void
     */
    function processPostPersist($om, $object, AdapterInterface $ea);
    /**
     * Operations on tree node updates
     *
     * @param object $om - object manager
     * @param object $object - node
     * @param AdapterInterface $ea - event adapter
     * @return void
     */
    function processPostUpdate($om, $object, AdapterInterface $ea);
    /**
     * Operations on tree node removals
     *
     * @param object $om - object manager
     * @param object $object - node
     * @param AdapterInterface $ea - event adapter
     * @return void
     */
    function processPostRemove($om, $object, AdapterInterface $ea);
    /**
     * Operations on the end of flush process
     *
     * @param object $om - object manager
     * @param AdapterInterface $ea - event adapter
     * @return void
     */
    function onFlushEnd($om, AdapterInterface $ea);
}
 |