@@ -25,7 +25,7 @@ import org.mybatis.dynamic.sql.util.Buildable
25
25
import org.mybatis.dynamic.sql.util.Messages
26
26
27
27
@MyBatisDslMarker
28
- sealed class KotlinBaseSubQueryBuilder : Buildable < SelectModel > {
28
+ sealed class KotlinBaseSubQueryBuilder {
29
29
private var selectBuilder: KotlinSelectBuilder ? = null
30
30
31
31
fun select (vararg selectList : BasicColumn , completer : SelectCompleter ): Unit =
@@ -42,23 +42,27 @@ sealed class KotlinBaseSubQueryBuilder : Buildable<SelectModel> {
42
42
selectBuilder = KotlinSelectBuilder (SqlBuilder .selectDistinct(selectList)).apply (completer)
43
43
}
44
44
45
- override fun build (): SelectModel =
45
+ internal fun buildSelectModel (): SelectModel =
46
46
selectBuilder?.build()? : throw KInvalidSQLException (Messages .getString(" ERROR.28" )) // $NON-NLS-1$
47
47
}
48
48
49
- class KotlinSubQueryBuilder : KotlinBaseSubQueryBuilder ()
49
+ class KotlinSubQueryBuilder : KotlinBaseSubQueryBuilder (), Buildable<SelectModel> {
50
+ override fun build (): SelectModel = buildSelectModel()
51
+ }
50
52
51
- class KotlinQualifiedSubQueryBuilder : KotlinBaseSubQueryBuilder () {
53
+ class KotlinQualifiedSubQueryBuilder : KotlinBaseSubQueryBuilder (), Buildable<SelectModel> {
52
54
var correlationName: String? = null
53
55
54
56
operator fun String.unaryPlus () {
55
57
correlationName = this
56
58
}
59
+
60
+ override fun build (): SelectModel = buildSelectModel()
57
61
}
58
62
59
63
typealias InsertSelectCompleter = KotlinInsertSelectSubQueryBuilder .() -> Unit
60
64
61
- class KotlinInsertSelectSubQueryBuilder : KotlinBaseSubQueryBuilder () {
65
+ class KotlinInsertSelectSubQueryBuilder : KotlinBaseSubQueryBuilder (), Buildable<InsertSelectModel> {
62
66
private var columnList: List <SqlColumn <* >>? = null
63
67
private var table: SqlTable ? = null
64
68
@@ -72,20 +76,19 @@ class KotlinInsertSelectSubQueryBuilder : KotlinBaseSubQueryBuilder() {
72
76
this .columnList = columnList
73
77
}
74
78
75
- // TODO - should just be build()
76
- fun buildInsertSelectModel (): InsertSelectModel {
79
+ override fun build (): InsertSelectModel {
77
80
if (table == null ) {
78
81
throw KInvalidSQLException (Messages .getString(" ERROR.29" )) // $NON-NLS-1$
79
82
}
80
83
81
84
return if (columnList == null ) {
82
85
SqlBuilder .insertInto(table)
83
- .withSelectStatement( this )
86
+ .withSelectStatement { buildSelectModel() }
84
87
.build()
85
88
} else {
86
89
SqlBuilder .insertInto(table)
87
90
.withColumnList(columnList)
88
- .withSelectStatement( this )
91
+ .withSelectStatement { buildSelectModel() }
89
92
.build()
90
93
}
91
94
}
0 commit comments