Skip to content

Commit 6139635

Browse files
committed
[Kotlin] Refactoring for clarity
1 parent 4f76d0e commit 6139635

File tree

2 files changed

+14
-11
lines changed

2 files changed

+14
-11
lines changed

src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/KotlinSubQueryBuilders.kt

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import org.mybatis.dynamic.sql.util.Buildable
2525
import org.mybatis.dynamic.sql.util.Messages
2626

2727
@MyBatisDslMarker
28-
sealed class KotlinBaseSubQueryBuilder : Buildable<SelectModel> {
28+
sealed class KotlinBaseSubQueryBuilder {
2929
private var selectBuilder: KotlinSelectBuilder? = null
3030

3131
fun select(vararg selectList: BasicColumn, completer: SelectCompleter): Unit =
@@ -42,23 +42,27 @@ sealed class KotlinBaseSubQueryBuilder : Buildable<SelectModel> {
4242
selectBuilder = KotlinSelectBuilder(SqlBuilder.selectDistinct(selectList)).apply(completer)
4343
}
4444

45-
override fun build(): SelectModel =
45+
internal fun buildSelectModel(): SelectModel =
4646
selectBuilder?.build()?: throw KInvalidSQLException(Messages.getString("ERROR.28")) //$NON-NLS-1$
4747
}
4848

49-
class KotlinSubQueryBuilder : KotlinBaseSubQueryBuilder()
49+
class KotlinSubQueryBuilder : KotlinBaseSubQueryBuilder(), Buildable<SelectModel> {
50+
override fun build(): SelectModel = buildSelectModel()
51+
}
5052

51-
class KotlinQualifiedSubQueryBuilder : KotlinBaseSubQueryBuilder() {
53+
class KotlinQualifiedSubQueryBuilder : KotlinBaseSubQueryBuilder(), Buildable<SelectModel> {
5254
var correlationName: String? = null
5355

5456
operator fun String.unaryPlus() {
5557
correlationName = this
5658
}
59+
60+
override fun build(): SelectModel = buildSelectModel()
5761
}
5862

5963
typealias InsertSelectCompleter = KotlinInsertSelectSubQueryBuilder.() -> Unit
6064

61-
class KotlinInsertSelectSubQueryBuilder : KotlinBaseSubQueryBuilder() {
65+
class KotlinInsertSelectSubQueryBuilder : KotlinBaseSubQueryBuilder(), Buildable<InsertSelectModel> {
6266
private var columnList: List<SqlColumn<*>>? = null
6367
private var table: SqlTable? = null
6468

@@ -72,20 +76,19 @@ class KotlinInsertSelectSubQueryBuilder : KotlinBaseSubQueryBuilder() {
7276
this.columnList = columnList
7377
}
7478

75-
// TODO - should just be build()
76-
fun buildInsertSelectModel(): InsertSelectModel {
79+
override fun build(): InsertSelectModel {
7780
if (table == null) {
7881
throw KInvalidSQLException(Messages.getString("ERROR.29")) //$NON-NLS-1$
7982
}
8083

8184
return if (columnList == null) {
8285
SqlBuilder.insertInto(table)
83-
.withSelectStatement(this)
86+
.withSelectStatement { buildSelectModel() }
8487
.build()
8588
} else {
8689
SqlBuilder.insertInto(table)
8790
.withColumnList(columnList)
88-
.withSelectStatement(this)
91+
.withSelectStatement { buildSelectModel() }
8992
.build()
9093
}
9194
}

src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/model/ModelBuilderFunctions.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,11 @@ fun insertSelect(table: SqlTable, completer: InsertSelectCompleter): InsertSelec
8282
with(KotlinInsertSelectSubQueryBuilder()) {
8383
into(table)
8484
apply(completer)
85-
buildInsertSelectModel()
85+
build()
8686
}
8787

8888
fun insertSelect(completer: InsertSelectCompleter): InsertSelectModel =
89-
KotlinInsertSelectSubQueryBuilder().apply(completer).buildInsertSelectModel()
89+
KotlinInsertSelectSubQueryBuilder().apply(completer).build()
9090

9191
@Deprecated("Please switch to the insertBatch statement in the model package")
9292
fun <T> BatchInsertDSL.IntoGatherer<T>.into(

0 commit comments

Comments
 (0)