Removed "Instance Key"/"Runtime Key" generic because it's hard to maintenance

This commit is contained in:
Andrew Golovashevich 2025-05-19 20:41:41 +03:00
parent 35a668ad37
commit ae92d1a407
24 changed files with 229 additions and 230 deletions

View File

@ -10,32 +10,32 @@ import ru.landgrafhomyak.db.skeleton1.api.statement._Statement
@ReflectionApi
@OptIn(ExperimentalCoroutinesApi::class)
public class UninitializedParameterException : RuntimeException, CopyableThrowable<UninitializedParameterException> {
public val statement: _Statement<*, *>
public val params: Collection<InputParam<*, *, *>>
public val statement: _Statement<*>
public val params: Collection<InputParam<*, *>>
public constructor(statement: _Statement<*, *>, params: Collection<InputParam<*, *, *>>) : super(formatMessage(statement, params)) {
public constructor(statement: _Statement<*>, params: Collection<InputParam<*, *>>) : super(formatMessage(statement, params)) {
this.statement = statement
this.params = params
}
public constructor(statement: _Statement<*, *>, params: Collection<InputParam<*, *, *>>, message: String) : super(message) {
public constructor(statement: _Statement<*>, params: Collection<InputParam<*, *>>, message: String) : super(message) {
this.statement = statement
this.params = params
}
public constructor(statement: _Statement<*, *>, params: Collection<InputParam<*, *, *>>, message: String, cause: Throwable) : super(message, cause) {
public constructor(statement: _Statement<*>, params: Collection<InputParam<*, *>>, message: String, cause: Throwable) : super(message, cause) {
this.statement = statement
this.params = params
}
public constructor(statement: _Statement<*, *>, params: Collection<InputParam<*, *, *>>, cause: Throwable) : super(formatMessage(statement, params), cause) {
public constructor(statement: _Statement<*>, params: Collection<InputParam<*, *>>, cause: Throwable) : super(formatMessage(statement, params), cause) {
this.statement = statement
this.params = params
}
public constructor(
statement: _Statement<*, *>,
params: Collection<InputParam<*, *, *>>,
statement: _Statement<*>,
params: Collection<InputParam<*, *>>,
message: String?,
cause: Throwable?,
@Suppress("unused", "LocalVariableName") _marker: Unit
@ -57,7 +57,7 @@ public class UninitializedParameterException : RuntimeException, CopyableThrowab
public companion object {
@JvmStatic
public fun formatMessage(statement: _Statement<*, *>, params: Collection<InputParam<*, *, *>>): String =
public fun formatMessage(statement: _Statement<*>, params: Collection<InputParam<*, *>>): String =
"While preparing statement $statement following parameters wasn't initialized: ${params.joinToString()}"
}
}

View File

@ -10,26 +10,26 @@ import ru.landgrafhomyak.db.skeleton1.api.module.Namespace
@ReflectionApi
@OptIn(ExperimentalCoroutinesApi::class)
public class NamespaceAlreadyBusyException : SchemaDefinitionException, CopyableThrowable<NamespaceAlreadyBusyException> {
public val namespace: Namespace<*, *>
public val namespace: Namespace<*>
public constructor(namespace: Namespace<*, *>) : super(formatMessage(namespace)) {
public constructor(namespace: Namespace<*>) : super(formatMessage(namespace)) {
this.namespace = namespace
}
public constructor(namespace: Namespace<*, *>, customMessage: String) : super(customMessage) {
public constructor(namespace: Namespace<*>, customMessage: String) : super(customMessage) {
this.namespace = namespace
}
public constructor(namespace: Namespace<*, *>, customMessage: String, cause: Throwable) : super(customMessage, cause) {
public constructor(namespace: Namespace<*>, customMessage: String, cause: Throwable) : super(customMessage, cause) {
this.namespace = namespace
}
public constructor(namespace: Namespace<*, *>, cause: Throwable) : super(formatMessage(namespace), cause) {
public constructor(namespace: Namespace<*>, cause: Throwable) : super(formatMessage(namespace), cause) {
this.namespace = namespace
}
public constructor(
namespace: Namespace<*, *>,
namespace: Namespace<*>,
message: String?, cause: Throwable?,
@Suppress("unused", "LocalVariableName") _marker: Unit
) : super(message, cause, _marker) {
@ -48,7 +48,7 @@ public class NamespaceAlreadyBusyException : SchemaDefinitionException, Copyable
public companion object {
@JvmStatic
public fun formatMessage(
namespace: Namespace<*, *>
namespace: Namespace<*>
): String = "Namespace ${namespace.name} is busy: attempt to allocate something in namespace captured by module or attempt to substitute module to non-empty namespace"
}
}

View File

@ -10,26 +10,26 @@ import ru.landgrafhomyak.db.skeleton1.api.table.Table
@ReflectionApi
@OptIn(ExperimentalCoroutinesApi::class)
public class TableWithoutColumnsException : SchemaDefinitionException, CopyableThrowable<TableWithoutColumnsException> {
public val table: Table<*, *, *>
public val table: Table<*, *>
public constructor(table: Table<*, *, *>) : super(formatMessage(table)) {
public constructor(table: Table<*, *>) : super(formatMessage(table)) {
this.table = table
}
public constructor(table: Table<*, *, *>, customMessage: String) : super(customMessage) {
public constructor(table: Table<*, *>, customMessage: String) : super(customMessage) {
this.table = table
}
public constructor(table: Table<*, *, *>, customMessage: String, cause: Throwable) : super(customMessage, cause) {
public constructor(table: Table<*, *>, customMessage: String, cause: Throwable) : super(customMessage, cause) {
this.table = table
}
public constructor(table: Table<*, *, *>, cause: Throwable) : super(formatMessage(table), cause) {
public constructor(table: Table<*, *>, cause: Throwable) : super(formatMessage(table), cause) {
this.table = table
}
public constructor(
table: Table<*, *, *>,
table: Table<*, *>,
message: String?, cause: Throwable?,
@Suppress("unused", "LocalVariableName") _marker: Unit
) : super(message, cause, _marker) {
@ -48,7 +48,7 @@ public class TableWithoutColumnsException : SchemaDefinitionException, CopyableT
public companion object {
@JvmStatic
public fun formatMessage(
table: Table<*, *, *>,
table: Table<*, *>,
): String = "Table $table doesn't have columns"
}
}

View File

@ -11,32 +11,32 @@ import ru.landgrafhomyak.db.skeleton1.api.module.Module
@OptIn(ExperimentalCoroutinesApi::class)
public class VersionDuplicationException : SchemaDefinitionException, CopyableThrowable<VersionDuplicationException> {
public val template: Module.Template<*>
public val versionOwner: Module<*, *>
public val newModule: Module<*, *>
public val versionOwner: Module<*>
public val newModule: Module<*>
public val version: String
public constructor(template: Module.Template<*>, versionOwner: Module<*, *>, newModule: Module<*, *>, version: String) : super(formatMessage(template, versionOwner, newModule, version)) {
public constructor(template: Module.Template<*>, versionOwner: Module<*>, newModule: Module<*>, version: String) : super(formatMessage(template, versionOwner, newModule, version)) {
this.template = template
this.versionOwner = versionOwner
this.newModule = newModule
this.version = version
}
public constructor(template: Module.Template<*>, versionOwner: Module<*, *>, newModule: Module<*, *>, version: String, customMessage: String) : super(customMessage) {
public constructor(template: Module.Template<*>, versionOwner: Module<*>, newModule: Module<*>, version: String, customMessage: String) : super(customMessage) {
this.template = template
this.versionOwner = versionOwner
this.newModule = newModule
this.version = version
}
public constructor(template: Module.Template<*>, versionOwner: Module<*, *>, newModule: Module<*, *>, version: String, customMessage: String, cause: Throwable) : super(customMessage, cause) {
public constructor(template: Module.Template<*>, versionOwner: Module<*>, newModule: Module<*>, version: String, customMessage: String, cause: Throwable) : super(customMessage, cause) {
this.template = template
this.versionOwner = versionOwner
this.newModule = newModule
this.version = version
}
public constructor(template: Module.Template<*>, versionOwner: Module<*, *>, newModule: Module<*, *>, version: String, cause: Throwable) : super(formatMessage(template, versionOwner, newModule, version), cause) {
public constructor(template: Module.Template<*>, versionOwner: Module<*>, newModule: Module<*>, version: String, cause: Throwable) : super(formatMessage(template, versionOwner, newModule, version), cause) {
this.template = template
this.versionOwner = versionOwner
this.newModule = newModule
@ -44,7 +44,7 @@ public class VersionDuplicationException : SchemaDefinitionException, CopyableTh
}
public constructor(
template: Module.Template<*>, versionOwner: Module<*, *>, newModule: Module<*, *>, version: String,
template: Module.Template<*>, versionOwner: Module<*>, newModule: Module<*>, version: String,
message: String?, cause: Throwable?,
@Suppress("unused", "LocalVariableName") _marker: Unit
) : super(message, cause, _marker) {
@ -69,7 +69,7 @@ public class VersionDuplicationException : SchemaDefinitionException, CopyableTh
public companion object {
@JvmStatic
public fun formatMessage(
template: Module.Template<*>, versionOwner: Module<*, *>, newModule: Module<*, *>, version: String
template: Module.Template<*>, versionOwner: Module<*>, newModule: Module<*>, version: String
): String = "Version '${version}' already associated with $versionOwner and $newModule provided by $template has the same version (circular upgrades are prohibited)"
}
}

View File

@ -8,7 +8,7 @@ import ru.landgrafhomyak.db.skeleton1.api.runtime.Transaction
import ru.landgrafhomyak.db.skeleton1.api.table.Table
public interface Module<mUE : Any, IK : Any> {
public interface Module<mUE : Any> {
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("uExt")
public val uExt: mUE
@ -21,7 +21,7 @@ public interface Module<mUE : Any, IK : Any> {
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getParentModule")
public val parentModule: Module<*, IK>?
public val parentModule: Module<*>?
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@ -31,63 +31,63 @@ public interface Module<mUE : Any, IK : Any> {
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getMemberTables")
public val memberTables: Collection<Table<*, mUE, IK>>
public val memberTables: Collection<Table<*, mUE>>
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getMemberObjects")
public val memberObjects: Collection<ModuleScopedObject<*, mUE, IK>>
public val memberObjects: Collection<ModuleScopedObject<*, mUE>>
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getMemberSubmodules")
public val memberSubmodules: Collection<Module<*, IK>>
public val memberSubmodules: Collection<Module<*>>
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getMemberTablesWhileUpgrade")
public val memberTablesWhileUpgrade: Collection<Table<*, mUE, IK>>
public val memberTablesWhileUpgrade: Collection<Table<*, mUE>>
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getMemberObjectsWhileUpgrade")
public val memberObjectsWhileUpgrade: Collection<ModuleScopedObject<*, mUE, IK>>
public val memberObjectsWhileUpgrade: Collection<ModuleScopedObject<*, mUE>>
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getMemberSubmodulesWhileUpgrade")
public val memberSubmodulesWhileUpgrade: Collection<Module<*, IK>>
public val memberSubmodulesWhileUpgrade: Collection<Module<*>>
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("willBeDeletedAfterUpgrade")
public val willBeDeletedAfterUpgrade: Boolean
public interface Constructor<mUE : Any, IK : Any> {
public interface Constructor<mUE : Any> {
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("versionKey")
public val versionKey: String
public fun createSchema(context: ModuleConstructorScope<mUE, IK>): mUE
public fun createSchema(context: ModuleConstructorScope<mUE>): mUE
public suspend fun initData(ext: mUE, compiler: QueriesCompiler<IK>, transaction: Transaction<IK>) {}
public suspend fun initData(ext: mUE, compiler: QueriesCompiler, transaction: Transaction) {}
}
public interface Upgrade<nmUE : Any, omUE : Any, IK : Any> {
public interface Upgrade<nmUE : Any, omUE : Any> {
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("versionKey")
public val versionKey: String
public fun upgradeSchema(context: ModuleUpgradeScope<nmUE, omUE, IK>): nmUE
public fun upgradeSchema(context: ModuleUpgradeScope<nmUE, omUE>): nmUE
public suspend fun upgradeData(ext: nmUE, compiler: QueriesCompiler<IK>, transaction: Transaction<IK>) {}
public suspend fun upgradeData(ext: nmUE, compiler: QueriesCompiler, transaction: Transaction) {}
}
public interface Template<@Suppress("unused") mUE : Any> {
@LowLevelApi
public fun <IK : Any> getConstructor(): Constructor<*, IK>
public fun getConstructor(): Constructor<*>
@LowLevelApi
public fun <IK : Any> getUpgrade(version: String): Upgrade<*, *, IK>?
public fun getUpgrade(version: String): Upgrade<*, *>?
}
}

View File

@ -9,32 +9,32 @@ import ru.landgrafhomyak.db.skeleton1.api.table.Table
import ru.landgrafhomyak.db.skeleton1.api.runtime.InputRow
public interface ModuleConstructorScope<mUE : Any, IK : Any> {
public interface ModuleConstructorScope<mUE : Any> {
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("rootNs")
public val rootNs: Namespace<mUE, IK>
public val rootNs: Namespace<mUE>
public fun <tUE : Any> createTable(
lifeTime: Table.LifeTime = Table.LifeTime.DATABASE_SCOPE,
namespace: Namespace<mUE, IK> = this.rootNs,
name: String, initializer: Table.Constructor<tUE, IK>
): Table<tUE, mUE, IK>
namespace: Namespace<mUE> = this.rootNs,
name: String, initializer: Table.Constructor<tUE>
): Table<tUE, mUE>
public fun <oUE : Any?> moduleScopedObject(
namespace: Namespace<mUE, IK> = this.rootNs,
namespace: Namespace<mUE> = this.rootNs,
name: String, metadata: ObjectOperations.ImplementationsProvider<oUE>
): ModuleScopedObject<oUE, mUE, IK>
): ModuleScopedObject<oUE, mUE>
public fun <mUE : Any> substituteModule(rootNs: Namespace<mUE, IK>, template: Module.Template<mUE>): Module<mUE, IK>
public fun <mUE : Any> substituteModule(rootNs: Namespace<mUE>, template: Module.Template<mUE>): Module<mUE>
public fun namespace(parent: Namespace<mUE, IK>, name: String): Namespace<mUE, IK>
public fun namespace(parent: Namespace<mUE>, name: String): Namespace<mUE>
public fun addStatement(stmt: _Statement.Void2Void<*, IK>)
public fun addStatement(stmt: _Statement.Void2Void<*>)
public fun addStatement(stmt: RawStatement.Void2Void.ImplementationsProvider<*>)
@LowLevelApi
public fun <sUE : Any> _addStatement(stmt: _Statement.Params2Void<sUE, IK>): InputRow._Scope<sUE, IK, Unit>
public fun <sUE : Any> _addStatement(stmt: _Statement.Params2Void<sUE>): InputRow._Scope<sUE, Unit>
@LowLevelApi
public fun <sUE : Any> _addStatement(stmt: RawStatement.Params2Void.ImplementationsProvider<sUE>): InputRow._Scope<sUE, IK, Unit>
public fun <sUE : Any> _addStatement(stmt: RawStatement.Params2Void.ImplementationsProvider<sUE>): InputRow._Scope<sUE, Unit>
}

View File

@ -4,14 +4,14 @@ import kotlin.jvm.JvmName
import ru.landgrafhomyak.db.skeleton1.api.ReflectionApi
import ru.landgrafhomyak.db.skeleton1.api.ObjectOperations
public interface ModuleScopedObject<oUE : Any?, mUE : Any, IK : Any> {
public interface ModuleScopedObject<oUE : Any?, mUE : Any> {
public val uExt: oUE
@ReflectionApi
public val name: String
@ReflectionApi
public val module: Module<mUE, IK>
public val module: Module<mUE>
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")

View File

@ -7,94 +7,94 @@ import ru.landgrafhomyak.db.skeleton1.api.runtime.InputRow
import ru.landgrafhomyak.db.skeleton1.api.table.Table
public interface ModuleUpgradeScope<nmUE : Any, omUE : Any, IK : Any> : ModuleConstructorScope<nmUE, IK> {
public interface ModuleUpgradeScope<nmUE : Any, omUE : Any> : ModuleConstructorScope<nmUE> {
// Table -------------------------------------------------------------------
public fun <tUE : Any> keepTable(table: Table<tUE, omUE, IK>): Table<tUE, nmUE, IK>
public fun <tUE : Any> keepTable(table: Table<tUE, omUE>): Table<tUE, nmUE>
public fun <tUE : Any> keepAndRenameTable(
table: Table<tUE, omUE, IK>,
newNamespace: Namespace<nmUE, IK>? = null, newName: String
): Table<tUE, nmUE, IK>
table: Table<tUE, omUE>,
newNamespace: Namespace<nmUE>? = null, newName: String
): Table<tUE, nmUE>
public fun <ntUE : Any, otUE : Any> upgradeTable(
oldTable: Table<otUE, omUE, IK>,
upgrade: Table.Upgrade<ntUE, otUE, IK>
): Table<ntUE, nmUE, IK>
oldTable: Table<otUE, omUE>,
upgrade: Table.Upgrade<ntUE, otUE>
): Table<ntUE, nmUE>
public fun <ntUE : Any, otUE : Any> upgradeAndRenameTable(
table: Table<otUE, omUE, IK>,
newNamespace: Namespace<nmUE, IK>? = null, newName: String,
upgrade: Table.Upgrade<ntUE, otUE, IK>
): Table<ntUE, nmUE, IK>
table: Table<otUE, omUE>,
newNamespace: Namespace<nmUE>? = null, newName: String,
upgrade: Table.Upgrade<ntUE, otUE>
): Table<ntUE, nmUE>
public fun deleteTable(table: Table<*, omUE, IK>)
public fun <tUE : Any> deleteTableAfterModuleUpgrade(table: Table<tUE, omUE, IK>): Table<tUE, nmUE, IK>
public fun deleteTable(table: Table<*, omUE>)
public fun <tUE : Any> deleteTableAfterModuleUpgrade(table: Table<tUE, omUE>): Table<tUE, nmUE>
public fun exportTable(table: Table<*, omUE, IK>)
public fun exportTable(table: Table<*, omUE>)
public fun <tUE : Any> importTable(
table: Table<tUE, *, IK>,
namespace: Namespace<nmUE, IK> = this.rootNs, name: String
): Table<tUE, nmUE, IK>
table: Table<tUE, *>,
namespace: Namespace<nmUE> = this.rootNs, name: String
): Table<tUE, nmUE>
public fun <ntUE : Any, otUE : Any> importAndUpgradeTable(
table: Table<otUE, *, IK>,
namespace: Namespace<nmUE, IK> = this.rootNs, name: String,
upgrade: Table.Upgrade<ntUE, otUE, IK>
): Table<ntUE, nmUE, IK>
table: Table<otUE, *>,
namespace: Namespace<nmUE> = this.rootNs, name: String,
upgrade: Table.Upgrade<ntUE, otUE>
): Table<ntUE, nmUE>
// Object ------------------------------------------------------------------
public fun <oUE : Any?> keepModuleScopedObject(obj: ModuleScopedObject<oUE, omUE, IK>): ModuleScopedObject<oUE, nmUE, IK>
public fun <oUE : Any?> keepModuleScopedObject(obj: ModuleScopedObject<oUE, omUE>): ModuleScopedObject<oUE, nmUE>
public fun <oUE : Any?> renameModuleScopedObject(
obj: ModuleScopedObject<oUE, omUE, IK>,
newNamespace: Namespace<nmUE, IK>? = null, newName: String
): ModuleScopedObject<oUE, nmUE, IK>
obj: ModuleScopedObject<oUE, omUE>,
newNamespace: Namespace<nmUE>? = null, newName: String
): ModuleScopedObject<oUE, nmUE>
public fun <oUE : Any?> deleteModuleScopedObject(obj: ModuleScopedObject<oUE, omUE, IK>)
public fun <oUE : Any?> deleteModuleScopedObjectAfterModuleUpgrade(obj: ModuleScopedObject<oUE, omUE, IK>): ModuleScopedObject<oUE, nmUE, IK>
public fun <oUE : Any?> deleteModuleScopedObject(obj: ModuleScopedObject<oUE, omUE>)
public fun <oUE : Any?> deleteModuleScopedObjectAfterModuleUpgrade(obj: ModuleScopedObject<oUE, omUE>): ModuleScopedObject<oUE, nmUE>
public fun exportModuleScopedObject(obj: ModuleScopedObject<*, omUE, IK>)
public fun exportModuleScopedObject(obj: ModuleScopedObject<*, omUE>)
public fun <oUE : Any> importModuleScopedObject(
obj: ModuleScopedObject<oUE, *, IK>,
namespace: Namespace<nmUE, IK> = this.rootNs, name: String
): ModuleScopedObject<oUE, nmUE, IK>
obj: ModuleScopedObject<oUE, *>,
namespace: Namespace<nmUE> = this.rootNs, name: String
): ModuleScopedObject<oUE, nmUE>
// Module ------------------------------------------------------------------
public fun <smUE : Any> keepModule(module: Module<smUE, IK>): Module<smUE, IK>
public fun <smUE : Any> keepAndMoveModule(oldModule: Module<smUE, IK>, newNs: Namespace<nmUE, IK>): Module<smUE, IK>
public fun <smUE : Any> keepModule(module: Module<smUE>): Module<smUE>
public fun <smUE : Any> keepAndMoveModule(oldModule: Module<smUE>, newNs: Namespace<nmUE>): Module<smUE>
public fun <smUE : Any> upgradeModule(oldModule: Module<*, IK>, template: Module.Template<smUE>): Module<smUE, IK>
public fun <smUE : Any> upgradeModule(oldModule: Module<*>, template: Module.Template<smUE>): Module<smUE>
public fun <smUE : Any> upgradeAndMoveModule(
oldModule: Module<*, IK>,
newNamespace: Namespace<nmUE, IK>,
oldModule: Module<*>,
newNamespace: Namespace<nmUE>,
template: Module.Template<smUE>
): Module<smUE, IK>
): Module<smUE>
public fun deleteModule(oldModule: Module<*, IK>)
public fun <smUE : Any> deleteModuleAfterUpgrade(oldModule: Module<smUE, IK>): Module<smUE, IK>
public fun deleteModule(oldModule: Module<*>)
public fun <smUE : Any> deleteModuleAfterUpgrade(oldModule: Module<smUE>): Module<smUE>
public fun exportModule(table: Module<*, IK>)
public fun exportModule(table: Module<*>)
public fun <smUE : Any> importModule(
module: Module<smUE, IK>,
namespace: Namespace<nmUE, IK>,
): Module<smUE, IK>
module: Module<smUE>,
namespace: Namespace<nmUE>,
): Module<smUE>
public fun <nsmUE : Any, osmUE : Any> importAndUpgradeModule(
module: Module<osmUE, IK>,
namespace: Namespace<nmUE, IK>,
upgrade: Module.Upgrade<nsmUE, osmUE, IK>
): Module<nsmUE, IK>
module: Module<osmUE>,
namespace: Namespace<nmUE>,
upgrade: Module.Upgrade<nsmUE, osmUE>
): Module<nsmUE>
// Statements --------------------------------------------------------------
public fun addStatementAfterUpgrade(stmt: _Statement.Void2Void<*, IK>)
public fun addStatementAfterUpgrade(stmt: _Statement.Void2Void<*>)
public fun addStatementAfterUpgrade(stmt: RawStatement.Void2Void.ImplementationsProvider<*>)
@LowLevelApi
public fun <sUE : Any> _addStatementAfterUpgrade(stmt: _Statement.Params2Void<sUE, IK>): InputRow._Scope<sUE, IK, Unit>
public fun <sUE : Any> _addStatementAfterUpgrade(stmt: _Statement.Params2Void<sUE>): InputRow._Scope<sUE, Unit>
@LowLevelApi
public fun <sUE : Any> _addStatementAfterUpgrade(stmt: RawStatement.Params2Void.ImplementationsProvider<sUE>): InputRow._Scope<sUE, IK, Unit>
public fun <sUE : Any> _addStatementAfterUpgrade(stmt: RawStatement.Params2Void.ImplementationsProvider<sUE>): InputRow._Scope<sUE, Unit>
}

View File

@ -3,7 +3,7 @@ package ru.landgrafhomyak.db.skeleton1.api.module
import kotlin.jvm.JvmName
import ru.landgrafhomyak.db.skeleton1.api.ReflectionApi
public interface Namespace<mUE : Any, IK : Any> {
public interface Namespace<mUE : Any> {
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getName")
@ -12,5 +12,5 @@ public interface Namespace<mUE : Any, IK : Any> {
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getPath")
public val parent: Namespace<mUE, IK>?
public val parent: Namespace<mUE>?
}

View File

@ -2,8 +2,8 @@ package ru.landgrafhomyak.db.skeleton1.api.runtime
import ru.landgrafhomyak.db.skeleton1.api.LowLevelApi
public interface Executor<IK : Any> {
public interface Executor {
@Suppress("FunctionName")
@LowLevelApi
public suspend fun _startTransaction(): Transaction<IK>
public suspend fun _startTransaction(): Transaction
}

View File

@ -4,27 +4,27 @@ import kotlin.jvm.JvmName
import ru.landgrafhomyak.db.skeleton1.api.LowLevelApi
import ru.landgrafhomyak.db.skeleton1.api.statement.InputParam
public interface InputRow<qUE : Any, IK : Any> {
public interface InputRow<qUE : Any> {
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("uExt")
public val uExt: qUE
public operator fun <RuntimeType> set(c: InputParam<RuntimeType, qUE, IK>, value: RuntimeType)
public operator fun <RuntimeType> set(c: InputParam<RuntimeType, qUE>, value: RuntimeType)
public operator fun set(c: InputParam<Byte, qUE, IK>, value: Byte): Unit = this.set<Byte>(c, value)
public operator fun set(c: InputParam<UByte, qUE, IK>, value: UByte): Unit = this.set<UByte>(c, value)
public operator fun set(c: InputParam<Short, qUE, IK>, value: Short): Unit = this.set<Short>(c, value)
public operator fun set(c: InputParam<UShort, qUE, IK>, value: UShort): Unit = this.set<UShort>(c, value)
public operator fun set(c: InputParam<Int, qUE, IK>, value: Int): Unit = this.set<Int>(c, value)
public operator fun set(c: InputParam<UInt, qUE, IK>, value: UInt): Unit = this.set<UInt>(c, value)
public operator fun set(c: InputParam<Long, qUE, IK>, value: Long): Unit = this.set<Long>(c, value)
public operator fun set(c: InputParam<ULong, qUE, IK>, value: ULong): Unit = this.set<ULong>(c, value)
public operator fun set(c: InputParam<Char, qUE, IK>, value: Char): Unit = this.set<Char>(c, value)
public operator fun set(c: InputParam<Boolean, qUE, IK>, value: Boolean): Unit = this.set<Boolean>(c, value)
public operator fun set(c: InputParam<Byte, qUE>, value: Byte): Unit = this.set<Byte>(c, value)
public operator fun set(c: InputParam<UByte, qUE>, value: UByte): Unit = this.set<UByte>(c, value)
public operator fun set(c: InputParam<Short, qUE>, value: Short): Unit = this.set<Short>(c, value)
public operator fun set(c: InputParam<UShort, qUE>, value: UShort): Unit = this.set<UShort>(c, value)
public operator fun set(c: InputParam<Int, qUE>, value: Int): Unit = this.set<Int>(c, value)
public operator fun set(c: InputParam<UInt, qUE>, value: UInt): Unit = this.set<UInt>(c, value)
public operator fun set(c: InputParam<Long, qUE>, value: Long): Unit = this.set<Long>(c, value)
public operator fun set(c: InputParam<ULong, qUE>, value: ULong): Unit = this.set<ULong>(c, value)
public operator fun set(c: InputParam<Char, qUE>, value: Char): Unit = this.set<Char>(c, value)
public operator fun set(c: InputParam<Boolean, qUE>, value: Boolean): Unit = this.set<Boolean>(c, value)
@Suppress("ClassName")
@LowLevelApi
public interface _Scope<qUE : Any, RK : Any, out Next> : InputRow<qUE, RK> {
public interface _Scope<qUE : Any, out Next> : InputRow<qUE> {
@Suppress("FunctionName")
@LowLevelApi
public suspend fun _finish(): Next
@ -36,7 +36,7 @@ public interface InputRow<qUE : Any, IK : Any> {
@Suppress("ClassName")
@LowLevelApi
public interface _Iterator<qUE : Any, RK : Any, out Next> : _Scope<qUE, RK, Next>, InputRow<qUE, RK> {
public interface _Iterator<qUE : Any, out Next> : _Scope<qUE, Next>, InputRow<qUE> {
@Suppress("FunctionName")
@LowLevelApi
public suspend fun _next(): Boolean

View File

@ -4,27 +4,27 @@ import kotlin.jvm.JvmName
import ru.landgrafhomyak.db.skeleton1.api.LowLevelApi
import ru.landgrafhomyak.db.skeleton1.api.statement.OutputColumn
public interface OutputRow<qUE : Any, IK : Any> {
public interface OutputRow<qUE : Any> {
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("uExt")
public val uExt: qUE
public operator fun <RuntimeType> get(c: OutputColumn<RuntimeType, qUE, IK>): RuntimeType
public operator fun <RuntimeType> get(c: OutputColumn<RuntimeType, qUE>): RuntimeType
public operator fun get(c: OutputColumn<Byte, qUE, IK>): Byte = this.get<Byte>(c)
public operator fun get(c: OutputColumn<UByte, qUE, IK>): UByte = this.get<UByte>(c)
public operator fun get(c: OutputColumn<Short, qUE, IK>): Short = this.get<Short>(c)
public operator fun get(c: OutputColumn<UShort, qUE, IK>): UShort = this.get<UShort>(c)
public operator fun get(c: OutputColumn<Int, qUE, IK>): Int = this.get<Int>(c)
public operator fun get(c: OutputColumn<UInt, qUE, IK>): UInt = this.get<UInt>(c)
public operator fun get(c: OutputColumn<Long, qUE, IK>): Long = this.get<Long>(c)
public operator fun get(c: OutputColumn<ULong, qUE, IK>): ULong = this.get<ULong>(c)
public operator fun get(c: OutputColumn<Char, qUE, IK>): Char = this.get<Char>(c)
public operator fun get(c: OutputColumn<Boolean, qUE, IK>): Boolean = this.get<Boolean>(c)
public operator fun get(c: OutputColumn<Byte, qUE>): Byte = this.get<Byte>(c)
public operator fun get(c: OutputColumn<UByte, qUE>): UByte = this.get<UByte>(c)
public operator fun get(c: OutputColumn<Short, qUE>): Short = this.get<Short>(c)
public operator fun get(c: OutputColumn<UShort, qUE>): UShort = this.get<UShort>(c)
public operator fun get(c: OutputColumn<Int, qUE>): Int = this.get<Int>(c)
public operator fun get(c: OutputColumn<UInt, qUE>): UInt = this.get<UInt>(c)
public operator fun get(c: OutputColumn<Long, qUE>): Long = this.get<Long>(c)
public operator fun get(c: OutputColumn<ULong, qUE>): ULong = this.get<ULong>(c)
public operator fun get(c: OutputColumn<Char, qUE>): Char = this.get<Char>(c)
public operator fun get(c: OutputColumn<Boolean, qUE>): Boolean = this.get<Boolean>(c)
@Suppress("ClassName")
@LowLevelApi
public interface _Scope<qUE : Any, RK : Any, out Next> : OutputRow<qUE, RK> {
public interface _Scope<qUE : Any,out Next> : OutputRow<qUE> {
@Suppress("FunctionName")
@LowLevelApi
public suspend fun _finish(): Next
@ -36,7 +36,7 @@ public interface OutputRow<qUE : Any, IK : Any> {
@Suppress("ClassName")
@LowLevelApi
public interface _Iterator<qUE : Any, RK : Any, out Next> : _Scope<qUE, RK, Next>, OutputRow<qUE, RK> {
public interface _Iterator<qUE : Any, out Next> : _Scope<qUE, Next>, OutputRow<qUE> {
@Suppress("FunctionName")
@LowLevelApi
public suspend fun _next(): Boolean

View File

@ -3,40 +3,40 @@ package ru.landgrafhomyak.db.skeleton1.api.runtime
import ru.landgrafhomyak.db.skeleton1.api.LowLevelApi
import ru.landgrafhomyak.db.skeleton1.api.statement._Statement
public interface Transaction<IK : Any> {
public suspend fun <qUE : Any?> executeQuery_void2void(compiledQuery: _Statement.Void2Void<qUE, IK>)
public interface Transaction {
public suspend fun <qUE : Any?> executeQuery_void2void(compiledQuery: _Statement.Void2Void<qUE>)
@Suppress("FunctionName")
@LowLevelApi
public suspend fun <qUE : Any> _executeQuery_void2row(compiledQuery: _Statement.Void2Row<qUE, IK>): OutputRow._Scope<qUE, IK, Unit>
public suspend fun <qUE : Any> _executeQuery_void2row(compiledQuery: _Statement.Void2Row<qUE>): OutputRow._Scope<qUE, Unit>
@Suppress("FunctionName")
@LowLevelApi
public suspend fun <qUE : Any> _executeQuery_void2rowOrNull(compiledQuery: _Statement.Void2RowOrNull<qUE, IK>): OutputRow._Scope<qUE, IK, Unit>?
public suspend fun <qUE : Any> _executeQuery_void2rowOrNull(compiledQuery: _Statement.Void2RowOrNull<qUE>): OutputRow._Scope<qUE, Unit>?
@Suppress("FunctionName")
@LowLevelApi
public suspend fun <qUE : Any> _executeQuery_void2table(compiledQuery: _Statement.Void2RowOrNull<qUE, IK>): OutputRow._Iterator<qUE, IK, Unit>
public suspend fun <qUE : Any> _executeQuery_void2table(compiledQuery: _Statement.Void2RowOrNull<qUE>): OutputRow._Iterator<qUE, Unit>
@Suppress("FunctionName")
@LowLevelApi
public suspend fun <qUE : Any> _executeQuery_params2void(compiledQuery: _Statement.Void2Void<qUE, IK>): InputRow._Scope<qUE, IK, Unit>
public suspend fun <qUE : Any> _executeQuery_params2void(compiledQuery: _Statement.Void2Void<qUE>): InputRow._Scope<qUE, Unit>
@Suppress("FunctionName")
@LowLevelApi
public suspend fun <qUE : Any> _executeQuery_params2row(compiledQuery: _Statement.Void2Row<qUE, IK>): InputRow._Scope<qUE, IK, OutputRow._Scope<qUE, IK, Unit>>
public suspend fun <qUE : Any> _executeQuery_params2row(compiledQuery: _Statement.Void2Row<qUE>): InputRow._Scope<qUE, OutputRow._Scope<qUE, Unit>>
@Suppress("FunctionName")
@LowLevelApi
public suspend fun <qUE : Any> _executeQuery_params2rowOrNull(compiledQuery: _Statement.Void2RowOrNull<qUE, IK>): InputRow._Scope<qUE, IK, OutputRow._Scope<qUE, IK, Unit>?>
public suspend fun <qUE : Any> _executeQuery_params2rowOrNull(compiledQuery: _Statement.Void2RowOrNull<qUE>): InputRow._Scope<qUE, OutputRow._Scope<qUE, Unit>?>
@Suppress("FunctionName")
@LowLevelApi
public suspend fun <qUE : Any> _executeQuery_params2table(compiledQuery: _Statement.Void2RowOrNull<qUE, IK>): InputRow._Scope<qUE, IK, OutputRow._Iterator<qUE, IK, Unit>>
public suspend fun <qUE : Any> _executeQuery_params2table(compiledQuery: _Statement.Void2RowOrNull<qUE>): InputRow._Scope<qUE, OutputRow._Iterator<qUE, Unit>>
@Suppress("FunctionName")
@LowLevelApi
public suspend fun <qUE : Any> _executeBatch_params2void(compiledQuery: _Statement.Void2Void<qUE, IK>): InputRow._Iterator<qUE, IK, Unit>
public suspend fun <qUE : Any> _executeBatch_params2void(compiledQuery: _Statement.Void2Void<qUE>): InputRow._Iterator<qUE, Unit>
public suspend fun rollback()

View File

@ -3,7 +3,7 @@ package ru.landgrafhomyak.db.skeleton1.api.statement
import kotlin.jvm.JvmName
import ru.landgrafhomyak.db.skeleton1.api.ReflectionApi
public interface InputParam<@Suppress("unused") RT, sUE : Any, IK : Any> {
public interface InputParam<@Suppress("unused") RT, sUE : Any> {
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getName")
@ -12,5 +12,5 @@ public interface InputParam<@Suppress("unused") RT, sUE : Any, IK : Any> {
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getStatement")
public val statement: _Statement<sUE, IK>
public val statement: _Statement<sUE>
}

View File

@ -3,7 +3,7 @@ package ru.landgrafhomyak.db.skeleton1.api.statement
import kotlin.jvm.JvmName
import ru.landgrafhomyak.db.skeleton1.api.ReflectionApi
public interface OutputColumn<@Suppress("unused") RT, sUE : Any, IK : Any> {
public interface OutputColumn<@Suppress("unused") RT, sUE : Any> {
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("name")
@ -12,5 +12,5 @@ public interface OutputColumn<@Suppress("unused") RT, sUE : Any, IK : Any> {
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getStatement")
public val statement: _Statement<sUE, IK>
public val statement: _Statement<sUE>
}

View File

@ -1,12 +1,12 @@
package ru.landgrafhomyak.db.skeleton1.api.statement
public interface QueriesCompiler<IK : Any> {
public fun <sUE : Any?> raw_void2void(constructor: RawStatement.Void2Void.ImplementationsProvider<sUE>): RawStatement.Void2Void<sUE, IK>
public fun <sUE : Any> raw_void2row(constructor: RawStatement.Void2Row.ImplementationsProvider<sUE>): RawStatement.Void2Row<sUE, IK>
public fun <sUE : Any> raw_void2rowOrNull(constructor: RawStatement.Void2RowOrNull.ImplementationsProvider<sUE>): RawStatement.Void2RowOrNull<sUE, IK>
public fun <sUE : Any> raw_void2table(constructor: RawStatement.Void2Table.ImplementationsProvider<sUE>): RawStatement.Void2Table<sUE, IK>
public fun <sUE : Any> raw_params2void(constructor: RawStatement.Params2Void.ImplementationsProvider<sUE>): RawStatement.Params2Void<sUE, IK>
public fun <sUE : Any> raw_params2row(constructor: RawStatement.Params2Row.ImplementationsProvider<sUE>): RawStatement.Params2Row<sUE, IK>
public fun <sUE : Any> raw_params2rowOrNull(constructor: RawStatement.Params2RowOrNull.ImplementationsProvider<sUE>): RawStatement.Params2RowOrNull<sUE, IK>
public fun <sUE : Any> raw_params2table(constructor: RawStatement.Params2Table.ImplementationsProvider<sUE>): RawStatement.Params2Table<sUE, IK>
public interface QueriesCompiler {
public fun <sUE : Any?> raw_void2void(constructor: RawStatement.Void2Void.ImplementationsProvider<sUE>): RawStatement.Void2Void<sUE>
public fun <sUE : Any> raw_void2row(constructor: RawStatement.Void2Row.ImplementationsProvider<sUE>): RawStatement.Void2Row<sUE>
public fun <sUE : Any> raw_void2rowOrNull(constructor: RawStatement.Void2RowOrNull.ImplementationsProvider<sUE>): RawStatement.Void2RowOrNull<sUE>
public fun <sUE : Any> raw_void2table(constructor: RawStatement.Void2Table.ImplementationsProvider<sUE>): RawStatement.Void2Table<sUE>
public fun <sUE : Any> raw_params2void(constructor: RawStatement.Params2Void.ImplementationsProvider<sUE>): RawStatement.Params2Void<sUE>
public fun <sUE : Any> raw_params2row(constructor: RawStatement.Params2Row.ImplementationsProvider<sUE>): RawStatement.Params2Row<sUE>
public fun <sUE : Any> raw_params2rowOrNull(constructor: RawStatement.Params2RowOrNull.ImplementationsProvider<sUE>): RawStatement.Params2RowOrNull<sUE>
public fun <sUE : Any> raw_params2table(constructor: RawStatement.Params2Table.ImplementationsProvider<sUE>): RawStatement.Params2Table<sUE>
}

View File

@ -2,10 +2,10 @@ package ru.landgrafhomyak.db.skeleton1.api.statement
import ru.landgrafhomyak.db.skeleton1.api.DriverMetainfo
public interface RawStatement<sUE : Any?, IK : Any> : _Statement<sUE, IK> {
public interface RawStatement<sUE : Any?> : _Statement<sUE> {
public override val uExt: sUE
public interface Void2Void<sUE : Any?, IK : Any> : RawStatement<sUE, IK>, _Statement.Void2Void<sUE, IK> {
public interface Void2Void<sUE : Any?> : RawStatement<sUE>, _Statement.Void2Void<sUE> {
override val uExt: sUE
public interface Constructor<@Suppress("unused") sUE : Any?>
@ -25,7 +25,7 @@ public interface RawStatement<sUE : Any?, IK : Any> : _Statement<sUE, IK> {
}
}
public interface Void2Row<sUE : Any, IK : Any> : RawStatement<sUE, IK>, _Statement.Void2Row<sUE, IK> {
public interface Void2Row<sUE : Any> : RawStatement<sUE>, _Statement.Void2Row<sUE> {
override val uExt: sUE
public interface Constructor<sUE : Any> {
@ -47,7 +47,7 @@ public interface RawStatement<sUE : Any?, IK : Any> : _Statement<sUE, IK> {
}
}
public interface Void2RowOrNull<sUE : Any, IK : Any> : RawStatement<sUE, IK>, _Statement.Void2RowOrNull<sUE, IK> {
public interface Void2RowOrNull<sUE : Any> : RawStatement<sUE>, _Statement.Void2RowOrNull<sUE> {
override val uExt: sUE
public interface Constructor<sUE : Any> {
@ -70,7 +70,7 @@ public interface RawStatement<sUE : Any?, IK : Any> : _Statement<sUE, IK> {
}
public interface Void2Table<sUE : Any, IK : Any> : RawStatement<sUE, IK>, _Statement.Void2Table<sUE, IK> {
public interface Void2Table<sUE : Any> : RawStatement<sUE>, _Statement.Void2Table<sUE> {
override val uExt: sUE
public interface Constructor<sUE : Any> {
@ -92,7 +92,7 @@ public interface RawStatement<sUE : Any?, IK : Any> : _Statement<sUE, IK> {
}
}
public interface Params2Void<sUE : Any, IK : Any> : RawStatement<sUE, IK>, _Statement.Params2Void<sUE, IK> {
public interface Params2Void<sUE : Any> : RawStatement<sUE>, _Statement.Params2Void<sUE> {
override val uExt: sUE
public interface Constructor<sUE : Any> {
@ -114,7 +114,7 @@ public interface RawStatement<sUE : Any?, IK : Any> : _Statement<sUE, IK> {
}
}
public interface Params2Row<sUE : Any, IK : Any> : RawStatement<sUE, IK>, _Statement.Params2Row<sUE, IK> {
public interface Params2Row<sUE : Any> : RawStatement<sUE>, _Statement.Params2Row<sUE> {
override val uExt: sUE
public interface Constructor<sUE : Any> {
@ -136,7 +136,7 @@ public interface RawStatement<sUE : Any?, IK : Any> : _Statement<sUE, IK> {
}
}
public interface Params2RowOrNull<sUE : Any, IK : Any> : RawStatement<sUE, IK>, _Statement.Params2RowOrNull<sUE, IK> {
public interface Params2RowOrNull<sUE : Any> : RawStatement<sUE>, _Statement.Params2RowOrNull<sUE> {
override val uExt: sUE
public interface Constructor<sUE : Any> {
@ -158,7 +158,7 @@ public interface RawStatement<sUE : Any?, IK : Any> : _Statement<sUE, IK> {
}
}
public interface Params2Table<sUE : Any, IK : Any> : RawStatement<sUE, IK>, _Statement.Params2Table<sUE, IK> {
public interface Params2Table<sUE : Any> : RawStatement<sUE>, _Statement.Params2Table<sUE> {
override val uExt: sUE
public interface Constructor<sUE : Any> {

View File

@ -2,14 +2,14 @@ package ru.landgrafhomyak.db.skeleton1.api.statement
import ru.landgrafhomyak.db.skeleton1.api.DatabaseType
public interface StatementIODeclarationScope<@Suppress("unused") sUE : Any, @Suppress("unused") IK : Any> {
public interface Input<sUE : Any, IK : Any> : StatementIODeclarationScope<sUE, IK> {
public fun <RT> inputParam(type: DatabaseType.ImplementationsProvider<RT>): InputParam<RT, sUE, IK>
public interface StatementIODeclarationScope<@Suppress("unused") sUE : Any> {
public interface Input<sUE : Any> : StatementIODeclarationScope<sUE> {
public fun <RT> inputParam(type: DatabaseType.ImplementationsProvider<RT>): InputParam<RT, sUE>
}
public interface Output<sUE : Any, IK : Any> : StatementIODeclarationScope<sUE, IK> {
public fun <RT> outputColumn(type: DatabaseType.ImplementationsProvider<RT>): OutputColumn<RT, sUE, IK>
public interface Output<sUE : Any> : StatementIODeclarationScope<sUE> {
public fun <RT> outputColumn(type: DatabaseType.ImplementationsProvider<RT>): OutputColumn<RT, sUE>
}
public interface InputOutput<sUE : Any, IK : Any> : StatementIODeclarationScope<sUE, IK>, Input<sUE, IK>, Output<sUE, IK>
public interface InputOutput<sUE : Any> : StatementIODeclarationScope<sUE>, Input<sUE>, Output<sUE>
}

View File

@ -4,17 +4,17 @@ import kotlin.jvm.JvmName
@Suppress("ClassName")
public interface _Statement<sUE : Any?, IK: Any> {
public interface _Statement<sUE : Any?> {
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("uExt")
public val uExt: sUE
public interface Void2Void<sUE : Any?, IK: Any> : _Statement<sUE, IK>
public interface Void2Row<sUE : Any, IK: Any> : _Statement<sUE, IK>
public interface Void2RowOrNull<sUE : Any, IK: Any> : _Statement<sUE, IK>
public interface Void2Table<sUE : Any, IK: Any> : _Statement<sUE, IK>
public interface Params2Void<sUE : Any, IK: Any> : _Statement<sUE, IK>
public interface Params2Row<sUE : Any, IK: Any> : _Statement<sUE, IK>
public interface Params2RowOrNull<sUE : Any, IK: Any> : _Statement<sUE, IK>
public interface Params2Table<sUE : Any, IK: Any> : _Statement<sUE, IK>
public interface Void2Void<sUE : Any?> : _Statement<sUE>
public interface Void2Row<sUE : Any> : _Statement<sUE>
public interface Void2RowOrNull<sUE : Any> : _Statement<sUE>
public interface Void2Table<sUE : Any> : _Statement<sUE>
public interface Params2Void<sUE : Any> : _Statement<sUE>
public interface Params2Row<sUE : Any> : _Statement<sUE>
public interface Params2RowOrNull<sUE : Any> : _Statement<sUE>
public interface Params2Table<sUE : Any> : _Statement<sUE>
}

View File

@ -4,7 +4,7 @@ import kotlin.jvm.JvmName
import ru.landgrafhomyak.db.skeleton1.api.ReflectionApi
import ru.landgrafhomyak.db.skeleton1.api.DatabaseType
public interface Column<RT, tUE : Any, IK : Any> {
public interface Column<RT, tUE : Any> {
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("name")
@ -17,7 +17,7 @@ public interface Column<RT, tUE : Any, IK : Any> {
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getTable")
public val table: Table<tUE, *, IK>
public val table: Table<tUE, *>
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")

View File

@ -3,9 +3,8 @@ package ru.landgrafhomyak.db.skeleton1.api.table
import kotlin.jvm.JvmName
import ru.landgrafhomyak.db.skeleton1.api.ReflectionApi
import ru.landgrafhomyak.db.skeleton1.api.module.Module
import ru.landgrafhomyak.db.skeleton1.api.module.Namespace
public interface Table<UE : Any, mUE : Any, IK : Any> {
public interface Table<UE : Any, mUE : Any> {
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("uExt")
public val uExt: UE
@ -23,7 +22,7 @@ public interface Table<UE : Any, mUE : Any, IK : Any> {
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getModule")
public val module: Module<mUE, IK>
public val module: Module<mUE>
public enum class LifeTime {
DATABASE_SCOPE,
@ -40,28 +39,28 @@ public interface Table<UE : Any, mUE : Any, IK : Any> {
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getMemberColumns")
public val memberColumns: Collection<Column<*, UE, IK>>
public val memberColumns: Collection<Column<*, UE>>
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getMemberObjects")
public val memberObjects: Collection<TableScopedObject<*, UE, IK>>
public val memberObjects: Collection<TableScopedObject<*, UE>>
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getMemberColumnsWhileUpgrade")
public val memberColumnsWhileUpgrade: Collection<Column<*, UE, IK>>
public val memberColumnsWhileUpgrade: Collection<Column<*, UE>>
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getMemberObjectsWhileUpgrade")
public val memberObjectsWhileUpgrade: Collection<TableScopedObject<*, UE, IK>>
public val memberObjectsWhileUpgrade: Collection<TableScopedObject<*, UE>>
public interface Constructor<tUE : Any, RK : Any> {
public fun createTable(context: TableConstructorScope<tUE, RK>): tUE
public interface Constructor<tUE : Any> {
public fun createTable(context: TableConstructorScope<tUE>): tUE
}
public interface Upgrade<tnUE : Any, toUE : Any, RK : Any> {
public fun upgradeTable(oldTable: toUE, context: TableUpgradeScope<tnUE, toUE, RK>): tnUE
public interface Upgrade<tnUE : Any, toUE : Any> {
public fun upgradeTable(oldTable: toUE, context: TableUpgradeScope<tnUE, toUE>): tnUE
}
}

View File

@ -8,38 +8,38 @@ import ru.landgrafhomyak.db.skeleton1.api.statement._Statement
import ru.landgrafhomyak.db.skeleton1.api.runtime.InputRow
public interface TableConstructorScope<tUE : Any, IK : Any> {
public fun <RT> column(name: String, type: DatabaseType.ImplementationsProvider<RT>): Column<RT, tUE, IK>
public interface TableConstructorScope<tUE : Any> {
public fun <RT> column(name: String, type: DatabaseType.ImplementationsProvider<RT>): Column<RT, tUE>
public fun <RT> column(
name: String, type: DatabaseType.ImplementationsProvider<RT>,
alterCreateColumn: _Statement.Void2Void<*, IK>
): Column<RT, tUE, IK>
alterCreateColumn: _Statement.Void2Void<*>
): Column<RT, tUE>
public fun <RT> column(
name: String, type: DatabaseType.ImplementationsProvider<RT>,
alterCreateColumn: RawStatement.Void2Void.ImplementationsProvider<*>
): Column<RT, tUE, IK>
): Column<RT, tUE>
@LowLevelApi
public fun <RT, sUE : Any> _column(
name: String, type: DatabaseType.ImplementationsProvider<RT>,
alterCreateColumn: _Statement.Void2Void<sUE, IK>
): InputRow._Scope<sUE, IK, Column<RT, tUE, IK>>
alterCreateColumn: _Statement.Void2Void<sUE>
): InputRow._Scope<sUE, Column<RT, tUE>>
@LowLevelApi
public fun <RT, sUE : Any> _column(
name: String, type: DatabaseType.ImplementationsProvider<RT>,
alterCreateColumn: RawStatement.Params2Void.ImplementationsProvider<sUE>
): InputRow._Scope<sUE, IK, Column<RT, tUE, IK>>
): InputRow._Scope<sUE, Column<RT, tUE>>
public fun <oUE : Any?> tableScopedObject(name: String, metadata: ObjectOperations.ImplementationsProvider<oUE>): TableScopedObject<oUE, tUE, IK>
public fun <oUE : Any?> tableScopedObject(name: String, metadata: ObjectOperations.ImplementationsProvider<oUE>): TableScopedObject<oUE, tUE>
public fun addAlterStatement(stmt: _Statement.Void2Void<*, IK>)
public fun addAlterStatement(stmt: _Statement.Void2Void<*>)
public fun addAlterStatement(stmt: RawStatement.Void2Void.ImplementationsProvider<*>)
@LowLevelApi
public fun <sUE : Any> _addAlterStatement(stmt: _Statement.Void2Void<sUE, IK>): InputRow._Scope<sUE, IK, Unit>
public fun <sUE : Any> _addAlterStatement(stmt: _Statement.Void2Void<sUE>): InputRow._Scope<sUE, Unit>
@LowLevelApi
public fun <sUE : Any> _addAlterStatement(stmt: RawStatement.Params2Void.ImplementationsProvider<sUE>): InputRow._Scope<sUE, IK, Unit>
public fun <sUE : Any> _addAlterStatement(stmt: RawStatement.Params2Void.ImplementationsProvider<sUE>): InputRow._Scope<sUE, Unit>
}

View File

@ -4,14 +4,14 @@ import kotlin.jvm.JvmName
import ru.landgrafhomyak.db.skeleton1.api.ReflectionApi
import ru.landgrafhomyak.db.skeleton1.api.ObjectOperations
public interface TableScopedObject<oUE : Any?, tUE : Any, IK : Any> {
public interface TableScopedObject<oUE : Any?, tUE : Any> {
public val uExt: oUE
@ReflectionApi
public val name: String
@ReflectionApi
public val table: Table<tUE, *, IK>
public val table: Table<tUE, *>
@ReflectionApi
public val meta: ObjectOperations.ImplementationsProvider<oUE>

View File

@ -5,23 +5,23 @@ import ru.landgrafhomyak.db.skeleton1.api.statement.RawStatement
import ru.landgrafhomyak.db.skeleton1.api.statement._Statement
import ru.landgrafhomyak.db.skeleton1.api.runtime.InputRow
public interface TableUpgradeScope<tnUE : Any, toUE : Any, IK : Any> : TableConstructorScope<tnUE, IK> {
public fun <RT> keepColumn(c: Column<RT, toUE, IK>): Column<RT, tnUE, IK>
public fun <RT> renameColumn(c: Column<RT, toUE, IK>, newName: String): Column<RT, tnUE, IK>
public fun deleteColumn(c: Column<*, toUE, IK>)
public fun <RT> deleteColumnAfterUpgrade(c: Column<RT, toUE, IK>): Column<RT, tnUE, IK>
public interface TableUpgradeScope<tnUE : Any, toUE : Any> : TableConstructorScope<tnUE> {
public fun <RT> keepColumn(c: Column<RT, toUE>): Column<RT, tnUE>
public fun <RT> renameColumn(c: Column<RT, toUE>, newName: String): Column<RT, tnUE>
public fun deleteColumn(c: Column<*, toUE>)
public fun <RT> deleteColumnAfterUpgrade(c: Column<RT, toUE>): Column<RT, tnUE>
public fun <oUE : Any?> keepTableScopedObject(obj: TableScopedObject<oUE, toUE, IK>): TableScopedObject<oUE, tnUE, IK>
public fun <oUE : Any?> renameTableScopedObject(obj: TableScopedObject<oUE, toUE, IK>, newName: String): TableScopedObject<oUE, tnUE, IK>
public fun <oUE : Any?> deleteTableScopedObject(obj: TableScopedObject<oUE, toUE, IK>)
public fun <oUE : Any?> deleteTableScopedObjectAfterUpgrade(obj: TableScopedObject<oUE, toUE, IK>): TableScopedObject<oUE, tnUE, IK>
public fun <oUE : Any?> keepTableScopedObject(obj: TableScopedObject<oUE, toUE>): TableScopedObject<oUE, tnUE>
public fun <oUE : Any?> renameTableScopedObject(obj: TableScopedObject<oUE, toUE>, newName: String): TableScopedObject<oUE, tnUE>
public fun <oUE : Any?> deleteTableScopedObject(obj: TableScopedObject<oUE, toUE>)
public fun <oUE : Any?> deleteTableScopedObjectAfterUpgrade(obj: TableScopedObject<oUE, toUE>): TableScopedObject<oUE, tnUE>
public fun addAlterStatementAfterUpgrade(stmt: _Statement.Void2Void<*, IK>)
public fun addAlterStatementAfterUpgrade(stmt: _Statement.Void2Void<*>)
public fun addAlterStatementAfterUpgrade(stmt: RawStatement.Void2Void.ImplementationsProvider<*>)
@LowLevelApi
public fun <sUE : Any> _addAlterStatementAfterUpgrade(stmt: _Statement.Params2Void<sUE, IK>): InputRow._Scope<sUE, IK, Unit>
public fun <sUE : Any> _addAlterStatementAfterUpgrade(stmt: _Statement.Params2Void<sUE>): InputRow._Scope<sUE, Unit>
@LowLevelApi
public fun <sUE : Any> _addAlterStatementAfterUpgrade(stmt: RawStatement.Params2Void.ImplementationsProvider<sUE>): InputRow._Scope<sUE, IK, Unit>
public fun <sUE : Any> _addAlterStatementAfterUpgrade(stmt: RawStatement.Params2Void.ImplementationsProvider<sUE>): InputRow._Scope<sUE, Unit>
}