Example #1
0
 /**
  * @param Type\Collection\IdentifiedObject $objectType
  * @param object $object
  * @param array $values
  *
  * @return Deserialize
  */
 private function processDeserializeTypeCollectionIdentifiedObject(Type\Collection\IdentifiedObject $objectType, $object, array $values) : self
 {
     $identifierAttribute = $this->configuration->getIdentifierAttribute();
     $objects = [];
     foreach ($values as $key => $objectFromValue) {
         if (isset($objectFromValue[$identifierAttribute]) === false) {
             continue;
         }
         $configurationObject = $this->configuration->getConfigurationObjectForIdentifier($objectFromValue[$identifierAttribute]);
         if ($configurationObject instanceof Blackhole) {
             continue;
         }
         $objects[$key] = $this->setObjectForClass($configurationObject->getClassName(), $objectFromValue);
     }
     $object->{$objectType->setter()}($objects);
     return $this;
 }
Example #2
0
 /**
  * @param Type\Collection\Object|Type\Collection\IdentifiedObject $objectType
  * @param object $object
  * @param mixed[] $data
  * @param string $attribute
  *
  * @return mixed[]
  */
 private function processSerializeTypeCollectionObject($objectType, $object, array $data, string $attribute) : array
 {
     $subData = $object->{$objectType->getter()}();
     if ($this->checkNullForAttribute($subData, $attribute) === true) {
         return $data;
     }
     foreach ($subData as $key => $subObject) {
         $data = $this->setArrayAndCheckNullWithKey($data, $subObject, $key, $attribute);
     }
     return $data;
 }