1209c37e24
Android 12 dynamic color usage on login screen
71 lines
1.4 KiB
Kotlin
71 lines
1.4 KiB
Kotlin
package com.meloda.fast.database
|
|
|
|
import android.database.Cursor
|
|
import android.database.sqlite.SQLiteDatabase
|
|
|
|
|
|
class QueryBuilder private constructor() {
|
|
|
|
companion object {
|
|
fun query(): QueryBuilder {
|
|
return QueryBuilder()
|
|
}
|
|
}
|
|
|
|
private val builder: StringBuilder = StringBuilder()
|
|
|
|
fun select(column: String): QueryBuilder {
|
|
builder.append("SELECT ")
|
|
.append(column)
|
|
.append(" ")
|
|
return this
|
|
}
|
|
|
|
fun from(table: String): QueryBuilder {
|
|
builder.append("FROM ")
|
|
.append(table)
|
|
.append(" ")
|
|
return this
|
|
}
|
|
|
|
|
|
fun where(clause: String): QueryBuilder {
|
|
builder.append("WHERE ")
|
|
.append(clause)
|
|
.append(" ")
|
|
return this
|
|
}
|
|
|
|
fun leftJoin(table: String): QueryBuilder {
|
|
builder.append("LEFT JOIN ")
|
|
.append(table)
|
|
.append(" ")
|
|
return this
|
|
}
|
|
|
|
fun on(where: String): QueryBuilder {
|
|
builder.append("ON ")
|
|
.append(where)
|
|
.append(" ")
|
|
return this
|
|
}
|
|
|
|
fun and(): QueryBuilder {
|
|
builder.append("AND ")
|
|
return this
|
|
}
|
|
|
|
fun or(): QueryBuilder {
|
|
builder.append("OR ")
|
|
return this
|
|
}
|
|
|
|
fun asCursor(db: SQLiteDatabase): Cursor {
|
|
return db.rawQuery(toString(), null)
|
|
}
|
|
|
|
override fun toString(): String {
|
|
return builder.toString().trim()
|
|
}
|
|
|
|
} |