/**
  * @param PortableElementObject $object
  * @throws PortableElementNotFoundException
  * @throws PortableElementVersionIncompatibilityException
  * @throws PortableElementInconsistencyModelException
  */
 public function delete(PortableElementObject $object)
 {
     $portableElements = $this->getAllVersions($object->getTypeIdentifier());
     if (!isset($portableElements[$object->getVersion()])) {
         throw new PortableElementVersionIncompatibilityException($this->getModel()->getId() . ' with identifier ' . $object->getTypeIdentifier() . ' found, ' . 'but version ' . $object->getVersion() . 'does not exist. Deletion impossible.');
     }
     unset($portableElements[$object->getVersion()]);
     if (empty($portableElements)) {
         parent::remove($object->getTypeIdentifier());
     } else {
         parent::set($object->getTypeIdentifier(), $portableElements);
     }
 }