public function findColumn($columnName) {
        $column = parent::findColumn($columnName);
        if (isset($column)) {
            return $column;
        }

        foreach ($this->columns as $c) {
            $column = $c->findBranch($columnName);
            if (isset($column)) {
                return $column;
            }
        }

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