/** * @param Field $field * * @return array */ private function mapCollection(Field $field) { /** @var Collection $value */ $value = $field->getValue(); $getter = $field->getGetterName(); if (!empty($getter)) { $values = array(); foreach ($value as $relatedObj) { $values[] = $relatedObj->{$getter}(); } return $values; } $collection = array(); foreach ($value as $object) { $metaInformation = $this->metaInformationFactory->loadInformation($object); $field = array(); $document = $this->createDocument($metaInformation); foreach ($document as $fieldName => $value) { $field[$fieldName] = $value; } $collection[] = $field; } return $collection; }