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