public function prepareMetaDataColumn(RecordMetaData $recordMetaData, ColumnMetaData $column, $originalColumnName) { parent::prepareMetaDataColumn($recordMetaData, $column, $originalColumnName); $columnPublicName = isset($originalColumnName) ? $this->publicNameGenerator->generate($originalColumnName) : $column->name; $column->publicName = $columnPublicName; }
public function prepareMetaDataColumn(RecordMetaData $recordMetaData, ColumnMetaData $column, $originalColumnName) { parent::prepareMetaDataColumn($recordMetaData, $column, $originalColumnName); // at first we try to prepare public name ... $columnPublicName = isset($originalColumnName) ? $this->publicNameGenerator->generate($originalColumnName) : NULL; // ... then we use that 'cleaned' public name to generate column name $columnName = isset($columnPublicName) ? $this->nameGenerator->generate($columnPublicName) : NULL; // checking if the name is too long $adjustedColumnName = $this->adjustColumnName($recordMetaData, $columnName); if (isset($adjustedColumnName)) { if ($adjustedColumnName === FALSE) { // there is nothing can be done to support meaningful name $columnName = NULL; } else { // the name was adjusted and is ready to be used $columnName = $adjustedColumnName; } } else { // trying to add numeric suffix $nameIndex = 2; while (TRUE) { $adjustedColumnName = $this->adjustColumnName($recordMetaData, $columnName . '_' . $nameIndex); if (isset($adjustedColumnName)) { if ($adjustedColumnName === FALSE) { // there is nothing can be done to support meaningful name $columnName = NULL; } else { // the name was adjusted and is ready to be used $columnName = $adjustedColumnName; } break; } $nameIndex++; } } // generating indexed column name if (!isset($columnName)) { $index = 0; do { $index++; $columnName = (isset($this->columnPrefixName) ? $this->columnPrefixName : 'c') . $index; } while ($recordMetaData->findColumn($columnName) != NULL); // if length of 'hardcoded' name is greater than allowed we cannot proceed any further if (isset($this->maximumColumnNameLength) && (strlen($columnName) > $this->maximumColumnNameLength)) { throw new UnsupportedOperationException(t( 'System name cannot be generated for %columnName column. Maximum allowed length is %maximumColumnNameLength', array('%columnName' => $originalColumnName, '%maximumColumnNameLength' => $this->maximumColumnNameLength))); } } $column->name = $columnName; }