Inline query constructors now can be used more shortly via subclassing

This commit is contained in:
Andrew Golovashevich 2025-02-24 20:49:00 +03:00
parent 803e1fdf13
commit e1e014cd1d

View File

@ -11,7 +11,7 @@ import ru.landgrafhomyak.db.serdha0.api.queries.UpdateQuery
import ru.landgrafhomyak.db.serdha0.api.queries._Query import ru.landgrafhomyak.db.serdha0.api.queries._Query
import ru.landgrafhomyak.db.serdha0.api.table.Table import ru.landgrafhomyak.db.serdha0.api.table.Table
public class InlineSelectConstructor<qUE : Any, sqUE : Any>( public open class InlineSelectConstructor<qUE : Any, sqUE : Any>(
override val source: _Selectable<sqUE>, override val source: _Selectable<sqUE>,
private val constructor: (SelectQuery.Simple.Constructor.Scope<qUE, sqUE>) -> qUE private val constructor: (SelectQuery.Simple.Constructor.Scope<qUE, sqUE>) -> qUE
) : SelectQuery.Simple.Constructor<qUE, sqUE> { ) : SelectQuery.Simple.Constructor<qUE, sqUE> {
@ -23,7 +23,7 @@ public fun <qUE : Any, sqUE : Any> _Query.Constructor._SelectsScope.select(
source: _Selectable<sqUE>, constructor: (SelectQuery.Simple.Constructor.Scope<qUE, sqUE>) -> qUE source: _Selectable<sqUE>, constructor: (SelectQuery.Simple.Constructor.Scope<qUE, sqUE>) -> qUE
): SelectQuery.Simple<qUE> = this.select(InlineSelectConstructor(source, constructor)) ): SelectQuery.Simple<qUE> = this.select(InlineSelectConstructor(source, constructor))
public class InlineSelectReducingConstructor<qUE : Any, sqUE : Any>( public open class InlineSelectReducingConstructor<qUE : Any, sqUE : Any>(
override val source: _Selectable<sqUE>, override val source: _Selectable<sqUE>,
private val constructor: (SelectQuery.Reducing.Constructor.Scope<qUE, sqUE>) -> qUE private val constructor: (SelectQuery.Reducing.Constructor.Scope<qUE, sqUE>) -> qUE
) : SelectQuery.Reducing.Constructor<qUE, sqUE> { ) : SelectQuery.Reducing.Constructor<qUE, sqUE> {
@ -35,7 +35,7 @@ public fun <qUE : Any, sqUE : Any> _Query.Constructor._SelectsScope.selectReduci
source: _Selectable<sqUE>, constructor: (SelectQuery.Reducing.Constructor.Scope<qUE, sqUE>) -> qUE source: _Selectable<sqUE>, constructor: (SelectQuery.Reducing.Constructor.Scope<qUE, sqUE>) -> qUE
): SelectQuery.Reducing<qUE> = this.selectReducing(InlineSelectReducingConstructor(source, constructor)) ): SelectQuery.Reducing<qUE> = this.selectReducing(InlineSelectReducingConstructor(source, constructor))
public class InlineSelectFoldingConstructor<qUE : Any, sqUE : Any>( public open class InlineSelectFoldingConstructor<qUE : Any, sqUE : Any>(
override val source: _Selectable<sqUE>, override val source: _Selectable<sqUE>,
private val constructor: (SelectQuery.Folding.Constructor.Scope<qUE, sqUE>) -> qUE private val constructor: (SelectQuery.Folding.Constructor.Scope<qUE, sqUE>) -> qUE
) : SelectQuery.Folding.Constructor<qUE, sqUE> { ) : SelectQuery.Folding.Constructor<qUE, sqUE> {
@ -48,7 +48,7 @@ public fun <qUE : Any, sqUE : Any> _Query.Constructor._SelectsScope.selectFoldin
): SelectQuery.Folding<qUE> = this.selectFolding(InlineSelectFoldingConstructor(source, constructor)) ): SelectQuery.Folding<qUE> = this.selectFolding(InlineSelectFoldingConstructor(source, constructor))
public class InlineSelectUnionConstructor<qUE : Any, fsqUE : Any, lsqUE : Any>( public open class InlineSelectUnionConstructor<qUE : Any, fsqUE : Any, lsqUE : Any>(
override val first: _Selectable<fsqUE>, override val last: _Selectable<lsqUE>, override val first: _Selectable<fsqUE>, override val last: _Selectable<lsqUE>,
private val constructor: (SelectQuery.Union.Constructor.Scope<qUE, fsqUE, lsqUE>) -> qUE private val constructor: (SelectQuery.Union.Constructor.Scope<qUE, fsqUE, lsqUE>) -> qUE
) : SelectQuery.Union.Constructor<qUE, fsqUE, lsqUE> { ) : SelectQuery.Union.Constructor<qUE, fsqUE, lsqUE> {
@ -60,7 +60,7 @@ public fun <qUE : Any, fsqUE : Any, lsqUE : Any> _Query.Constructor._SelectsScop
first: _Selectable<fsqUE>, last: _Selectable<lsqUE>, constructor: (SelectQuery.Union.Constructor.Scope<qUE, fsqUE, lsqUE>) -> qUE first: _Selectable<fsqUE>, last: _Selectable<lsqUE>, constructor: (SelectQuery.Union.Constructor.Scope<qUE, fsqUE, lsqUE>) -> qUE
): SelectQuery.Union<qUE> = this.selectUnion(InlineSelectUnionConstructor(first, last, constructor)) ): SelectQuery.Union<qUE> = this.selectUnion(InlineSelectUnionConstructor(first, last, constructor))
public class InlineInsertSingleRowConstructor<qUE : Any, ttUE : Any>( public open class InlineInsertSingleRowConstructor<qUE : Any, ttUE : Any>(
override val targetTable: Table<ttUE, *>, override val targetTable: Table<ttUE, *>,
private val constructor: (InsertQuery.SingleRow.Constructor.Scope<qUE, ttUE>) -> qUE private val constructor: (InsertQuery.SingleRow.Constructor.Scope<qUE, ttUE>) -> qUE
) : InsertQuery.SingleRow.Constructor<qUE, ttUE> { ) : InsertQuery.SingleRow.Constructor<qUE, ttUE> {
@ -73,7 +73,7 @@ public fun <qUE : Any, ttUE : Any> _Query.Constructor.Scope.insertSingleRow(
): InsertQuery.SingleRow<qUE> = this.insertSingleRow(InlineInsertSingleRowConstructor(targetTable, constructor)) ): InsertQuery.SingleRow<qUE> = this.insertSingleRow(InlineInsertSingleRowConstructor(targetTable, constructor))
public class InlineInsertFromSubqueryConstructor<qUE : Any, ttUE : Any, sqUE : Any>( public open class InlineInsertFromSubqueryConstructor<qUE : Any, ttUE : Any, sqUE : Any>(
override val targetTable: Table<ttUE, *>, override val targetTable: Table<ttUE, *>,
override val selector: _Selectable<sqUE>, override val selector: _Selectable<sqUE>,
private val constructor: (InsertQuery.FromSubquery.Constructor.Scope<qUE, ttUE, sqUE>) -> qUE private val constructor: (InsertQuery.FromSubquery.Constructor.Scope<qUE, ttUE, sqUE>) -> qUE
@ -86,6 +86,11 @@ public fun <qUE : Any, ttUE : Any, sqUE : Any> _Query.Constructor.Scope.insertFr
targetTable: Table<ttUE, *>, selector: _Selectable<sqUE>, constructor: (InsertQuery.FromSubquery.Constructor.Scope<qUE, ttUE, sqUE>) -> qUE targetTable: Table<ttUE, *>, selector: _Selectable<sqUE>, constructor: (InsertQuery.FromSubquery.Constructor.Scope<qUE, ttUE, sqUE>) -> qUE
): InsertQuery.FromSubquery<qUE> = this.insertFromSubquery(InlineInsertFromSubqueryConstructor(targetTable, selector, constructor)) ): InsertQuery.FromSubquery<qUE> = this.insertFromSubquery(InlineInsertFromSubqueryConstructor(targetTable, selector, constructor))
@Deprecated(
"Bad name",
ReplaceWith("InlineInsertMultipleRowsConstructor", "ru.landgrafhomyak.db.serdha0.user_commons.construction.InlineInsertMultipleRowsConstructor"),
DeprecationLevel.HIDDEN
)
public class InlineInsertMultipleRowConstructor<qUE : Any, ttUE : Any>( public class InlineInsertMultipleRowConstructor<qUE : Any, ttUE : Any>(
override val targetTable: Table<ttUE, *>, override val targetTable: Table<ttUE, *>,
private val constructor: (InsertQuery.MultipleRows.Constructor.Scope<qUE, ttUE>) -> qUE private val constructor: (InsertQuery.MultipleRows.Constructor.Scope<qUE, ttUE>) -> qUE
@ -94,11 +99,19 @@ public class InlineInsertMultipleRowConstructor<qUE : Any, ttUE : Any>(
this.constructor(context) this.constructor(context)
} }
public open class InlineInsertMultipleRowsConstructor<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( public fun <qUE : Any, ttUE : Any> _Query.Constructor.Scope.insertMultipleRows(
targetTable: Table<ttUE, *>, constructor: (InsertQuery.MultipleRows.Constructor.Scope<qUE, ttUE>) -> qUE targetTable: Table<ttUE, *>, constructor: (InsertQuery.MultipleRows.Constructor.Scope<qUE, ttUE>) -> qUE
): InsertQuery.MultipleRows<qUE> = this.insertMultipleRows(InlineInsertMultipleRowConstructor(targetTable, constructor)) ): InsertQuery.MultipleRows<qUE> = this.insertMultipleRows(InlineInsertMultipleRowsConstructor(targetTable, constructor))
public class InlineUpdateSingleRowConstructor<qUE : Any, ttUE : Any>( public open class InlineUpdateSingleRowConstructor<qUE : Any, ttUE : Any>(
override val targetTable: Table<ttUE, *>, override val targetTable: Table<ttUE, *>,
private val constructor: (UpdateQuery.SingleRow.Constructor.Scope<qUE, ttUE>) -> qUE private val constructor: (UpdateQuery.SingleRow.Constructor.Scope<qUE, ttUE>) -> qUE
) : UpdateQuery.SingleRow.Constructor<qUE, ttUE> { ) : UpdateQuery.SingleRow.Constructor<qUE, ttUE> {
@ -111,7 +124,7 @@ public fun <qUE : Any, ttUE : Any> _Query.Constructor.Scope.updateSingleRow(
): UpdateQuery.SingleRow<qUE> = this.updateSingleRow(InlineUpdateSingleRowConstructor(targetTable, constructor)) ): UpdateQuery.SingleRow<qUE> = this.updateSingleRow(InlineUpdateSingleRowConstructor(targetTable, constructor))
public class InlineUpdateFromSubqueryConstructor<qUE : Any, ttUE : Any, sqUE : Any>( public open class InlineUpdateFromSubqueryConstructor<qUE : Any, ttUE : Any, sqUE : Any>(
override val targetTable: Table<ttUE, *>, override val targetTable: Table<ttUE, *>,
override val selector: _Selectable<sqUE>, override val selector: _Selectable<sqUE>,
private val constructor: (UpdateQuery.FromSubquery.Constructor.Scope<qUE, ttUE, sqUE>) -> qUE private val constructor: (UpdateQuery.FromSubquery.Constructor.Scope<qUE, ttUE, sqUE>) -> qUE
@ -124,6 +137,12 @@ public fun <qUE : Any, ttUE : Any, sqUE : Any> _Query.Constructor.Scope.updateFr
targetTable: Table<ttUE, *>, selector: _Selectable<sqUE>, constructor: (UpdateQuery.FromSubquery.Constructor.Scope<qUE, ttUE, sqUE>) -> qUE targetTable: Table<ttUE, *>, selector: _Selectable<sqUE>, constructor: (UpdateQuery.FromSubquery.Constructor.Scope<qUE, ttUE, sqUE>) -> qUE
): UpdateQuery.FromSubquery<qUE> = this.updateFromSubquery(InlineUpdateFromSubqueryConstructor(targetTable, selector, constructor)) ): UpdateQuery.FromSubquery<qUE> = this.updateFromSubquery(InlineUpdateFromSubqueryConstructor(targetTable, selector, constructor))
@Deprecated(
"Bad name",
ReplaceWith("InlineUpdateMultipleRowsConstructor", "ru.landgrafhomyak.db.serdha0.user_commons.construction.InlineUpdateMultipleRowsConstructor"),
DeprecationLevel.HIDDEN
)
public class InlineUpdateMultipleRowConstructor<qUE : Any, ttUE : Any>( public class InlineUpdateMultipleRowConstructor<qUE : Any, ttUE : Any>(
override val targetTable: Table<ttUE, *>, override val targetTable: Table<ttUE, *>,
private val constructor: (UpdateQuery.MultipleRows.Constructor.Scope<qUE, ttUE>) -> qUE private val constructor: (UpdateQuery.MultipleRows.Constructor.Scope<qUE, ttUE>) -> qUE
@ -132,11 +151,19 @@ public class InlineUpdateMultipleRowConstructor<qUE : Any, ttUE : Any>(
this.constructor(context) this.constructor(context)
} }
public open class InlineUpdateMultipleRowsConstructor<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( public fun <qUE : Any, ttUE : Any> _Query.Constructor.Scope.updateMultipleRows(
targetTable: Table<ttUE, *>, constructor: (UpdateQuery.MultipleRows.Constructor.Scope<qUE, ttUE>) -> qUE targetTable: Table<ttUE, *>, constructor: (UpdateQuery.MultipleRows.Constructor.Scope<qUE, ttUE>) -> qUE
): UpdateQuery.MultipleRows<qUE> = this.updateMultipleRows(InlineUpdateMultipleRowConstructor(targetTable, constructor)) ): UpdateQuery.MultipleRows<qUE> = this.updateMultipleRows(InlineUpdateMultipleRowsConstructor(targetTable, constructor))
public class InlineDeleteSingleRowConstructor<qUE : Any, ttUE : Any>( public open class InlineDeleteSingleRowConstructor<qUE : Any, ttUE : Any>(
override val targetTable: Table<ttUE, *>, override val targetTable: Table<ttUE, *>,
private val constructor: (DeleteQuery.SingleRow.Constructor.Scope<qUE, ttUE>) -> qUE private val constructor: (DeleteQuery.SingleRow.Constructor.Scope<qUE, ttUE>) -> qUE
) : DeleteQuery.SingleRow.Constructor<qUE, ttUE> { ) : DeleteQuery.SingleRow.Constructor<qUE, ttUE> {
@ -149,7 +176,7 @@ public fun <qUE : Any, ttUE : Any> _Query.Constructor.Scope.deleteSingleRow(
): DeleteQuery.SingleRow<qUE> = this.deleteSingleRow(InlineDeleteSingleRowConstructor(targetTable, constructor)) ): DeleteQuery.SingleRow<qUE> = this.deleteSingleRow(InlineDeleteSingleRowConstructor(targetTable, constructor))
public class InlineDeleteFromSubqueryConstructor<qUE : Any, ttUE : Any, sqUE : Any>( public open class InlineDeleteFromSubqueryConstructor<qUE : Any, ttUE : Any, sqUE : Any>(
override val targetTable: Table<ttUE, *>, override val targetTable: Table<ttUE, *>,
override val selector: _Selectable<sqUE>, override val selector: _Selectable<sqUE>,
private val constructor: (DeleteQuery.FromSubquery.Constructor.Scope<qUE, ttUE, sqUE>) -> qUE private val constructor: (DeleteQuery.FromSubquery.Constructor.Scope<qUE, ttUE, sqUE>) -> qUE
@ -162,6 +189,11 @@ public fun <qUE : Any, ttUE : Any, sqUE : Any> _Query.Constructor.Scope.deleteFr
targetTable: Table<ttUE, *>, selector: _Selectable<sqUE>, constructor: (DeleteQuery.FromSubquery.Constructor.Scope<qUE, ttUE, sqUE>) -> qUE targetTable: Table<ttUE, *>, selector: _Selectable<sqUE>, constructor: (DeleteQuery.FromSubquery.Constructor.Scope<qUE, ttUE, sqUE>) -> qUE
): DeleteQuery.FromSubquery<qUE> = this.deleteFromSubquery(InlineDeleteFromSubqueryConstructor(targetTable, selector, constructor)) ): DeleteQuery.FromSubquery<qUE> = this.deleteFromSubquery(InlineDeleteFromSubqueryConstructor(targetTable, selector, constructor))
@Deprecated(
"Bad name",
ReplaceWith("InlineDeleteMultipleRowsConstructor", "ru.landgrafhomyak.db.serdha0.user_commons.construction.InlineDeleteMultipleRowsConstructor"),
DeprecationLevel.HIDDEN
)
public class InlineDeleteMultipleRowConstructor<qUE : Any, ttUE : Any>( public class InlineDeleteMultipleRowConstructor<qUE : Any, ttUE : Any>(
override val targetTable: Table<ttUE, *>, override val targetTable: Table<ttUE, *>,
private val constructor: (DeleteQuery.MultipleRows.Constructor.Scope<qUE, ttUE>) -> qUE private val constructor: (DeleteQuery.MultipleRows.Constructor.Scope<qUE, ttUE>) -> qUE
@ -170,7 +202,15 @@ public class InlineDeleteMultipleRowConstructor<qUE : Any, ttUE : Any>(
this.constructor(context) this.constructor(context)
} }
public open class InlineDeleteMultipleRowsConstructor<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( public fun <qUE : Any, ttUE : Any> _Query.Constructor.Scope.deleteMultipleRows(
targetTable: Table<ttUE, *>, constructor: (DeleteQuery.MultipleRows.Constructor.Scope<qUE, ttUE>) -> qUE targetTable: Table<ttUE, *>, constructor: (DeleteQuery.MultipleRows.Constructor.Scope<qUE, ttUE>) -> qUE
): DeleteQuery.MultipleRows<qUE> = this.deleteMultipleRows(InlineDeleteMultipleRowConstructor(targetTable, constructor)) ): DeleteQuery.MultipleRows<qUE> = this.deleteMultipleRows(InlineDeleteMultipleRowsConstructor(targetTable, constructor))