/**
  * Serialize data of WorkflowItem
  *
  * @param WorkflowItem $workflowItem
  * @param UnitOfWork $uow
  */
 protected function serialize(WorkflowItem $workflowItem, UnitOfWork $uow)
 {
     if ($workflowItem->getData()->isModified()) {
         $oldValue = $workflowItem->getSerializedData();
         $this->serializer->setWorkflowName($workflowItem->getWorkflowName());
         $serializedData = $this->serializer->serialize($workflowItem->getData(), $this->format);
         $workflowItem->setSerializedData($serializedData);
         $uow->propertyChanged($workflowItem, 'serializedData', $oldValue, $serializedData);
     }
 }
 /**
  * Serialize data of WorkflowItem
  *
  * @param WorkflowItem $workflowItem
  */
 protected function serialize(WorkflowItem $workflowItem)
 {
     $this->serializer->setWorkflowName($workflowItem->getWorkflowName());
     // Cloning workflow data instance to prevent changing of original data.
     $workflowData = clone $workflowItem->getData();
     // entity attribute must not be serialized
     $workflowData->remove($workflowItem->getDefinition()->getEntityAttributeName());
     $serializedData = $this->serializer->serialize($workflowData, $this->format);
     $workflowItem->setSerializedData($serializedData);
     $workflowItem->getData()->setModified(false);
 }
Esempio n. 3
0
 /**
  * Get data
  *
  * @return WorkflowData
  * @throws WorkflowException If data cannot be deserialized
  */
 public function getData()
 {
     if (!$this->data) {
         if (!$this->serializedData) {
             $this->data = new WorkflowData();
         } elseif (!$this->serializer) {
             throw new WorkflowException('Cannot deserialize data of workflow item. Serializer is not available.');
         } else {
             $this->serializer->setWorkflowName($this->workflowName);
             $this->data = $this->serializer->deserialize($this->serializedData, 'Oro\\Bundle\\WorkflowBundle\\Model\\WorkflowData', $this->serializeFormat);
             $this->data->set($this->getDefinition()->getEntityAttributeName(), $this->getEntity(), false);
         }
     }
     return $this->data;
 }