Skip to content

Commit 183fb6c

Browse files
committed
[Kotlin] Better function names
1 parent ada5f03 commit 183fb6c

File tree

5 files changed

+27
-23
lines changed

5 files changed

+27
-23
lines changed

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

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,27 @@ class GroupingCriteriaCollector : SubCriteriaCollector() {
417417

418418
infix fun BindableColumn<String>.isNotInCaseInsensitiveWhenPresent(values: Collection<String?>?) =
419419
invoke(org.mybatis.dynamic.sql.util.kotlin.elements.isNotInCaseInsensitiveWhenPresent(values))
420+
421+
companion object {
422+
fun having(receiver: GroupingCriteriaReceiver): GroupingCriteriaReceiver = receiver
423+
424+
/**
425+
* Function for code simplification. This allows creation of an independent where clause
426+
* that can be reused in different statements. For example:
427+
*
428+
* val whereClause = where { id isEqualTo 3 }
429+
*
430+
* val rows = countFrom(foo) {
431+
* where(whereClause)
432+
* }
433+
*
434+
* Use of this function is optional. You can also write code like this:
435+
*
436+
* val whereClause: GroupingCriteriaReceiver = { id isEqualTo 3 }
437+
*
438+
*/
439+
fun where(receiver: GroupingCriteriaReceiver): GroupingCriteriaReceiver = receiver
440+
}
420441
}
421442

422443
class SecondValueCollector<T> (private val consumer: (T) -> Unit) {

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ import org.mybatis.dynamic.sql.where.AbstractWhereStarter
2525
@DslMarker
2626
annotation class MyBatisDslMarker
2727

28-
@Deprecated("Please use booleanExpression")
28+
@Deprecated("Please use GroupingCriteriaCollector.where")
2929
typealias WhereApplier = KotlinBaseBuilder<*>.() -> Unit
3030

31-
@Deprecated("Please use booleanExpression")
31+
@Deprecated("Please use GroupingCriteriaCollector.where")
3232
fun WhereApplier.andThen(after: WhereApplier): WhereApplier = {
3333
invoke(this)
3434
after(this)

src/main/kotlin/org/mybatis/dynamic/sql/util/kotlin/elements/SqlElements.kt

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -77,23 +77,6 @@ import org.mybatis.dynamic.sql.where.condition.IsNotLikeCaseInsensitive
7777
import org.mybatis.dynamic.sql.where.condition.IsNotNull
7878
import org.mybatis.dynamic.sql.where.condition.IsNull
7979

80-
/**
81-
* Function for code simplification. This allows creation of an independent where or having clause
82-
* that can be reused in different statements. For example:
83-
*
84-
* val whereClause = booleanExpression { id isEqualTo 3 }
85-
*
86-
* val rows = countFrom(foo) {
87-
* where(whereClause)
88-
* }
89-
*
90-
* Use of this function is optional. You can also write code like this:
91-
*
92-
* val whereClause: GroupingCriteriaReceiver = { id isEqualTo 3 }
93-
*
94-
*/
95-
fun booleanExpression(receiver: GroupingCriteriaReceiver): GroupingCriteriaReceiver = receiver
96-
9780
// support for criteria without initial conditions
9881
fun and(receiver: GroupingCriteriaReceiver): AndOrCriteriaGroup =
9982
with(GroupingCriteriaCollector().apply(receiver)) {

src/test/kotlin/examples/kotlin/mybatis3/canonical/ReusableWhereTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ import org.assertj.core.api.Assertions.assertThat
2626
import org.junit.jupiter.api.BeforeAll
2727
import org.junit.jupiter.api.Test
2828
import org.junit.jupiter.api.TestInstance
29+
import org.mybatis.dynamic.sql.util.kotlin.GroupingCriteriaCollector.Companion.where
2930
import org.mybatis.dynamic.sql.util.kotlin.WhereApplier
3031
import org.mybatis.dynamic.sql.util.kotlin.andThen
31-
import org.mybatis.dynamic.sql.util.kotlin.elements.booleanExpression
3232
import org.mybatis.dynamic.sql.util.kotlin.mybatis3.select
3333

3434
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@@ -145,7 +145,7 @@ class ReusableWhereTest {
145145
or { occupation.isNull() }
146146
}
147147

148-
private val commonWhereClause = booleanExpression {
148+
private val commonWhereClause = where {
149149
id isEqualTo 1
150150
or { occupation.isNull() }
151151
}

src/test/kotlin/examples/kotlin/mybatis3/general/KGroupingTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ import org.junit.jupiter.api.Test
2525
import org.mybatis.dynamic.sql.SqlTable
2626
import org.mybatis.dynamic.sql.exception.InvalidSqlException
2727
import org.mybatis.dynamic.sql.util.Messages
28+
import org.mybatis.dynamic.sql.util.kotlin.GroupingCriteriaCollector.Companion.having
2829
import org.mybatis.dynamic.sql.util.kotlin.elements.add
29-
import org.mybatis.dynamic.sql.util.kotlin.elements.booleanExpression
3030
import org.mybatis.dynamic.sql.util.kotlin.elements.column
3131
import org.mybatis.dynamic.sql.util.kotlin.elements.count
3232
import org.mybatis.dynamic.sql.util.kotlin.elements.isBetween
@@ -364,7 +364,7 @@ class KGroupingTest {
364364

365365
@Test
366366
fun testIndependentHaving() {
367-
val havingClause = booleanExpression { count() isGreaterThan 6 }
367+
val havingClause = having { count() isGreaterThan 6 }
368368

369369
val selectStatement = select(A, count()) {
370370
from(foo)

0 commit comments

Comments
 (0)