Fixes Or builder
This commit is contained in:
+11
-4
@@ -86,7 +86,7 @@ class WhereClauseBuilder {
|
|||||||
fun and(block: WhereClauseBuilder.() -> Unit) =
|
fun and(block: WhereClauseBuilder.() -> Unit) =
|
||||||
apply {
|
apply {
|
||||||
val builder = WhereClauseBuilder().apply(block)
|
val builder = WhereClauseBuilder().apply(block)
|
||||||
val builtCondition = builder.build()
|
val builtCondition = builder.buildAnd()
|
||||||
if (builtCondition != null) {
|
if (builtCondition != null) {
|
||||||
conditions.add(builtCondition)
|
conditions.add(builtCondition)
|
||||||
}
|
}
|
||||||
@@ -95,22 +95,29 @@ class WhereClauseBuilder {
|
|||||||
fun or(block: WhereClauseBuilder.() -> Unit) =
|
fun or(block: WhereClauseBuilder.() -> Unit) =
|
||||||
apply {
|
apply {
|
||||||
val builder = WhereClauseBuilder().apply(block)
|
val builder = WhereClauseBuilder().apply(block)
|
||||||
val builtCondition = builder.build()
|
val builtCondition = builder.buildOr()
|
||||||
if (builtCondition != null) {
|
if (builtCondition != null) {
|
||||||
conditions.add(builtCondition)
|
conditions.add(builtCondition)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun build(): Condition? =
|
fun buildAnd(): Condition? =
|
||||||
when (conditions.size) {
|
when (conditions.size) {
|
||||||
0 -> null
|
0 -> null
|
||||||
1 -> conditions.first()
|
1 -> conditions.first()
|
||||||
else -> Condition.And(conditions.toList())
|
else -> Condition.And(conditions.toList())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun buildOr(): Condition? =
|
||||||
|
when (conditions.size) {
|
||||||
|
0 -> null
|
||||||
|
1 -> conditions.first()
|
||||||
|
else -> Condition.Or(conditions.toList())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun where(block: WhereClauseBuilder.() -> Unit): WhereClause {
|
fun where(block: WhereClauseBuilder.() -> Unit): WhereClause {
|
||||||
val condition = WhereClauseBuilder().apply(block).build() ?: Condition.And(emptyList())
|
val condition = WhereClauseBuilder().apply(block).buildAnd() ?: Condition.And(emptyList())
|
||||||
return SqlSelectionBuilder(condition).build()
|
return SqlSelectionBuilder(condition).build()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user