Column key = Utilities.getColumn(objectType);
Column key = objectType.getColumn();
    public String generateColumnName(ObjectType objectType, String proposedName) {        proposedName = alterStringForSQL(proposedName.toLowerCase());        Column key = Utilities.getColumn(objectType);        if (key == null) {            throw new PersistenceException(objectType.getName() + " does not "+                                           "support MDSQL.");        }        String tableName = key.getTableName();        String originalName = proposedName;        if (proposedName.length() > getMaxColumnNameLength()) {            proposedName = proposedName.substring(0, getMaxColumnNameLength() - 1);        }        // now we make sure that the proposed name does not already exist        boolean checkDuplicateName = true;        int count = 0;        while (checkDuplicateName) {            // let's make sure that the objectType does not already plan            // on using this column name            boolean conflictingProperty = true;            while (conflictingProperty) {                if (s_reservedWords.contains(proposedName.toUpperCase())) {                    proposedName = incrementName(proposedName, count);                    count++;                    conflictingProperty = true;                } else {                    Iterator prop = objectType.getProperties();                    if (!prop.hasNext()) {                        break;                    }                    int detectStop = 0;                    while (prop.hasNext()) {                        Property property = (Property)prop.next();                        if (!property.isAttribute()) {                            continue;                        }                        Column col = property.getColumn();                        if (col != null) {                            if (proposedName.equalsIgnoreCase(col.getColumnName())) {                                proposedName = incrementName(proposedName, count);                                count++;                                conflictingProperty = true;                                break;                            } else {                                conflictingProperty = false;                            }                        } else {                            detectStop++;                            if (objectType.getSupertype() != null) {                                ObjectType st = objectType.getSupertype();                                if (st.hasProperty(property.getName())) {                                    throw new PersistenceException(                                                                   objectType.getName() +                                                                   " is not MDSQL-ready and " +                                                                   "therefore cannot be extended " +                                                                   "dynamically.  " + property.getName() +                                                                   " has no defined column");                                }                            }                        }                    }                    if ((detectStop > 1) && (!prop.hasNext())) {                        conflictingProperty = false;                    }                }            }            if (columnExists(tableName, proposedName)) {                proposedName = incrementName(proposedName, count);                count++;            } else {                checkDuplicateName = false;            }        }        return proposedName;    }