Naming of params in module methods and generics and minor fixes

This commit is contained in:
Andrew Golovashevich 2025-06-05 01:06:00 +03:00
parent be4945fe32
commit 0a867b816f
5 changed files with 52 additions and 86 deletions

View File

@ -9,10 +9,10 @@ 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> { public interface Module<UE : Any> {
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("uExt") @get:JvmName("uExt")
public val uExt: mUE public val uExt: UE
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@ -33,15 +33,15 @@ public interface Module<mUE : Any> {
public val lifeTime: LifeTime public val lifeTime: LifeTime
@ReflectionApi @ReflectionApi
public fun memberTables(lifeTime: LifeTime): Collection<Table<*, mUE>> public fun memberTables(lifeTime: LifeTime): Collection<Table<*, UE>>
@ReflectionApi @ReflectionApi
public fun memberObjects(lifeTime: LifeTime): Collection<ModuleScopedObject<mUE>> public fun memberObjects(lifeTime: LifeTime): Collection<ModuleScopedObject<UE>>
@ReflectionApi @ReflectionApi
public fun memberSubmodules(lifeTime: LifeTime): Collection<Table<*, mUE>> public fun memberSubmodules(lifeTime: LifeTime): Collection<Table<*, UE>>
public val unwrappedModule: Module<mUE> public val unwrappedModule: Module<UE>
public interface Constructor<mUE : Any> { public interface Constructor<mUE : Any> {
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")

View File

@ -10,33 +10,33 @@ 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> { public interface ModuleConstructorScope<UE : Any> {
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("rootNs") @get:JvmName("rootNs")
public val rootNameNode: NameNode<mUE> public val rootNameNode: NameNode<UE>
public fun <tUE : Any> table_create( public fun <tUE : Any> table_create(
lifeTime: LifeTime = LifeTime.REGULAR, lifeTime: LifeTime = LifeTime.REGULAR,
location: NameNode<mUE>, location: NameNode<UE>,
initializer: Table.Constructor<tUE> initializer: Table.Constructor<tUE>
): Table<tUE, mUE> ): Table<tUE, UE>
public fun object_create( public fun object_create(
lifeTime: LifeTime = LifeTime.REGULAR, lifeTime: LifeTime = LifeTime.REGULAR,
location: NameNode<mUE>, location: NameNode<UE>,
metadata: ObjectClass.ImplementationsProvider metadata: ObjectClass.ImplementationsProvider
): ModuleScopedObject<mUE> ): ModuleScopedObject<UE>
public fun <smUE : Any> submodule_substitute(rootNode: NameNode<mUE>, template: Module.Template<smUE>): Module<smUE> public fun <smUE : Any> submodule_substitute(location: NameNode<UE>, template: Module.Template<smUE>): Module<smUE>
public fun nameNode(parent: NameNode<mUE>, name: String): NameNode<mUE> public fun nameNode(parent: NameNode<UE>, name: String): NameNode<UE>
public fun addStatement(stmt: _Statement.Void2Void<*>) public fun addStatement(statement: _Statement.Void2Void<*>)
public fun addStatement(stmt: RawStatement.Void2Void.ImplementationsProvider<*>) public fun addStatement(provider: RawStatement.Void2Void.ImplementationsProvider<*>)
@LowLevelApi @LowLevelApi
public fun <sUE : Any> _addStatement(stmt: _Statement.Params2Void<sUE>): InputRow._Scope<sUE, Unit> public fun <sUE : Any> _addStatement(statement: _Statement.Params2Void<sUE>): InputRow._Scope<sUE, Unit>
@LowLevelApi @LowLevelApi
public fun <sUE : Any> _addStatement(stmt: RawStatement.Params2Void.ImplementationsProvider<sUE>): InputRow._Scope<sUE, Unit> public fun <sUE : Any> _addStatement(provider: RawStatement.Params2Void.ImplementationsProvider<sUE>): InputRow._Scope<sUE, Unit>
} }

View File

@ -1,13 +1,12 @@
package ru.landgrafhomyak.db.skeleton1.api.module package ru.landgrafhomyak.db.skeleton1.api.module
import kotlin.jvm.JvmName
import ru.landgrafhomyak.db.skeleton1.api.LifeTime import ru.landgrafhomyak.db.skeleton1.api.LifeTime
import ru.landgrafhomyak.db.skeleton1.api.ReflectionApi import ru.landgrafhomyak.db.skeleton1.api.ReflectionApi
import ru.landgrafhomyak.db.skeleton1.api.ObjectClass import ru.landgrafhomyak.db.skeleton1.api.ObjectClass
public interface ModuleScopedObject<mUE : Any> { public interface ModuleScopedObject<pmUE : Any> {
@ReflectionApi @ReflectionApi
public val parentModule: Module<mUE> public val parentModule: Module<pmUE>
@ReflectionApi @ReflectionApi
public val pathFromParentModuleRoot: List<String> public val pathFromParentModuleRoot: List<String>
@ -15,7 +14,7 @@ public interface ModuleScopedObject<mUE : Any> {
@ReflectionApi @ReflectionApi
public val objectClassProvider: ObjectClass.ImplementationsProvider public val objectClassProvider: ObjectClass.ImplementationsProvider
public val unwrappedModuleScopedObject: ModuleScopedObject<mUE> public val unwrappedModuleScopedObject: ModuleScopedObject<pmUE>
@ReflectionApi @ReflectionApi
public val lifeTime: LifeTime public val lifeTime: LifeTime

View File

@ -7,91 +7,58 @@ 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> : ModuleConstructorScope<nmUE> { public interface ModuleUpgradeScope<nUE : Any, oUE : Any> : ModuleConstructorScope<nUE> {
// Table ------------------------------------------------------------------- // Table -------------------------------------------------------------------
public fun <tUE : Any> table_keep(table: Table<tUE, omUE>): Table<tUE, nmUE> public fun <tUE : Any> table_keep(table: Table<tUE, oUE>): Table<tUE, nUE>
public fun <tUE : Any> table_keepAndMove( public fun <tUE : Any> table_keepAndMove(table: Table<tUE, oUE>, newLocation: NameNode<nUE>): Table<tUE, nUE>
table: Table<tUE, omUE>,
newLocation: NameNode<nmUE>
): Table<tUE, nmUE>
public fun <ntUE : Any, otUE : Any> table_upgrade( public fun <tnUE : Any, toUE : Any> table_upgrade(table: Table<toUE, oUE>, upgrade: Table.Upgrade<tnUE, toUE>): Table<tnUE, nUE>
oldTable: Table<otUE, omUE>, public fun <tnUE : Any, toUE : Any> table_upgradeAndMove(table: Table<toUE, oUE>, newLocation: NameNode<nUE>, upgrade: Table.Upgrade<tnUE, toUE>): Table<tnUE, nUE>
upgrade: Table.Upgrade<ntUE, otUE>
): Table<ntUE, nmUE>
public fun <ntUE : Any, otUE : Any> table_upgradeAndMove( public fun table_delete(table: Table<*, oUE>)
table: Table<otUE, omUE>, public fun <tUE : Any> table_deleteAfterModuleUpgrade(table: Table<tUE, oUE>): Table<tUE, nUE>
newLocation: NameNode<nmUE>,
upgrade: Table.Upgrade<ntUE, otUE>
): Table<ntUE, nmUE>
public fun table_delete(table: Table<*, omUE>) public fun table_export(table: Table<*, oUE>)
public fun <tUE : Any> table_deleteAfterModuleUpgrade(table: Table<tUE, omUE>): Table<tUE, nmUE>
public fun table_export(table: Table<*, omUE>) public fun <tUE : Any> table_import(table: Table<tUE, *>, location: NameNode<nUE>): Table<tUE, nUE>
public fun <tUE : Any> table_import(table: Table<tUE, *>, location: NameNode<nmUE>): Table<tUE, nmUE> public fun <tnUE : Any, toUE : Any> table_importAndUpgrade(table: Table<toUE, *>, location: NameNode<nUE>, upgrade: Table.Upgrade<tnUE, toUE>): Table<tnUE, nUE>
public fun <ntUE : Any, otUE : Any> table_importAndUpgrade(
table: Table<otUE, *>,
location: NameNode<nmUE>,
upgrade: Table.Upgrade<ntUE, otUE>
): Table<ntUE, nmUE>
// Object ------------------------------------------------------------------ // Object ------------------------------------------------------------------
public fun object_keep(obj: ModuleScopedObject<omUE>): ModuleScopedObject<nmUE> public fun object_keep(obj: ModuleScopedObject<oUE>): ModuleScopedObject<nUE>
public fun object_keepAndMove( public fun object_keepAndMove(obj: ModuleScopedObject<oUE>, newLocation: NameNode<nUE>): ModuleScopedObject<nUE>
obj: ModuleScopedObject<omUE>,
newLocation: NameNode<nmUE>,
): ModuleScopedObject<nmUE>
public fun object_delete(obj: ModuleScopedObject<omUE>) public fun object_delete(obj: ModuleScopedObject<oUE>)
public fun object_deleteAfterModuleUpgrade(obj: ModuleScopedObject<omUE>): ModuleScopedObject<nmUE> public fun object_deleteAfterModuleUpgrade(obj: ModuleScopedObject<oUE>): ModuleScopedObject<nUE>
public fun object_export(obj: ModuleScopedObject<omUE>)
public fun object_import(
obj: ModuleScopedObject<*>,
location: NameNode<nmUE>
): ModuleScopedObject<nmUE>
public fun object_export(obj: ModuleScopedObject<oUE>)
public fun object_import(obj: ModuleScopedObject<*>, location: NameNode<nUE>): ModuleScopedObject<nUE>
// Module ------------------------------------------------------------------ // Module ------------------------------------------------------------------
public fun <smUE : Any> submodule_keep(module: Module<smUE>): Module<smUE> public fun <smUE : Any> submodule_keep(submodule: Module<smUE>): Module<smUE>
public fun <smUE : Any> submodule_keepAndMove(oldModule: Module<smUE>, newNs: NameNode<nmUE>): Module<smUE> public fun <smUE : Any> submodule_keepAndMove(submodule: Module<smUE>, newLocation: NameNode<nUE>): Module<smUE>
public fun <smUE : Any> submodule_upgrade(oldModule: Module<*>, template: Module.Template<smUE>): Module<smUE> public fun <smUE : Any> submodule_upgrade(submodule: Module<*>, template: Module.Template<smUE>): Module<smUE>
public fun <smUE : Any> submodule_upgradeAndMove( public fun <smUE : Any> submodule_upgradeAndMove(submodule: Module<*>, newLocation: NameNode<nUE>, template: Module.Template<smUE>): Module<smUE>
oldModule: Module<*>,
newNamespace: NameNode<nmUE>,
template: Module.Template<smUE>
): Module<smUE>
public fun submodule_delete(oldModule: Module<*>) public fun submodule_delete(submodule: Module<*>)
public fun <smUE : Any> submodule_deleteAfterModuleUpgrade(oldModule: Module<smUE>): Module<smUE> public fun <smUE : Any> submodule_deleteAfterModuleUpgrade(submodule: Module<smUE>): Module<smUE>
public fun submodule_export(table: Module<*>) public fun submodule_export(submodule: Module<*>)
public fun <smUE : Any> submodule_import( public fun <smUE : Any> submodule_import(module: Module<smUE>, location: NameNode<nUE>): Module<smUE>
module: Module<smUE>,
location: NameNode<nmUE>,
): Module<smUE>
public fun <nsmUE : Any, osmUE : Any> submodule_importAndUpgrade( public fun <smUE : Any> submodule_importAndUpgrade(module: Module<smUE>, location: NameNode<nUE>, template: Module.Template<smUE>): Module<smUE>
module: Module<osmUE>,
location: NameNode<nmUE>,
upgrade: Module.Upgrade<nsmUE, osmUE>
): Module<nsmUE>
// Statements -------------------------------------------------------------- // Statements --------------------------------------------------------------
public fun addStatementAfterUpgrade(stmt: _Statement.Void2Void<*>) public fun addStatementAfterUpgrade(statement: _Statement.Void2Void<*>)
public fun addStatementAfterUpgrade(stmt: RawStatement.Void2Void.ImplementationsProvider<*>) public fun addStatementAfterUpgrade(provider: RawStatement.Void2Void.ImplementationsProvider<*>)
@LowLevelApi @LowLevelApi
public fun <sUE : Any> _addStatementAfterUpgrade(stmt: _Statement.Params2Void<sUE>): InputRow._Scope<sUE, Unit> public fun <sUE : Any> _addStatementAfterUpgrade(statement: _Statement.Params2Void<sUE>): InputRow._Scope<sUE, Unit>
@LowLevelApi @LowLevelApi
public fun <sUE : Any> _addStatementAfterUpgrade(stmt: RawStatement.Params2Void.ImplementationsProvider<sUE>): InputRow._Scope<sUE, Unit> public fun <sUE : Any> _addStatementAfterUpgrade(provider: 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 NameNode<mUE : Any> { public interface NameNode<pmUE : Any> {
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getName") @get:JvmName("getName")
@ -12,5 +12,5 @@ public interface NameNode<mUE : Any> {
@ReflectionApi @ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME") @Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getPath") @get:JvmName("getPath")
public val parent: NameNode<mUE>? public val parent: NameNode<pmUE>?
} }