protected function genericUpdatePosition(ModelCriteria $query, UpdatePositionEvent $event, EventDispatcherInterface $dispatcher = null)
    {
        if (null !== $object = $query->findPk($event->getObjectId())) {
            if (!isset(class_uses($object)['Thelia\Model\Tools\PositionManagementTrait'])) {
                throw new \InvalidArgumentException("Your model does not implement the PositionManagementTrait trait");
            }

            $object->setDispatcher($dispatcher !== null ? $dispatcher : $event->getDispatcher());

            $mode = $event->getMode();

            if ($mode == UpdatePositionEvent::POSITION_ABSOLUTE) {
                $object->changeAbsolutePosition($event->getPosition());
            } elseif ($mode == UpdatePositionEvent::POSITION_UP) {
                $object->movePositionUp();
            } elseif ($mode == UpdatePositionEvent::POSITION_DOWN) {
                $object->movePositionDown();
            }
        }
    }
protected function genericUpdatePosition(ModelCriteria $query, UpdatePositionEvent $event, EventDispatcherInterface $dispatcher = null)
    {
        if (null !== $object = $query->findPk($event->getObjectId())) {
            if (!isset(class_uses($object)['Thelia\Model\Tools\PositionManagementTrait'])) {
                throw new \InvalidArgumentException("Your model does not implement the PositionManagementTrait trait");
            }

            $object->setDispatcher($dispatcher !== null ? $dispatcher : $event->getDispatcher());

            $mode = $event->getMode();

            if ($mode == UpdatePositionEvent::POSITION_ABSOLUTE) {
                $object->changeAbsolutePosition($event->getPosition());
            } elseif ($mode == UpdatePositionEvent::POSITION_UP) {
                $object->movePositionUp();
            } elseif ($mode == UpdatePositionEvent::POSITION_DOWN) {
                $object->movePositionDown();
            }
        }
    }
protected function genericUpdatePosition ( ModelCriteria $ query , UpdatePositionEvent $ event , EventDispatcherInterface $ dispatcher = null ) { if ( null !== $ object = $ query -> findPk ( $ event -> getObjectId ( ) ) ) { if ( ! isset ( class_uses ( $ object ) [ 'Thelia\Model\Tools\PositionManagementTrait' ] ) ) { throw new \ InvalidArgumentException ( "Your model does not implement the PositionManagementTrait trait" ) ; } $ object -> setDispatcher ( $ dispatcher !== null ? $ dispatcher : $ event -> getDispatcher ( ) ) ; $ mode = $ event -> getMode ( ) ; if ( $ mode == UpdatePositionEvent :: POSITION_ABSOLUTE ) { $ object -> changeAbsolutePosition ( $ event -> getPosition ( ) ) ; } elseif ( $ mode == UpdatePositionEvent :: POSITION_UP ) { $ object -> movePositionUp ( ) ; } elseif ( $ mode == UpdatePositionEvent :: POSITION_DOWN ) { $ object -> movePositionDown ( ) ; } } }
Changes object position, selecting absolute ou relative change.

@param ModelCriteria       $query
@param UpdatePositionEvent $event
@param EventDispatcherInterface $dispatcher

@return null
Changes object position selecting absolute ou relative change .