@@ -25,7 +25,7 @@ import org.mybatis.dynamic.sql.util.Buildable
2525import 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
5963typealias 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 }
0 commit comments