public static function generateFromColumnName($maximumLength, $columnName) { $truncatedColumnName = $columnName; if (isset(self::$truncatedNames[$maximumLength][$columnName])) { $truncatedColumnName = self::$truncatedNames[$maximumLength][$columnName]; } elseif (strlen($truncatedColumnName) > $maximumLength) { $suffix = self::$automaticSuffixSequence++; $maximumColumnPrefixLength = $maximumLength; $maximumColumnPrefixLength -= strlen(self::$AUTOMATIC_SUFFIX_DELIMITER); $maximumColumnPrefixLength -= strlen($suffix); $shreddableCharacterCount = strlen($truncatedColumnName) - $maximumColumnPrefixLength; $truncatedColumnName = ColumnNameTruncator::shortenName($truncatedColumnName, $shreddableCharacterCount); if (strlen($truncatedColumnName) > $maximumColumnPrefixLength) { $truncatedColumnName = substr($truncatedColumnName, 0, $maximumColumnPrefixLength); } $truncatedColumnName .= self::$AUTOMATIC_SUFFIX_DELIMITER . $suffix; self::$truncatedNames[$maximumLength][$columnName] = $truncatedColumnName; } return $truncatedColumnName; }
protected function adjustColumnName(RecordMetaData $recordMetaData, $columnName) { if (!isset($columnName)) { return FALSE; } $adjustedColumnName = $columnName; // trimming the column name a bit ... if necessary if (isset($this->maximumColumnNameLength)) { if (strlen($adjustedColumnName) > $this->maximumColumnNameLength) { $adjustedColumnName = ColumnNameTruncator::shortenName($adjustedColumnName, strlen($adjustedColumnName) - $this->maximumColumnNameLength); } if (strlen($adjustedColumnName) > $this->maximumColumnNameLength) { return FALSE; } } // checking if the name already exists ... and it should not to successfully proceed further if ($recordMetaData->findColumn($adjustedColumnName) != NULL) { return NULL; } return $adjustedColumnName; }