/**
  * Deletes object state links identified by $stateId.
  *
  * @param int $stateId
  */
 public function deleteObjectStateLinks($stateId)
 {
     try {
         return $this->innerGateway->deleteObjectStateLinks($stateId);
     } catch (DBALException $e) {
         throw new RuntimeException('Database error', 0, $e);
     } catch (PDOException $e) {
         throw new RuntimeException('Database error', 0, $e);
     }
 }
Exemplo n.º 2
0
 /**
  * Deletes a object state. The state of the content objects is reset to the
  * first object state in the group.
  *
  * @throws \eZ\Publish\API\Repository\Exceptions\NotFoundException If state with $stateId doesn't exist
  *
  * @param mixed $stateId
  */
 public function delete($stateId)
 {
     // Get the object state first as we need group ID
     // to reorder the priorities and reassign content to another state in the group
     $objectState = $this->load($stateId);
     $this->objectStateGateway->deleteObjectState($objectState->id);
     $remainingStates = $this->loadObjectStates($objectState->groupId);
     if (empty($remainingStates)) {
         // If there are no more states in the group, just remove the state links
         $this->objectStateGateway->deleteObjectStateLinks($objectState->id);
         return;
     }
     $priority = 0;
     foreach ($remainingStates as $remainingState) {
         $this->objectStateGateway->updateObjectStatePriority($remainingState->id, $priority);
         $priority++;
     }
     $remainingStates = $this->loadObjectStates($objectState->groupId);
     $this->objectStateGateway->updateObjectStateLinks($objectState->id, current($remainingStates)->id);
 }