public function doBeforeRecordSubmitted(RecordMetaData $recordMetaData, $recordNumber, array &$record) {
        $result = parent::doBeforeRecordSubmitted($recordMetaData, $recordNumber, $record);

        if ($result) {
            $isEmpty = $this->checkIfRecordEmpty($recordMetaData, $record);
            if ($isEmpty) {
                drupal_set_message(t('Empty record in line @lineNumber was ignored', array('@lineNumber' => $recordNumber)), 'warning');

                $result = FALSE;
            }
        }

        return $result;
    }
    public function doBeforeRecordSubmitted(RecordMetaData $recordMetaData, $recordNumber, array &$record) {
        $result = parent::doBeforeRecordSubmitted($recordMetaData, $recordNumber, $record);

        if ($result) {
            foreach ($record as &$columnValue) {
                if (!is_string($columnValue)) {
                    continue;
                }

                if (strlen($columnValue) > $this->maxValueLength) {
                    $columnValue = substr($columnValue, 0, MathHelper::max($this->maxValueLength - 3, 0)) . '...';
                }
            }
            unset($columnValue);
        }

        return $result;
    }
    public function doBeforeRecordSubmitted(RecordMetaData $recordMetaData, $recordNumber, array &$record) {
        $result = parent::doBeforeRecordSubmitted($recordMetaData, $recordNumber, $record);

        if ($result) {
            $datatypeFactory = DataTypeFactory::getInstance();

            foreach ($recordMetaData->getColumns() as $column) {
                if (!isset($record[$column->columnIndex])) {
                    continue;
                }

                // FIXME convert data to data type of corresponding lookup dataset column
                if ($column->type->getReferencedDatasetName() != NULL) {
                    continue;
                }

                $handler = $datatypeFactory->getHandler($column->type->applicationType);
                try {
                    $record[$column->columnIndex] = $handler->castValue($record[$column->columnIndex]);
                }
                catch (Exception $e) {
                    $this->exceptionPool[$recordNumber][$column->publicName] = array(
                        'file' => $e->getFile(),
                        'line' => $e->getLine(),
                        'message' => ExceptionHelper::getExceptionMessage($e));
                    $this->exceptionCount++;

                    if ($this->exceptionCount >= $this->exceptionPoolSize) {
                        $this->publishExceptions(TRUE);
                    }
                }
            }

            $result = !isset($this->exceptionPool);
        }

        return $result;
    }