in exposed-gradle-plugin/plugin-build/exposed-code-generator/src/main/kotlin/org/jetbrains/exposed/gradle/builders/TableBuilder.kt [62:93]
fun generateExposedTableColumns() {
val idColumn = tableInfo.idColumn
val columns = tableInfo.table.columns
for (column in columns) {
try {
val columnMapping = data.columnNameToInitializerBlock[getColumnConfigName(column)]
val columnBuilder = if (columnMapping != null) {
if (column == idColumn) {
MappedIdColumnBuilder(column, columnMapping, data)
} else {
MappedColumnBuilder(column, columnMapping, data)
}
} else {
if (column == idColumn) {
IdColumnBuilder(column, data)
} else {
ColumnBuilder(column, data)
}
}
columnBuilder.generateExposedColumnInitializer(data.columnToPropertySpec, data.columnToTableSpec)
val columnPropertySpec = columnBuilder.build()
if (column != idColumn || tableInfo.superclass !in listOf(IntIdTable::class, LongIdTable::class, UUIDTable::class)) {
builder.addProperty(columnPropertySpec)
}
data.columnToPropertySpec[column] = columnPropertySpec
} catch (e: UnsupportedTypeException) {
logger.error("Unsupported type", e)
}
}
}