/** * @param Records $records * * @return Collection */ private function convertRecord(Records $records) { $records = array_map(function (MarcRecord $item) { $record = new Record($item->getLeader()); $fields = $item->getFields(); foreach ($fields as $field) { if ($field instanceof \File_MARC_Control_Field) { $record->setControlField($this->convertControlField($field)); } elseif ($field instanceof \File_MARC_Data_Field) { $record->addDataField($this->convertDataField($field)); } else { throw new \InvalidArgumentException('Unknown Field Type'); } } return $record; }, iterator_to_array($records)); $collection = new Collection($records); return $collection; }