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 @ReflectionApi
@OptIn(ExperimentalCoroutinesApi::class) @OptIn(ExperimentalCoroutinesApi::class)
public class UninitializedParameterException : RuntimeException, CopyableThrowable<UninitializedParameterException> { public class UninitializedParameterException : RuntimeException, CopyableThrowable<UninitializedParameterException> {
public val statement: _Statement<*, *> public val statement: _Statement<*>
public val params: Collection<InputParam<*, *, *>> 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.statement = statement
this.params = params 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.statement = statement
this.params = params 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.statement = statement
this.params = params 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.statement = statement
this.params = params this.params = params
} }
public constructor( public constructor(
statement: _Statement<*, *>, statement: _Statement<*>,
params: Collection<InputParam<*, *, *>>, params: Collection<InputParam<*, *>>,
message: String?, message: String?,
cause: Throwable?, cause: Throwable?,
@Suppress("unused", "LocalVariableName") _marker: Unit @Suppress("unused", "LocalVariableName") _marker: Unit
@ -57,7 +57,7 @@ public class UninitializedParameterException : RuntimeException, CopyableThrowab
public companion object { public companion object {
@JvmStatic @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()}" "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 @ReflectionApi
@OptIn(ExperimentalCoroutinesApi::class) @OptIn(ExperimentalCoroutinesApi::class)
public class NamespaceAlreadyBusyException : SchemaDefinitionException, CopyableThrowable<NamespaceAlreadyBusyException> { 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 this.namespace = namespace
} }
public constructor(namespace: Namespace<*, *>, customMessage: String) : super(customMessage) { public constructor(namespace: Namespace<*>, customMessage: String) : super(customMessage) {
this.namespace = namespace 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 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 this.namespace = namespace
} }
public constructor( public constructor(
namespace: Namespace<*, *>, namespace: Namespace<*>,
message: String?, cause: Throwable?, message: String?, cause: Throwable?,
@Suppress("unused", "LocalVariableName") _marker: Unit @Suppress("unused", "LocalVariableName") _marker: Unit
) : super(message, cause, _marker) { ) : super(message, cause, _marker) {
@ -48,7 +48,7 @@ public class NamespaceAlreadyBusyException : SchemaDefinitionException, Copyable
public companion object { public companion object {
@JvmStatic @JvmStatic
public fun formatMessage( 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" ): 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 @ReflectionApi
@OptIn(ExperimentalCoroutinesApi::class) @OptIn(ExperimentalCoroutinesApi::class)
public class TableWithoutColumnsException : SchemaDefinitionException, CopyableThrowable<TableWithoutColumnsException> { 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 this.table = table
} }
public constructor(table: Table<*, *, *>, customMessage: String) : super(customMessage) { public constructor(table: Table<*, *>, customMessage: String) : super(customMessage) {
this.table = table 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 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 this.table = table
} }
public constructor( public constructor(
table: Table<*, *, *>, table: Table<*, *>,
message: String?, cause: Throwable?, message: String?, cause: Throwable?,
@Suppress("unused", "LocalVariableName") _marker: Unit @Suppress("unused", "LocalVariableName") _marker: Unit
) : super(message, cause, _marker) { ) : super(message, cause, _marker) {
@ -48,7 +48,7 @@ public class TableWithoutColumnsException : SchemaDefinitionException, CopyableT
public companion object { public companion object {
@JvmStatic @JvmStatic
public fun formatMessage( public fun formatMessage(
table: Table<*, *, *>, table: Table<*, *>,
): String = "Table $table doesn't have columns" ): String = "Table $table doesn't have columns"
} }
} }

View File

@ -11,32 +11,32 @@ import ru.landgrafhomyak.db.skeleton1.api.module.Module
@OptIn(ExperimentalCoroutinesApi::class) @OptIn(ExperimentalCoroutinesApi::class)
public class VersionDuplicationException : SchemaDefinitionException, CopyableThrowable<VersionDuplicationException> { public class VersionDuplicationException : SchemaDefinitionException, CopyableThrowable<VersionDuplicationException> {
public val template: Module.Template<*> public val template: Module.Template<*>
public val versionOwner: Module<*, *> public val versionOwner: Module<*>
public val newModule: Module<*, *> public val newModule: Module<*>
public val version: String 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.template = template
this.versionOwner = versionOwner this.versionOwner = versionOwner
this.newModule = newModule this.newModule = newModule
this.version = version 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.template = template
this.versionOwner = versionOwner this.versionOwner = versionOwner
this.newModule = newModule this.newModule = newModule
this.version = version 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.template = template
this.versionOwner = versionOwner this.versionOwner = versionOwner
this.newModule = newModule this.newModule = newModule
this.version = version 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.template = template
this.versionOwner = versionOwner this.versionOwner = versionOwner
this.newModule = newModule this.newModule = newModule
@ -44,7 +44,7 @@ public class VersionDuplicationException : SchemaDefinitionException, CopyableTh
} }
public constructor( public constructor(
template: Module.Template<*>, versionOwner: Module<*, *>, newModule: Module<*, *>, version: String, template: Module.Template<*>, versionOwner: Module<*>, newModule: Module<*>, version: String,
message: String?, cause: Throwable?, message: String?, cause: Throwable?,
@Suppress("unused", "LocalVariableName") _marker: Unit @Suppress("unused", "LocalVariableName") _marker: Unit
) : super(message, cause, _marker) { ) : super(message, cause, _marker) {
@ -69,7 +69,7 @@ public class VersionDuplicationException : SchemaDefinitionException, CopyableTh
public companion object { public companion object {
@JvmStatic @JvmStatic
public fun formatMessage( 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)" ): 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 import ru.landgrafhomyak.db.skeleton1.api.table.Table
public interface Module<mUE : Any, IK : Any> { public interface Module<mUE : Any> {
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("uExt") @get:JvmName("uExt")
public val uExt: mUE public val uExt: mUE
@ -21,7 +21,7 @@ public interface Module<mUE : Any, IK : Any> {
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getParentModule") @get:JvmName("getParentModule")
public val parentModule: Module<*, IK>? public val parentModule: Module<*>?
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@ -31,63 +31,63 @@ public interface Module<mUE : Any, IK : Any> {
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getMemberTables") @get:JvmName("getMemberTables")
public val memberTables: Collection<Table<*, mUE, IK>> public val memberTables: Collection<Table<*, mUE>>
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getMemberObjects") @get:JvmName("getMemberObjects")
public val memberObjects: Collection<ModuleScopedObject<*, mUE, IK>> public val memberObjects: Collection<ModuleScopedObject<*, mUE>>
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getMemberSubmodules") @get:JvmName("getMemberSubmodules")
public val memberSubmodules: Collection<Module<*, IK>> public val memberSubmodules: Collection<Module<*>>
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getMemberTablesWhileUpgrade") @get:JvmName("getMemberTablesWhileUpgrade")
public val memberTablesWhileUpgrade: Collection<Table<*, mUE, IK>> public val memberTablesWhileUpgrade: Collection<Table<*, mUE>>
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getMemberObjectsWhileUpgrade") @get:JvmName("getMemberObjectsWhileUpgrade")
public val memberObjectsWhileUpgrade: Collection<ModuleScopedObject<*, mUE, IK>> public val memberObjectsWhileUpgrade: Collection<ModuleScopedObject<*, mUE>>
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getMemberSubmodulesWhileUpgrade") @get:JvmName("getMemberSubmodulesWhileUpgrade")
public val memberSubmodulesWhileUpgrade: Collection<Module<*, IK>> public val memberSubmodulesWhileUpgrade: Collection<Module<*>>
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("willBeDeletedAfterUpgrade") @get:JvmName("willBeDeletedAfterUpgrade")
public val willBeDeletedAfterUpgrade: Boolean public val willBeDeletedAfterUpgrade: Boolean
public interface Constructor<mUE : Any, IK : Any> { public interface Constructor<mUE : Any> {
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("versionKey") @get:JvmName("versionKey")
public val versionKey: String 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") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("versionKey") @get:JvmName("versionKey")
public val versionKey: String 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> { public interface Template<@Suppress("unused") mUE : Any> {
@LowLevelApi @LowLevelApi
public fun <IK : Any> getConstructor(): Constructor<*, IK> public fun getConstructor(): Constructor<*>
@LowLevelApi @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 import ru.landgrafhomyak.db.skeleton1.api.runtime.InputRow
public interface ModuleConstructorScope<mUE : Any, IK : Any> { public interface ModuleConstructorScope<mUE : Any> {
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("rootNs") @get:JvmName("rootNs")
public val rootNs: Namespace<mUE, IK> public val rootNs: Namespace<mUE>
public fun <tUE : Any> createTable( public fun <tUE : Any> createTable(
lifeTime: Table.LifeTime = Table.LifeTime.DATABASE_SCOPE, lifeTime: Table.LifeTime = Table.LifeTime.DATABASE_SCOPE,
namespace: Namespace<mUE, IK> = this.rootNs, namespace: Namespace<mUE> = this.rootNs,
name: String, initializer: Table.Constructor<tUE, IK> name: String, initializer: Table.Constructor<tUE>
): Table<tUE, mUE, IK> ): Table<tUE, mUE>
public fun <oUE : Any?> moduleScopedObject( public fun <oUE : Any?> moduleScopedObject(
namespace: Namespace<mUE, IK> = this.rootNs, namespace: Namespace<mUE> = this.rootNs,
name: String, metadata: ObjectOperations.ImplementationsProvider<oUE> 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<*>) public fun addStatement(stmt: RawStatement.Void2Void.ImplementationsProvider<*>)
@LowLevelApi @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 @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.ReflectionApi
import ru.landgrafhomyak.db.skeleton1.api.ObjectOperations 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 public val uExt: oUE
@ReflectionApi @ReflectionApi
public val name: String public val name: String
@ReflectionApi @ReflectionApi
public val module: Module<mUE, IK> public val module: Module<mUE>
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @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 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 ------------------------------------------------------------------- // 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( public fun <tUE : Any> keepAndRenameTable(
table: Table<tUE, omUE, IK>, table: Table<tUE, omUE>,
newNamespace: Namespace<nmUE, IK>? = null, newName: String newNamespace: Namespace<nmUE>? = null, newName: String
): Table<tUE, nmUE, IK> ): Table<tUE, nmUE>
public fun <ntUE : Any, otUE : Any> upgradeTable( public fun <ntUE : Any, otUE : Any> upgradeTable(
oldTable: Table<otUE, omUE, IK>, oldTable: Table<otUE, omUE>,
upgrade: Table.Upgrade<ntUE, otUE, IK> upgrade: Table.Upgrade<ntUE, otUE>
): Table<ntUE, nmUE, IK> ): Table<ntUE, nmUE>
public fun <ntUE : Any, otUE : Any> upgradeAndRenameTable( public fun <ntUE : Any, otUE : Any> upgradeAndRenameTable(
table: Table<otUE, omUE, IK>, table: Table<otUE, omUE>,
newNamespace: Namespace<nmUE, IK>? = null, newName: String, newNamespace: Namespace<nmUE>? = null, newName: String,
upgrade: Table.Upgrade<ntUE, otUE, IK> upgrade: Table.Upgrade<ntUE, otUE>
): Table<ntUE, nmUE, IK> ): Table<ntUE, nmUE>
public fun deleteTable(table: Table<*, omUE, IK>) public fun deleteTable(table: Table<*, omUE>)
public fun <tUE : Any> deleteTableAfterModuleUpgrade(table: Table<tUE, omUE, IK>): Table<tUE, nmUE, IK> 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( public fun <tUE : Any> importTable(
table: Table<tUE, *, IK>, table: Table<tUE, *>,
namespace: Namespace<nmUE, IK> = this.rootNs, name: String namespace: Namespace<nmUE> = this.rootNs, name: String
): Table<tUE, nmUE, IK> ): Table<tUE, nmUE>
public fun <ntUE : Any, otUE : Any> importAndUpgradeTable( public fun <ntUE : Any, otUE : Any> importAndUpgradeTable(
table: Table<otUE, *, IK>, table: Table<otUE, *>,
namespace: Namespace<nmUE, IK> = this.rootNs, name: String, namespace: Namespace<nmUE> = this.rootNs, name: String,
upgrade: Table.Upgrade<ntUE, otUE, IK> upgrade: Table.Upgrade<ntUE, otUE>
): Table<ntUE, nmUE, IK> ): Table<ntUE, nmUE>
// Object ------------------------------------------------------------------ // 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( public fun <oUE : Any?> renameModuleScopedObject(
obj: ModuleScopedObject<oUE, omUE, IK>, obj: ModuleScopedObject<oUE, omUE>,
newNamespace: Namespace<nmUE, IK>? = null, newName: String newNamespace: Namespace<nmUE>? = null, newName: String
): ModuleScopedObject<oUE, nmUE, IK> ): ModuleScopedObject<oUE, nmUE>
public fun <oUE : Any?> deleteModuleScopedObject(obj: ModuleScopedObject<oUE, omUE, IK>) public fun <oUE : Any?> deleteModuleScopedObject(obj: ModuleScopedObject<oUE, omUE>)
public fun <oUE : Any?> deleteModuleScopedObjectAfterModuleUpgrade(obj: ModuleScopedObject<oUE, omUE, IK>): ModuleScopedObject<oUE, nmUE, IK> 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( public fun <oUE : Any> importModuleScopedObject(
obj: ModuleScopedObject<oUE, *, IK>, obj: ModuleScopedObject<oUE, *>,
namespace: Namespace<nmUE, IK> = this.rootNs, name: String namespace: Namespace<nmUE> = this.rootNs, name: String
): ModuleScopedObject<oUE, nmUE, IK> ): ModuleScopedObject<oUE, nmUE>
// Module ------------------------------------------------------------------ // Module ------------------------------------------------------------------
public fun <smUE : Any> keepModule(module: Module<smUE, IK>): Module<smUE, IK> public fun <smUE : Any> keepModule(module: Module<smUE>): Module<smUE>
public fun <smUE : Any> keepAndMoveModule(oldModule: Module<smUE, IK>, newNs: Namespace<nmUE, IK>): Module<smUE, IK> 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( public fun <smUE : Any> upgradeAndMoveModule(
oldModule: Module<*, IK>, oldModule: Module<*>,
newNamespace: Namespace<nmUE, IK>, newNamespace: Namespace<nmUE>,
template: Module.Template<smUE> template: Module.Template<smUE>
): Module<smUE, IK> ): Module<smUE>
public fun deleteModule(oldModule: Module<*, IK>) public fun deleteModule(oldModule: Module<*>)
public fun <smUE : Any> deleteModuleAfterUpgrade(oldModule: Module<smUE, IK>): Module<smUE, IK> 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( public fun <smUE : Any> importModule(
module: Module<smUE, IK>, module: Module<smUE>,
namespace: Namespace<nmUE, IK>, namespace: Namespace<nmUE>,
): Module<smUE, IK> ): Module<smUE>
public fun <nsmUE : Any, osmUE : Any> importAndUpgradeModule( public fun <nsmUE : Any, osmUE : Any> importAndUpgradeModule(
module: Module<osmUE, IK>, module: Module<osmUE>,
namespace: Namespace<nmUE, IK>, namespace: Namespace<nmUE>,
upgrade: Module.Upgrade<nsmUE, osmUE, IK> upgrade: Module.Upgrade<nsmUE, osmUE>
): Module<nsmUE, IK> ): Module<nsmUE>
// Statements -------------------------------------------------------------- // Statements --------------------------------------------------------------
public fun addStatementAfterUpgrade(stmt: _Statement.Void2Void<*, IK>) public fun addStatementAfterUpgrade(stmt: _Statement.Void2Void<*>)
public fun addStatementAfterUpgrade(stmt: RawStatement.Void2Void.ImplementationsProvider<*>) public fun addStatementAfterUpgrade(stmt: RawStatement.Void2Void.ImplementationsProvider<*>)
@LowLevelApi @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 @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 kotlin.jvm.JvmName
import ru.landgrafhomyak.db.skeleton1.api.ReflectionApi import ru.landgrafhomyak.db.skeleton1.api.ReflectionApi
public interface Namespace<mUE : Any, IK : Any> { public interface Namespace<mUE : Any> {
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getName") @get:JvmName("getName")
@ -12,5 +12,5 @@ public interface Namespace<mUE : Any, IK : Any> {
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getPath") @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 import ru.landgrafhomyak.db.skeleton1.api.LowLevelApi
public interface Executor<IK : Any> { public interface Executor {
@Suppress("FunctionName") @Suppress("FunctionName")
@LowLevelApi @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.LowLevelApi
import ru.landgrafhomyak.db.skeleton1.api.statement.InputParam import ru.landgrafhomyak.db.skeleton1.api.statement.InputParam
public interface InputRow<qUE : Any, IK : Any> { public interface InputRow<qUE : Any> {
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("uExt") @get:JvmName("uExt")
public val uExt: qUE 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<Byte, qUE>, 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<UByte, qUE>, 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<Short, qUE>, 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<UShort, qUE>, 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<Int, qUE>, 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<UInt, qUE>, 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<Long, qUE>, 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<ULong, qUE>, 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<Char, qUE>, 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<Boolean, qUE>, value: Boolean): Unit = this.set<Boolean>(c, value)
@Suppress("ClassName") @Suppress("ClassName")
@LowLevelApi @LowLevelApi
public interface _Scope<qUE : Any, RK : Any, out Next> : InputRow<qUE, RK> { public interface _Scope<qUE : Any, out Next> : InputRow<qUE> {
@Suppress("FunctionName") @Suppress("FunctionName")
@LowLevelApi @LowLevelApi
public suspend fun _finish(): Next public suspend fun _finish(): Next
@ -36,7 +36,7 @@ public interface InputRow<qUE : Any, IK : Any> {
@Suppress("ClassName") @Suppress("ClassName")
@LowLevelApi @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") @Suppress("FunctionName")
@LowLevelApi @LowLevelApi
public suspend fun _next(): Boolean 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.LowLevelApi
import ru.landgrafhomyak.db.skeleton1.api.statement.OutputColumn import ru.landgrafhomyak.db.skeleton1.api.statement.OutputColumn
public interface OutputRow<qUE : Any, IK : Any> { public interface OutputRow<qUE : Any> {
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("uExt") @get:JvmName("uExt")
public val uExt: qUE 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<Byte, qUE>): 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<UByte, qUE>): 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<Short, qUE>): 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<UShort, qUE>): 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<Int, qUE>): 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<UInt, qUE>): 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<Long, qUE>): 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<ULong, qUE>): 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<Char, qUE>): 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<Boolean, qUE>): Boolean = this.get<Boolean>(c)
@Suppress("ClassName") @Suppress("ClassName")
@LowLevelApi @LowLevelApi
public interface _Scope<qUE : Any, RK : Any, out Next> : OutputRow<qUE, RK> { public interface _Scope<qUE : Any,out Next> : OutputRow<qUE> {
@Suppress("FunctionName") @Suppress("FunctionName")
@LowLevelApi @LowLevelApi
public suspend fun _finish(): Next public suspend fun _finish(): Next
@ -36,7 +36,7 @@ public interface OutputRow<qUE : Any, IK : Any> {
@Suppress("ClassName") @Suppress("ClassName")
@LowLevelApi @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") @Suppress("FunctionName")
@LowLevelApi @LowLevelApi
public suspend fun _next(): Boolean 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.LowLevelApi
import ru.landgrafhomyak.db.skeleton1.api.statement._Statement import ru.landgrafhomyak.db.skeleton1.api.statement._Statement
public interface Transaction<IK : Any> { public interface Transaction {
public suspend fun <qUE : Any?> executeQuery_void2void(compiledQuery: _Statement.Void2Void<qUE, IK>) public suspend fun <qUE : Any?> executeQuery_void2void(compiledQuery: _Statement.Void2Void<qUE>)
@Suppress("FunctionName") @Suppress("FunctionName")
@LowLevelApi @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") @Suppress("FunctionName")
@LowLevelApi @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") @Suppress("FunctionName")
@LowLevelApi @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") @Suppress("FunctionName")
@LowLevelApi @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") @Suppress("FunctionName")
@LowLevelApi @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") @Suppress("FunctionName")
@LowLevelApi @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") @Suppress("FunctionName")
@LowLevelApi @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") @Suppress("FunctionName")
@LowLevelApi @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() public suspend fun rollback()

View File

@ -3,7 +3,7 @@ package ru.landgrafhomyak.db.skeleton1.api.statement
import kotlin.jvm.JvmName import kotlin.jvm.JvmName
import ru.landgrafhomyak.db.skeleton1.api.ReflectionApi 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 @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getName") @get:JvmName("getName")
@ -12,5 +12,5 @@ public interface InputParam<@Suppress("unused") RT, sUE : Any, IK : Any> {
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getStatement") @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 kotlin.jvm.JvmName
import ru.landgrafhomyak.db.skeleton1.api.ReflectionApi 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 @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("name") @get:JvmName("name")
@ -12,5 +12,5 @@ public interface OutputColumn<@Suppress("unused") RT, sUE : Any, IK : Any> {
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getStatement") @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 package ru.landgrafhomyak.db.skeleton1.api.statement
public interface QueriesCompiler<IK : Any> { public interface QueriesCompiler {
public fun <sUE : Any?> raw_void2void(constructor: RawStatement.Void2Void.ImplementationsProvider<sUE>): RawStatement.Void2Void<sUE, IK> 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, IK> 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, IK> 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, IK> 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, IK> 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, IK> 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, IK> 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, IK> 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 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 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 override val uExt: sUE
public interface Constructor<@Suppress("unused") sUE : Any?> 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 override val uExt: sUE
public interface Constructor<sUE : Any> { 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 override val uExt: sUE
public interface Constructor<sUE : Any> { 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 override val uExt: sUE
public interface Constructor<sUE : Any> { 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 override val uExt: sUE
public interface Constructor<sUE : Any> { 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 override val uExt: sUE
public interface Constructor<sUE : Any> { 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 override val uExt: sUE
public interface Constructor<sUE : Any> { 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 override val uExt: sUE
public interface Constructor<sUE : Any> { 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 import ru.landgrafhomyak.db.skeleton1.api.DatabaseType
public interface StatementIODeclarationScope<@Suppress("unused") sUE : Any, @Suppress("unused") IK : Any> { public interface StatementIODeclarationScope<@Suppress("unused") sUE : Any> {
public interface Input<sUE : Any, IK : Any> : StatementIODeclarationScope<sUE, IK> { public interface Input<sUE : Any> : StatementIODeclarationScope<sUE> {
public fun <RT> inputParam(type: DatabaseType.ImplementationsProvider<RT>): InputParam<RT, sUE, IK> public fun <RT> inputParam(type: DatabaseType.ImplementationsProvider<RT>): InputParam<RT, sUE>
} }
public interface Output<sUE : Any, IK : Any> : StatementIODeclarationScope<sUE, IK> { public interface Output<sUE : Any> : StatementIODeclarationScope<sUE> {
public fun <RT> outputColumn(type: DatabaseType.ImplementationsProvider<RT>): OutputColumn<RT, sUE, IK> 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") @Suppress("ClassName")
public interface _Statement<sUE : Any?, IK: Any> { public interface _Statement<sUE : Any?> {
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("uExt") @get:JvmName("uExt")
public val uExt: sUE public val uExt: sUE
public interface Void2Void<sUE : Any?, IK: Any> : _Statement<sUE, IK> public interface Void2Void<sUE : Any?> : _Statement<sUE>
public interface Void2Row<sUE : Any, IK: Any> : _Statement<sUE, IK> public interface Void2Row<sUE : Any> : _Statement<sUE>
public interface Void2RowOrNull<sUE : Any, IK: Any> : _Statement<sUE, IK> public interface Void2RowOrNull<sUE : Any> : _Statement<sUE>
public interface Void2Table<sUE : Any, IK: Any> : _Statement<sUE, IK> public interface Void2Table<sUE : Any> : _Statement<sUE>
public interface Params2Void<sUE : Any, IK: Any> : _Statement<sUE, IK> public interface Params2Void<sUE : Any> : _Statement<sUE>
public interface Params2Row<sUE : Any, IK: Any> : _Statement<sUE, IK> public interface Params2Row<sUE : Any> : _Statement<sUE>
public interface Params2RowOrNull<sUE : Any, IK: Any> : _Statement<sUE, IK> public interface Params2RowOrNull<sUE : Any> : _Statement<sUE>
public interface Params2Table<sUE : Any, IK: Any> : _Statement<sUE, IK> 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.ReflectionApi
import ru.landgrafhomyak.db.skeleton1.api.DatabaseType import ru.landgrafhomyak.db.skeleton1.api.DatabaseType
public interface Column<RT, tUE : Any, IK : Any> { public interface Column<RT, tUE : Any> {
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("name") @get:JvmName("name")
@ -17,7 +17,7 @@ public interface Column<RT, tUE : Any, IK : Any> {
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getTable") @get:JvmName("getTable")
public val table: Table<tUE, *, IK> public val table: Table<tUE, *>
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")

View File

@ -3,9 +3,8 @@ package ru.landgrafhomyak.db.skeleton1.api.table
import kotlin.jvm.JvmName import kotlin.jvm.JvmName
import ru.landgrafhomyak.db.skeleton1.api.ReflectionApi import ru.landgrafhomyak.db.skeleton1.api.ReflectionApi
import ru.landgrafhomyak.db.skeleton1.api.module.Module 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") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("uExt") @get:JvmName("uExt")
public val uExt: UE public val uExt: UE
@ -23,7 +22,7 @@ public interface Table<UE : Any, mUE : Any, IK : Any> {
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getModule") @get:JvmName("getModule")
public val module: Module<mUE, IK> public val module: Module<mUE>
public enum class LifeTime { public enum class LifeTime {
DATABASE_SCOPE, DATABASE_SCOPE,
@ -40,28 +39,28 @@ public interface Table<UE : Any, mUE : Any, IK : Any> {
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getMemberColumns") @get:JvmName("getMemberColumns")
public val memberColumns: Collection<Column<*, UE, IK>> public val memberColumns: Collection<Column<*, UE>>
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getMemberObjects") @get:JvmName("getMemberObjects")
public val memberObjects: Collection<TableScopedObject<*, UE, IK>> public val memberObjects: Collection<TableScopedObject<*, UE>>
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getMemberColumnsWhileUpgrade") @get:JvmName("getMemberColumnsWhileUpgrade")
public val memberColumnsWhileUpgrade: Collection<Column<*, UE, IK>> public val memberColumnsWhileUpgrade: Collection<Column<*, UE>>
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getMemberObjectsWhileUpgrade") @get:JvmName("getMemberObjectsWhileUpgrade")
public val memberObjectsWhileUpgrade: Collection<TableScopedObject<*, UE, IK>> public val memberObjectsWhileUpgrade: Collection<TableScopedObject<*, UE>>
public interface Constructor<tUE : Any, RK : Any> { public interface Constructor<tUE : Any> {
public fun createTable(context: TableConstructorScope<tUE, RK>): tUE public fun createTable(context: TableConstructorScope<tUE>): tUE
} }
public interface Upgrade<tnUE : Any, toUE : Any, RK : Any> { public interface Upgrade<tnUE : Any, toUE : Any> {
public fun upgradeTable(oldTable: toUE, context: TableUpgradeScope<tnUE, toUE, RK>): tnUE 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 import ru.landgrafhomyak.db.skeleton1.api.runtime.InputRow
public interface TableConstructorScope<tUE : Any, IK : Any> { public interface TableConstructorScope<tUE : Any> {
public fun <RT> column(name: String, type: DatabaseType.ImplementationsProvider<RT>): Column<RT, tUE, IK> public fun <RT> column(name: String, type: DatabaseType.ImplementationsProvider<RT>): Column<RT, tUE>
public fun <RT> column( public fun <RT> column(
name: String, type: DatabaseType.ImplementationsProvider<RT>, name: String, type: DatabaseType.ImplementationsProvider<RT>,
alterCreateColumn: _Statement.Void2Void<*, IK> alterCreateColumn: _Statement.Void2Void<*>
): Column<RT, tUE, IK> ): Column<RT, tUE>
public fun <RT> column( public fun <RT> column(
name: String, type: DatabaseType.ImplementationsProvider<RT>, name: String, type: DatabaseType.ImplementationsProvider<RT>,
alterCreateColumn: RawStatement.Void2Void.ImplementationsProvider<*> alterCreateColumn: RawStatement.Void2Void.ImplementationsProvider<*>
): Column<RT, tUE, IK> ): Column<RT, tUE>
@LowLevelApi @LowLevelApi
public fun <RT, sUE : Any> _column( public fun <RT, sUE : Any> _column(
name: String, type: DatabaseType.ImplementationsProvider<RT>, name: String, type: DatabaseType.ImplementationsProvider<RT>,
alterCreateColumn: _Statement.Void2Void<sUE, IK> alterCreateColumn: _Statement.Void2Void<sUE>
): InputRow._Scope<sUE, IK, Column<RT, tUE, IK>> ): InputRow._Scope<sUE, Column<RT, tUE>>
@LowLevelApi @LowLevelApi
public fun <RT, sUE : Any> _column( public fun <RT, sUE : Any> _column(
name: String, type: DatabaseType.ImplementationsProvider<RT>, name: String, type: DatabaseType.ImplementationsProvider<RT>,
alterCreateColumn: RawStatement.Params2Void.ImplementationsProvider<sUE> 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<*>) public fun addAlterStatement(stmt: RawStatement.Void2Void.ImplementationsProvider<*>)
@LowLevelApi @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 @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.ReflectionApi
import ru.landgrafhomyak.db.skeleton1.api.ObjectOperations 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 public val uExt: oUE
@ReflectionApi @ReflectionApi
public val name: String public val name: String
@ReflectionApi @ReflectionApi
public val table: Table<tUE, *, IK> public val table: Table<tUE, *>
@ReflectionApi @ReflectionApi
public val meta: ObjectOperations.ImplementationsProvider<oUE> 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.statement._Statement
import ru.landgrafhomyak.db.skeleton1.api.runtime.InputRow import ru.landgrafhomyak.db.skeleton1.api.runtime.InputRow
public interface TableUpgradeScope<tnUE : Any, toUE : Any, IK : Any> : TableConstructorScope<tnUE, IK> { public interface TableUpgradeScope<tnUE : Any, toUE : Any> : TableConstructorScope<tnUE> {
public fun <RT> keepColumn(c: Column<RT, toUE, IK>): Column<RT, tnUE, IK> public fun <RT> keepColumn(c: Column<RT, toUE>): Column<RT, tnUE>
public fun <RT> renameColumn(c: Column<RT, toUE, IK>, newName: String): Column<RT, tnUE, IK> public fun <RT> renameColumn(c: Column<RT, toUE>, newName: String): Column<RT, tnUE>
public fun deleteColumn(c: Column<*, toUE, IK>) public fun deleteColumn(c: Column<*, toUE>)
public fun <RT> deleteColumnAfterUpgrade(c: Column<RT, toUE, IK>): Column<RT, tnUE, IK> 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?> keepTableScopedObject(obj: TableScopedObject<oUE, toUE>): TableScopedObject<oUE, tnUE>
public fun <oUE : Any?> renameTableScopedObject(obj: TableScopedObject<oUE, toUE, IK>, newName: String): TableScopedObject<oUE, tnUE, IK> public fun <oUE : Any?> renameTableScopedObject(obj: TableScopedObject<oUE, toUE>, newName: String): TableScopedObject<oUE, tnUE>
public fun <oUE : Any?> deleteTableScopedObject(obj: TableScopedObject<oUE, toUE, IK>) public fun <oUE : Any?> deleteTableScopedObject(obj: TableScopedObject<oUE, toUE>)
public fun <oUE : Any?> deleteTableScopedObjectAfterUpgrade(obj: TableScopedObject<oUE, toUE, IK>): TableScopedObject<oUE, tnUE, IK> 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<*>) public fun addAlterStatementAfterUpgrade(stmt: RawStatement.Void2Void.ImplementationsProvider<*>)
@LowLevelApi @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 @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>
} }