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;
    }