public function selectLookupableColumns(RecordMetaData $recordMetaData) { $lookupableColumns = NULL; foreach ($recordMetaData->getColumns() as $column) { if ($column->isPhysical()) { $lookupableColumns[$column->columnIndex] = $column; } } return $lookupableColumns; }
protected function checkIfRecordEmpty(RecordMetaData $recordMetaData, array &$record) { // checking if the record has values for at least one column foreach ($recordMetaData->getColumns() as $column) { if (isset($record[$column->columnIndex])) { return FALSE; } } return TRUE; }
protected function doAfterProcessingRecordsImpl(RecordMetaData $recordMetaData, $fileProcessedCompletely) { // 'fixing' values of some type definition properties foreach ($recordMetaData->getColumns(FALSE) as $column) { switch ($column->type->applicationType) { case CurrencyDataTypeHandler::DATA_TYPE: $defaultCurrencyScale = 2; if (!isset($column->type->scale) || ($column->type->scale < $defaultCurrencyScale)) { $column->type->scale = $defaultCurrencyScale; } break; case PercentDataTypeHandler::DATA_TYPE: if (isset($column->type->scale)) { $column->type->scale -= 2; if ($column->type->scale < 0) { $column->type->scale = 0; } } break; } } }
protected function submitRecordImpl(RecordMetaData $recordMetaData, $recordNumber, array &$record) { foreach ($recordMetaData->getColumns(FALSE) as $columnIndex => $column) { // we do not need to work with the column. It does not contain unique values if (isset($this->columnUniqueValues[$columnIndex]) && ($this->columnUniqueValues[$columnIndex] === FALSE)) { continue; } $unique = FALSE; // if the column contains NULL we should not consider it as containing unique values if (isset($record[$columnIndex])) { $columnValue = $record[$columnIndex]; if ($this->checkColumnUniqueness($recordMetaData, $columnIndex, $columnValue)) { $this->columnUniqueValues[$columnIndex][$columnValue] = TRUE; $unique = TRUE; } } // we do not need further processing for the column if (!$unique) { $this->columnUniqueValues[$columnIndex] = FALSE; } } }