/** * @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); } }