/** * @param Record $from * @param Record $to * @return void */ protected function copy(Record $from, Record $to) { foreach ($from->getFields() as $field) { if (!$this->mapReader->isFieldIgnored($this->sourceDocument->getName(), $field, MapInterface::TYPE_SOURCE)) { $fieldMap = $this->mapReader->getFieldMap($this->sourceDocument->getName(), $field, MapInterface::TYPE_SOURCE); $to->setValue($fieldMap, $from->getValue($field)); } } }
/** * @param Resource\Document $sourceDocument * @param Resource\Document $destinationDocument * @param string $type * @return void */ protected function verifyFields($sourceDocument, $destinationDocument, $type) { $sourceFields = array_keys($sourceDocument->getStructure()->getFields()); $destFields = $destinationDocument->getStructure()->getFields(); foreach ($sourceFields as $field) { $mappedField = $this->map->getFieldMap($sourceDocument->getName(), $field, $type); if ($mappedField && !isset($destFields[$mappedField])) { $this->missingDocumentFields[$type][$sourceDocument->getName()][] = $mappedField; } } }
/** * @param Record $from * @param Record $to * @return void */ protected function copy(Record $from, Record $to) { $sourceDocumentName = $this->sourceDocument->getName(); $data = $from->getData(); $sourceFields = $from->getFields(); $destinationFields = $to->getFields(); $diff = array_diff($sourceFields, $destinationFields); foreach ($diff as $field) { if (!$this->mapReader->isFieldIgnored($sourceDocumentName, $field, MapInterface::TYPE_SOURCE)) { $fieldMap = $this->mapReader->getFieldMap($sourceDocumentName, $field, MapInterface::TYPE_SOURCE); $data[$fieldMap] = $from->getValue($field); } unset($data[$field]); } $to->setData($data); }
/** * @param Resource\Document $sourceDocument * @param Resource\Document $destinationDocument * @param string $type * @return void */ protected function verifyFields($sourceDocument, $destinationDocument, $type) { $sourceFields = $sourceDocument->getStructure()->getFields(); $destFields = $destinationDocument->getStructure()->getFields(); foreach ($sourceFields as $sourceField => $sourceFieldMetaData) { $mappedField = $this->map->getFieldMap($sourceDocument->getName(), $sourceField, $type); if ($mappedField) { if (!isset($destFields[$mappedField])) { $this->missingDocumentFields[$type][$sourceDocument->getName()][] = $mappedField; } else { if ($sourceFieldMetaData['DATA_TYPE'] != $destFields[$mappedField]['DATA_TYPE'] && !$this->map->isFieldDataTypeIgnored($sourceDocument->getName(), $sourceField, $type)) { $this->mismatchDocumentFieldDataTypes[$type][$sourceDocument->getName()][] = $sourceField; } } } } }