/**
  * @return object
  */
 public function deserialize(SerializationResult $resultWithAggregateRootClass, AggregateRepository $aggregateRepository)
 {
     list($aggregateRootClass, $originalSerializedMetadata) = explode(':', $resultWithAggregateRootClass->serializedMetadata(), 2);
     $serializer = $this->getSerializer($aggregateRootClass);
     $originalSerializationResult = new SerializationResult($resultWithAggregateRootClass->serializedAggregate(), $originalSerializedMetadata);
     $aggregate = $serializer->deserialize($originalSerializationResult, $aggregateRepository);
     return $aggregate;
 }
 public function updateSerialization(SerializationResult $serializationResult)
 {
     $this->serializedAggregate = $serializationResult->serializedAggregate();
     $this->serializedMetadata = $serializationResult->serializedMetadata();
 }
 public function deserialize(SerializationResult $serializationResult, AggregateRepository $aggregateRepository)
 {
     $normalizationResult = new NormalizationResult(json_decode($serializationResult->serializedAggregate(), true), json_decode($serializationResult->serializedMetadata(), true));
     return $this->normalizer->denormalize($normalizationResult, $aggregateRepository);
 }