/**
  * {@inheritdoc}
  */
 public function delete(DeletableCriteriaInterface $criteria)
 {
     $event = $this->getEvent();
     $event->setCriteria($criteria);
     $results = $this->getEventManager()->trigger(ModelEvent::EVENT_DELETE_PRE, $event, function ($r) {
         return is_int($r);
     });
     if ($results->stopped()) {
         $last = $results->last();
         if (null === $last || is_int($last)) {
             $event->setResult($last);
             return $last;
         }
     }
     $event->setResult(parent::delete($event->getCriteria()));
     $results = $this->getEventManager()->trigger(ModelEvent::EVENT_DELETE_POST, $event, function ($r) {
         return is_int($r);
     });
     if ($results->stopped()) {
         $last = $results->last();
         if (null === $last || is_int($last)) {
             $event->setResult($last);
         }
     }
     return $event->getResult();
 }