User extension for queries marked as 'out' to allow interfaces
This commit is contained in:
parent
306bf7c971
commit
1ce03daf99
@ -1,6 +1,6 @@
|
|||||||
package ru.landgrafhomyak.db.serdha0.api.misc
|
package ru.landgrafhomyak.db.serdha0.api.misc
|
||||||
|
|
||||||
@Suppress("ClassName")
|
@Suppress("ClassName")
|
||||||
public interface _Selectable<UE : Any> {
|
public interface _Selectable<out UE : Any> {
|
||||||
public val uExt: UE
|
public val uExt: UE
|
||||||
}
|
}
|
@ -8,8 +8,8 @@ import ru.landgrafhomyak.db.serdha0.api.runtime.InputRow
|
|||||||
import ru.landgrafhomyak.db.serdha0.api.table.RowId
|
import ru.landgrafhomyak.db.serdha0.api.table.RowId
|
||||||
import ru.landgrafhomyak.db.serdha0.api.table.Table
|
import ru.landgrafhomyak.db.serdha0.api.table.Table
|
||||||
|
|
||||||
public interface DeleteQuery<qUE : Any> : _Query<qUE> {
|
public interface DeleteQuery<out qUE : Any> : _Query<qUE> {
|
||||||
public interface SingleRow<qUE : Any> : DeleteQuery<qUE>, _Query.Params2Table<qUE> {
|
public interface SingleRow<out qUE : Any> : DeleteQuery<qUE>, _Query.Params2Table<qUE> {
|
||||||
public interface Constructor<qUE : Any, ttUE : Any> : _Query.Constructor<SingleRow<qUE>> {
|
public interface Constructor<qUE : Any, ttUE : Any> : _Query.Constructor<SingleRow<qUE>> {
|
||||||
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): SingleRow<qUE> =
|
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): SingleRow<qUE> =
|
||||||
outQueries.deleteSingleRow(this)
|
outQueries.deleteSingleRow(this)
|
||||||
@ -36,7 +36,7 @@ public interface DeleteQuery<qUE : Any> : _Query<qUE> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface FromSubquery<qUE : Any> : DeleteQuery<qUE>, _Query.Params2Table<qUE> {
|
public interface FromSubquery<out qUE : Any> : DeleteQuery<qUE>, _Query.Params2Table<qUE> {
|
||||||
public interface Constructor<qUE : Any, ttUE : Any, sUE : Any> : _Query.Constructor<FromSubquery<qUE>> {
|
public interface Constructor<qUE : Any, ttUE : Any, sUE : Any> : _Query.Constructor<FromSubquery<qUE>> {
|
||||||
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): FromSubquery<qUE> =
|
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): FromSubquery<qUE> =
|
||||||
outQueries.deleteFromSubquery(this)
|
outQueries.deleteFromSubquery(this)
|
||||||
@ -67,7 +67,7 @@ public interface DeleteQuery<qUE : Any> : _Query<qUE> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface MultipleRows<qUE : Any> : DeleteQuery<qUE>, _Query.Table2Void<qUE> {
|
public interface MultipleRows<out qUE : Any> : DeleteQuery<qUE>, _Query.Table2Void<qUE> {
|
||||||
public interface Constructor<qUE : Any, ttUE : Any> : _Query.Constructor<MultipleRows<qUE>> {
|
public interface Constructor<qUE : Any, ttUE : Any> : _Query.Constructor<MultipleRows<qUE>> {
|
||||||
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): MultipleRows<qUE> =
|
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): MultipleRows<qUE> =
|
||||||
outQueries.deleteMultipleRows(this)
|
outQueries.deleteMultipleRows(this)
|
||||||
|
@ -8,7 +8,7 @@ import ru.landgrafhomyak.db.serdha0.api.misc._Selectable
|
|||||||
import ru.landgrafhomyak.db.serdha0.api.runtime.InputRow
|
import ru.landgrafhomyak.db.serdha0.api.runtime.InputRow
|
||||||
import ru.landgrafhomyak.db.serdha0.api.table.UniqueIndex
|
import ru.landgrafhomyak.db.serdha0.api.table.UniqueIndex
|
||||||
|
|
||||||
public interface InsertQuery<qUE : Any> : _Query<qUE> {
|
public interface InsertQuery<out qUE : Any> : _Query<qUE> {
|
||||||
@Suppress("ClassName")
|
@Suppress("ClassName")
|
||||||
public interface _UpsertClauseScope<qUE : Any, tUE : Any> {
|
public interface _UpsertClauseScope<qUE : Any, tUE : Any> {
|
||||||
public fun keepColumn(column: Column<*, *, tUE>)
|
public fun keepColumn(column: Column<*, *, tUE>)
|
||||||
@ -27,7 +27,7 @@ public interface InsertQuery<qUE : Any> : _Query<qUE> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public interface SingleRow<qUE : Any> : InsertQuery<qUE>, _Query.Params2Table<qUE> {
|
public interface SingleRow<out qUE : Any> : InsertQuery<qUE>, _Query.Params2Table<qUE> {
|
||||||
public interface Constructor<qUE : Any, ttUE : Any> : _Query.Constructor<SingleRow<qUE>> {
|
public interface Constructor<qUE : Any, ttUE : Any> : _Query.Constructor<SingleRow<qUE>> {
|
||||||
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): SingleRow<qUE> =
|
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): SingleRow<qUE> =
|
||||||
outQueries.insertSingleRow(this)
|
outQueries.insertSingleRow(this)
|
||||||
@ -52,7 +52,7 @@ public interface InsertQuery<qUE : Any> : _Query<qUE> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public interface FromSubquery<qUE : Any> : InsertQuery<qUE>, _Query.Params2Table<qUE> {
|
public interface FromSubquery<out qUE : Any> : InsertQuery<qUE>, _Query.Params2Table<qUE> {
|
||||||
public interface Constructor<qUE : Any, ttUE : Any, sUE : Any> : _Query.Constructor<FromSubquery<qUE>> {
|
public interface Constructor<qUE : Any, ttUE : Any, sUE : Any> : _Query.Constructor<FromSubquery<qUE>> {
|
||||||
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): FromSubquery<qUE> =
|
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): FromSubquery<qUE> =
|
||||||
outQueries.insertFromSubquery(this)
|
outQueries.insertFromSubquery(this)
|
||||||
@ -82,7 +82,7 @@ public interface InsertQuery<qUE : Any> : _Query<qUE> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface MultipleRows<qUE : Any> : InsertQuery<qUE>, _Query.Table2Void<qUE> {
|
public interface MultipleRows<out qUE : Any> : InsertQuery<qUE>, _Query.Table2Void<qUE> {
|
||||||
public interface Constructor<qUE : Any, ttUE : Any> : _Query.Constructor<MultipleRows<qUE>> {
|
public interface Constructor<qUE : Any, ttUE : Any> : _Query.Constructor<MultipleRows<qUE>> {
|
||||||
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): MultipleRows<qUE> =
|
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): MultipleRows<qUE> =
|
||||||
outQueries.insertMultipleRows(this)
|
outQueries.insertMultipleRows(this)
|
||||||
|
@ -10,7 +10,7 @@ import ru.landgrafhomyak.db.serdha0.api.misc.Reducer
|
|||||||
import ru.landgrafhomyak.db.serdha0.api.misc._Selectable
|
import ru.landgrafhomyak.db.serdha0.api.misc._Selectable
|
||||||
import ru.landgrafhomyak.db.serdha0.api.runtime.InputRow
|
import ru.landgrafhomyak.db.serdha0.api.runtime.InputRow
|
||||||
|
|
||||||
public interface SelectQuery<qUE : Any> : _Query<qUE> {
|
public interface SelectQuery<out qUE : Any> : _Query<qUE> {
|
||||||
public enum class Order {
|
public enum class Order {
|
||||||
ASC, DESC
|
ASC, DESC
|
||||||
}
|
}
|
||||||
@ -51,7 +51,7 @@ public interface SelectQuery<qUE : Any> : _Query<qUE> {
|
|||||||
public fun <RT, DT : DatabaseType<RT>> returnColumn(name: String, column: IntermediateColumn<RT, DT, qUE>): Column<RT, DT, qUE>
|
public fun <RT, DT : DatabaseType<RT>> returnColumn(name: String, column: IntermediateColumn<RT, DT, qUE>): Column<RT, DT, qUE>
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface Simple<qUE : Any> : SelectQuery<qUE>, _Query.Params2Table<qUE> {
|
public interface Simple<out qUE : Any> : SelectQuery<qUE>, _Query.Params2Table<qUE> {
|
||||||
public interface Constructor<qUE : Any, tUE : Any> : _Query.Constructor<Simple<qUE>> {
|
public interface Constructor<qUE : Any, tUE : Any> : _Query.Constructor<Simple<qUE>> {
|
||||||
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): Simple<qUE> =
|
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): Simple<qUE> =
|
||||||
outQueries.select(this)
|
outQueries.select(this)
|
||||||
@ -69,7 +69,7 @@ public interface SelectQuery<qUE : Any> : _Query<qUE> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface WithJoin<qUE : Any> : SelectQuery<qUE>, _Query.Params2Table<qUE> {
|
public interface WithJoin<out qUE : Any> : SelectQuery<qUE>, _Query.Params2Table<qUE> {
|
||||||
public interface Constructor<qUE : Any, lsqUE : Any, rsqUE : Any> : _Query.Constructor<WithJoin<qUE>> {
|
public interface Constructor<qUE : Any, lsqUE : Any, rsqUE : Any> : _Query.Constructor<WithJoin<qUE>> {
|
||||||
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): WithJoin<qUE> =
|
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): WithJoin<qUE> =
|
||||||
outQueries.selectWithJoin(this)
|
outQueries.selectWithJoin(this)
|
||||||
@ -96,7 +96,7 @@ public interface SelectQuery<qUE : Any> : _Query<qUE> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface Reducing<qUE : Any> : SelectQuery<qUE>, _Query.Params2Table<qUE> {
|
public interface Reducing<out qUE : Any> : SelectQuery<qUE>, _Query.Params2Table<qUE> {
|
||||||
public interface Constructor<qUE : Any, tUE : Any> : _Query.Constructor<Reducing<qUE>> {
|
public interface Constructor<qUE : Any, tUE : Any> : _Query.Constructor<Reducing<qUE>> {
|
||||||
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): Reducing<qUE> =
|
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): Reducing<qUE> =
|
||||||
outQueries.selectReducing(this)
|
outQueries.selectReducing(this)
|
||||||
@ -122,7 +122,7 @@ public interface SelectQuery<qUE : Any> : _Query<qUE> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface Folding<qUE : Any> : SelectQuery<qUE>, _Query.Params2Table<qUE> {
|
public interface Folding<out qUE : Any> : SelectQuery<qUE>, _Query.Params2Table<qUE> {
|
||||||
public interface Constructor<qUE : Any, tUE : Any> : _Query.Constructor<Folding<qUE>> {
|
public interface Constructor<qUE : Any, tUE : Any> : _Query.Constructor<Folding<qUE>> {
|
||||||
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): Folding<qUE> =
|
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): Folding<qUE> =
|
||||||
outQueries.selectFolding(this)
|
outQueries.selectFolding(this)
|
||||||
|
@ -7,8 +7,8 @@ import ru.landgrafhomyak.db.serdha0.api.misc.QueryParam
|
|||||||
import ru.landgrafhomyak.db.serdha0.api.misc._Selectable
|
import ru.landgrafhomyak.db.serdha0.api.misc._Selectable
|
||||||
import ru.landgrafhomyak.db.serdha0.api.runtime.InputRow
|
import ru.landgrafhomyak.db.serdha0.api.runtime.InputRow
|
||||||
|
|
||||||
public interface UpdateQuery<qUE : Any> : _Query<qUE> {
|
public interface UpdateQuery<out qUE : Any> : _Query<qUE> {
|
||||||
public interface SingleRow<qUE : Any> : UpdateQuery<qUE>, _Query.Params2Table<qUE> {
|
public interface SingleRow<out qUE : Any> : UpdateQuery<qUE>, _Query.Params2Table<qUE> {
|
||||||
public interface Constructor<qUE : Any, ttUE : Any> : _Query.Constructor<SingleRow<qUE>> {
|
public interface Constructor<qUE : Any, ttUE : Any> : _Query.Constructor<SingleRow<qUE>> {
|
||||||
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): SingleRow<qUE> =
|
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): SingleRow<qUE> =
|
||||||
outQueries.updateSingleRow(this)
|
outQueries.updateSingleRow(this)
|
||||||
@ -38,7 +38,7 @@ public interface UpdateQuery<qUE : Any> : _Query<qUE> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface FromSubquery<qUE : Any> : UpdateQuery<qUE>, _Query.Params2Table<qUE> {
|
public interface FromSubquery<out qUE : Any> : UpdateQuery<qUE>, _Query.Params2Table<qUE> {
|
||||||
public interface Constructor<qUE : Any, ttUE : Any, sUE : Any> : _Query.Constructor<FromSubquery<qUE>> {
|
public interface Constructor<qUE : Any, ttUE : Any, sUE : Any> : _Query.Constructor<FromSubquery<qUE>> {
|
||||||
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): FromSubquery<qUE> =
|
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): FromSubquery<qUE> =
|
||||||
outQueries.updateFromSubquery(this)
|
outQueries.updateFromSubquery(this)
|
||||||
@ -74,7 +74,7 @@ public interface UpdateQuery<qUE : Any> : _Query<qUE> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface MultipleRows<qUE : Any> : UpdateQuery<qUE>, _Query.Table2Void<qUE> {
|
public interface MultipleRows<out qUE : Any> : UpdateQuery<qUE>, _Query.Table2Void<qUE> {
|
||||||
public interface Constructor<qUE : Any, ttUE : Any> : _Query.Constructor<MultipleRows<qUE>> {
|
public interface Constructor<qUE : Any, ttUE : Any> : _Query.Constructor<MultipleRows<qUE>> {
|
||||||
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): MultipleRows<qUE> =
|
override fun createQuery(internalQueries: _Query.Constructor.Scope, outQueries: _Query.Constructor.Scope): MultipleRows<qUE> =
|
||||||
outQueries.updateMultipleRows(this)
|
outQueries.updateMultipleRows(this)
|
||||||
|
@ -4,13 +4,13 @@ import ru.landgrafhomyak.db.serdha0.api.misc._Selectable
|
|||||||
|
|
||||||
|
|
||||||
@Suppress("ClassName")
|
@Suppress("ClassName")
|
||||||
public interface _Query<qUE : Any> {
|
public interface _Query<out qUE : Any> {
|
||||||
public val uExt: qUE
|
public val uExt: qUE
|
||||||
|
|
||||||
public interface Table2Void<QueryUserExtension : Any> : _Query<QueryUserExtension>
|
public interface Table2Void<out qUE : Any> : _Query<qUE>
|
||||||
public interface Params2Void<QueryUserExtension : Any> : _Query<QueryUserExtension>
|
public interface Params2Void<out qUE : Any> : _Query<qUE>
|
||||||
public interface Params2Table<QueryUserExtension : Any> : _Query<QueryUserExtension>, _Selectable<QueryUserExtension>
|
public interface Params2Table<out qUE : Any> : _Query<qUE>, _Selectable<qUE>
|
||||||
public interface Void2Table<QueryUserExtension : Any> : _Query<QueryUserExtension>, _Selectable<QueryUserExtension>
|
public interface Void2Table<out qUE : Any> : _Query<qUE>, _Selectable<qUE>
|
||||||
|
|
||||||
public interface Constructor<R> {
|
public interface Constructor<R> {
|
||||||
public fun createQuery(internalQueries: Scope, outQueries: Scope): R
|
public fun createQuery(internalQueries: Scope, outQueries: Scope): R
|
||||||
|
@ -3,8 +3,8 @@ package ru.landgrafhomyak.db.serdha0.api.table
|
|||||||
import ru.landgrafhomyak.db.serdha0.api.misc._Selectable
|
import ru.landgrafhomyak.db.serdha0.api.misc._Selectable
|
||||||
import ru.landgrafhomyak.db.serdha0.api.module.Module
|
import ru.landgrafhomyak.db.serdha0.api.module.Module
|
||||||
|
|
||||||
public interface Table<UserExtension : Any, PreviousUserExtension : Any> : _Selectable<UserExtension> {
|
public interface Table<out UE : Any, pUE : Any> : _Selectable<UE> {
|
||||||
public override val uExt: UserExtension
|
public override val uExt: UE
|
||||||
public val name: String
|
public val name: String
|
||||||
public val module: Module<*>
|
public val module: Module<*>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user