Simple constructors implementation for all queries except 'SELECT JOIN'
This commit is contained in:
parent
f747cc6f0e
commit
a941420b8c
@ -0,0 +1,176 @@
|
||||
@file:JvmName("_InlineConstructorsKt")
|
||||
|
||||
package ru.landgrafhomyak.db.serdha0.user_commons.construction
|
||||
|
||||
import kotlin.jvm.JvmName
|
||||
import ru.landgrafhomyak.db.serdha0.api.misc._Selectable
|
||||
import ru.landgrafhomyak.db.serdha0.api.queries.DeleteQuery
|
||||
import ru.landgrafhomyak.db.serdha0.api.queries.InsertQuery
|
||||
import ru.landgrafhomyak.db.serdha0.api.queries.SelectQuery
|
||||
import ru.landgrafhomyak.db.serdha0.api.queries.UpdateQuery
|
||||
import ru.landgrafhomyak.db.serdha0.api.queries._Query
|
||||
import ru.landgrafhomyak.db.serdha0.api.table.Table
|
||||
|
||||
public class InlineSelectConstructor<qUE : Any, sqUE : Any>(
|
||||
override val source: _Selectable<sqUE>,
|
||||
private val constructor: (SelectQuery.Simple.Constructor.Scope<qUE, sqUE>) -> qUE
|
||||
) : SelectQuery.Simple.Constructor<qUE, sqUE> {
|
||||
override fun createSelect(context: SelectQuery.Simple.Constructor.Scope<qUE, sqUE>): qUE =
|
||||
this.constructor(context)
|
||||
}
|
||||
|
||||
public fun <qUE : Any, sqUE : Any> _Query.Constructor._SelectsScope.select(
|
||||
source: _Selectable<sqUE>, constructor: (SelectQuery.Simple.Constructor.Scope<qUE, sqUE>) -> qUE
|
||||
): SelectQuery.Simple<qUE> = this.select(InlineSelectConstructor(source, constructor))
|
||||
|
||||
public class InlineSelectReducingConstructor<qUE : Any, sqUE : Any>(
|
||||
override val source: _Selectable<sqUE>,
|
||||
private val constructor: (SelectQuery.Reducing.Constructor.Scope<qUE, sqUE>) -> qUE
|
||||
) : SelectQuery.Reducing.Constructor<qUE, sqUE> {
|
||||
override fun createSelectWithReduce(context: SelectQuery.Reducing.Constructor.Scope<qUE, sqUE>): qUE =
|
||||
this.constructor(context)
|
||||
}
|
||||
|
||||
public fun <qUE : Any, sqUE : Any> _Query.Constructor._SelectsScope.selectReducing(
|
||||
source: _Selectable<sqUE>, constructor: (SelectQuery.Reducing.Constructor.Scope<qUE, sqUE>) -> qUE
|
||||
): SelectQuery.Reducing<qUE> = this.selectReducing(InlineSelectReducingConstructor(source, constructor))
|
||||
|
||||
public class InlineSelectFoldingConstructor<qUE : Any, sqUE : Any>(
|
||||
override val source: _Selectable<sqUE>,
|
||||
private val constructor: (SelectQuery.Folding.Constructor.Scope<qUE, sqUE>) -> qUE
|
||||
) : SelectQuery.Folding.Constructor<qUE, sqUE> {
|
||||
override fun createSelectWithFold(context: SelectQuery.Folding.Constructor.Scope<qUE, sqUE>): qUE =
|
||||
this.constructor(context)
|
||||
}
|
||||
|
||||
public fun <qUE : Any, sqUE : Any> _Query.Constructor._SelectsScope.selectFolding(
|
||||
source: _Selectable<sqUE>, constructor: (SelectQuery.Folding.Constructor.Scope<qUE, sqUE>) -> qUE
|
||||
): SelectQuery.Folding<qUE> = this.selectFolding(InlineSelectFoldingConstructor(source, constructor))
|
||||
|
||||
|
||||
public class InlineSelectUnionConstructor<qUE : Any, fsqUE : Any, lsqUE : Any>(
|
||||
override val first: _Selectable<fsqUE>, override val last: _Selectable<lsqUE>,
|
||||
private val constructor: (SelectQuery.Union.Constructor.Scope<qUE, fsqUE, lsqUE>) -> qUE
|
||||
) : SelectQuery.Union.Constructor<qUE, fsqUE, lsqUE> {
|
||||
override fun createSelectWithJoin(context: SelectQuery.Union.Constructor.Scope<qUE, fsqUE, lsqUE>): qUE =
|
||||
this.constructor(context)
|
||||
}
|
||||
|
||||
public fun <qUE : Any, fsqUE : Any, lsqUE : Any> _Query.Constructor._SelectsScope.selectUnion(
|
||||
first: _Selectable<fsqUE>, last: _Selectable<lsqUE>, constructor: (SelectQuery.Union.Constructor.Scope<qUE, fsqUE, lsqUE>) -> qUE
|
||||
): SelectQuery.Union<qUE> = this.selectUnion(InlineSelectUnionConstructor(first, last, constructor))
|
||||
|
||||
public class InlineInsertSingleRowConstructor<qUE : Any, ttUE : Any>(
|
||||
override val targetTable: Table<ttUE, *>,
|
||||
private val constructor: (InsertQuery.SingleRow.Constructor.Scope<qUE, ttUE>) -> qUE
|
||||
) : InsertQuery.SingleRow.Constructor<qUE, ttUE> {
|
||||
override fun createInsertSingleRowWithReturning(context: InsertQuery.SingleRow.Constructor.Scope<qUE, ttUE>): qUE =
|
||||
this.constructor(context)
|
||||
}
|
||||
|
||||
public fun <qUE : Any, ttUE : Any> _Query.Constructor.Scope.insertSingleRow(
|
||||
targetTable: Table<ttUE, *>, constructor: (InsertQuery.SingleRow.Constructor.Scope<qUE, ttUE>) -> qUE
|
||||
): InsertQuery.SingleRow<qUE> = this.insertSingleRow(InlineInsertSingleRowConstructor(targetTable, constructor))
|
||||
|
||||
|
||||
public class InlineInsertFromSubqueryConstructor<qUE : Any, ttUE : Any, sqUE : Any>(
|
||||
override val targetTable: Table<ttUE, *>,
|
||||
override val selector: _Selectable<sqUE>,
|
||||
private val constructor: (InsertQuery.FromSubquery.Constructor.Scope<qUE, ttUE, sqUE>) -> qUE
|
||||
) : InsertQuery.FromSubquery.Constructor<qUE, ttUE, sqUE> {
|
||||
override fun createInsertSingleRowWithReturning(context: InsertQuery.FromSubquery.Constructor.Scope<qUE, ttUE, sqUE>): qUE =
|
||||
this.constructor(context)
|
||||
}
|
||||
|
||||
public fun <qUE : Any, ttUE : Any, sqUE : Any> _Query.Constructor.Scope.insertFromSubquery(
|
||||
targetTable: Table<ttUE, *>, selector: _Selectable<sqUE>, constructor: (InsertQuery.FromSubquery.Constructor.Scope<qUE, ttUE, sqUE>) -> qUE
|
||||
): InsertQuery.FromSubquery<qUE> = this.insertFromSubquery(InlineInsertFromSubqueryConstructor(targetTable, selector, constructor))
|
||||
|
||||
public class InlineInsertMultipleRowConstructor<qUE : Any, ttUE : Any>(
|
||||
override val targetTable: Table<ttUE, *>,
|
||||
private val constructor: (InsertQuery.MultipleRows.Constructor.Scope<qUE, ttUE>) -> qUE
|
||||
) : InsertQuery.MultipleRows.Constructor<qUE, ttUE> {
|
||||
override fun createInsertMultipleRows(context: InsertQuery.MultipleRows.Constructor.Scope<qUE, ttUE>): qUE =
|
||||
this.constructor(context)
|
||||
}
|
||||
|
||||
public fun <qUE : Any, ttUE : Any> _Query.Constructor.Scope.insertMultipleRows(
|
||||
targetTable: Table<ttUE, *>, constructor: (InsertQuery.MultipleRows.Constructor.Scope<qUE, ttUE>) -> qUE
|
||||
): InsertQuery.MultipleRows<qUE> = this.insertMultipleRows(InlineInsertMultipleRowConstructor(targetTable, constructor))
|
||||
|
||||
public class InlineUpdateSingleRowConstructor<qUE : Any, ttUE : Any>(
|
||||
override val targetTable: Table<ttUE, *>,
|
||||
private val constructor: (UpdateQuery.SingleRow.Constructor.Scope<qUE, ttUE>) -> qUE
|
||||
) : UpdateQuery.SingleRow.Constructor<qUE, ttUE> {
|
||||
override fun createUpdateSingleWithReturning(context: UpdateQuery.SingleRow.Constructor.Scope<qUE, ttUE>): qUE =
|
||||
this.constructor(context)
|
||||
}
|
||||
|
||||
public fun <qUE : Any, ttUE : Any> _Query.Constructor.Scope.updateSingleRow(
|
||||
targetTable: Table<ttUE, *>, constructor: (UpdateQuery.SingleRow.Constructor.Scope<qUE, ttUE>) -> qUE
|
||||
): UpdateQuery.SingleRow<qUE> = this.updateSingleRow(InlineUpdateSingleRowConstructor(targetTable, constructor))
|
||||
|
||||
|
||||
public class InlineUpdateFromSubqueryConstructor<qUE : Any, ttUE : Any, sqUE : Any>(
|
||||
override val targetTable: Table<ttUE, *>,
|
||||
override val selector: _Selectable<sqUE>,
|
||||
private val constructor: (UpdateQuery.FromSubquery.Constructor.Scope<qUE, ttUE, sqUE>) -> qUE
|
||||
) : UpdateQuery.FromSubquery.Constructor<qUE, ttUE, sqUE> {
|
||||
override fun createUpdateFromSubqueryWithReturning(context: UpdateQuery.FromSubquery.Constructor.Scope<qUE, ttUE, sqUE>): qUE =
|
||||
this.constructor(context)
|
||||
}
|
||||
|
||||
public fun <qUE : Any, ttUE : Any, sqUE : Any> _Query.Constructor.Scope.updateFromSubquery(
|
||||
targetTable: Table<ttUE, *>, selector: _Selectable<sqUE>, constructor: (UpdateQuery.FromSubquery.Constructor.Scope<qUE, ttUE, sqUE>) -> qUE
|
||||
): UpdateQuery.FromSubquery<qUE> = this.updateFromSubquery(InlineUpdateFromSubqueryConstructor(targetTable, selector, constructor))
|
||||
|
||||
public class InlineUpdateMultipleRowConstructor<qUE : Any, ttUE : Any>(
|
||||
override val targetTable: Table<ttUE, *>,
|
||||
private val constructor: (UpdateQuery.MultipleRows.Constructor.Scope<qUE, ttUE>) -> qUE
|
||||
) : UpdateQuery.MultipleRows.Constructor<qUE, ttUE> {
|
||||
override fun createUpdateMultipleRows(context: UpdateQuery.MultipleRows.Constructor.Scope<qUE, ttUE>): qUE =
|
||||
this.constructor(context)
|
||||
}
|
||||
|
||||
public fun <qUE : Any, ttUE : Any> _Query.Constructor.Scope.updateMultipleRows(
|
||||
targetTable: Table<ttUE, *>, constructor: (UpdateQuery.MultipleRows.Constructor.Scope<qUE, ttUE>) -> qUE
|
||||
): UpdateQuery.MultipleRows<qUE> = this.updateMultipleRows(InlineUpdateMultipleRowConstructor(targetTable, constructor))
|
||||
|
||||
public class InlineDeleteSingleRowConstructor<qUE : Any, ttUE : Any>(
|
||||
override val targetTable: Table<ttUE, *>,
|
||||
private val constructor: (DeleteQuery.SingleRow.Constructor.Scope<qUE, ttUE>) -> qUE
|
||||
) : DeleteQuery.SingleRow.Constructor<qUE, ttUE> {
|
||||
override fun createDeleteSingleRowWithReturning(context: DeleteQuery.SingleRow.Constructor.Scope<qUE, ttUE>): qUE =
|
||||
this.constructor(context)
|
||||
}
|
||||
|
||||
public fun <qUE : Any, ttUE : Any> _Query.Constructor.Scope.deleteSingleRow(
|
||||
targetTable: Table<ttUE, *>, constructor: (DeleteQuery.SingleRow.Constructor.Scope<qUE, ttUE>) -> qUE
|
||||
): DeleteQuery.SingleRow<qUE> = this.deleteSingleRow(InlineDeleteSingleRowConstructor(targetTable, constructor))
|
||||
|
||||
|
||||
public class InlineDeleteFromSubqueryConstructor<qUE : Any, ttUE : Any, sqUE : Any>(
|
||||
override val targetTable: Table<ttUE, *>,
|
||||
override val selector: _Selectable<sqUE>,
|
||||
private val constructor: (DeleteQuery.FromSubquery.Constructor.Scope<qUE, ttUE, sqUE>) -> qUE
|
||||
) : DeleteQuery.FromSubquery.Constructor<qUE, ttUE, sqUE> {
|
||||
override fun createDeleteFromSubqueryWithReturning(context: DeleteQuery.FromSubquery.Constructor.Scope<qUE, ttUE, sqUE>): qUE =
|
||||
this.constructor(context)
|
||||
}
|
||||
|
||||
public fun <qUE : Any, ttUE : Any, sqUE : Any> _Query.Constructor.Scope.deleteFromSubquery(
|
||||
targetTable: Table<ttUE, *>, selector: _Selectable<sqUE>, constructor: (DeleteQuery.FromSubquery.Constructor.Scope<qUE, ttUE, sqUE>) -> qUE
|
||||
): DeleteQuery.FromSubquery<qUE> = this.deleteFromSubquery(InlineDeleteFromSubqueryConstructor(targetTable, selector, constructor))
|
||||
|
||||
public class InlineDeleteMultipleRowConstructor<qUE : Any, ttUE : Any>(
|
||||
override val targetTable: Table<ttUE, *>,
|
||||
private val constructor: (DeleteQuery.MultipleRows.Constructor.Scope<qUE, ttUE>) -> qUE
|
||||
) : DeleteQuery.MultipleRows.Constructor<qUE, ttUE> {
|
||||
override fun createMultipleRows(context: DeleteQuery.MultipleRows.Constructor.Scope<qUE, ttUE>): qUE =
|
||||
this.constructor(context)
|
||||
}
|
||||
|
||||
public fun <qUE : Any, ttUE : Any> _Query.Constructor.Scope.deleteMultipleRows(
|
||||
targetTable: Table<ttUE, *>, constructor: (DeleteQuery.MultipleRows.Constructor.Scope<qUE, ttUE>) -> qUE
|
||||
): DeleteQuery.MultipleRows<qUE> = this.deleteMultipleRows(InlineDeleteMultipleRowConstructor(targetTable, constructor))
|
||||
|
Loading…
Reference in New Issue
Block a user