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
public interface Module<mUE : Any> {
public interface Module<UE : Any> {
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("uExt")
public val uExt: mUE
public val uExt: UE
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@ -33,15 +33,15 @@ public interface Module<mUE : Any> {
public val lifeTime: LifeTime
@ReflectionApi
public fun memberTables(lifeTime: LifeTime): Collection<Table<*, mUE>>
public fun memberTables(lifeTime: LifeTime): Collection<Table<*, UE>>
@ReflectionApi
public fun memberObjects(lifeTime: LifeTime): Collection<ModuleScopedObject<mUE>>
public fun memberObjects(lifeTime: LifeTime): Collection<ModuleScopedObject<UE>>
@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> {
@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
public interface ModuleConstructorScope<mUE : Any> {
public interface ModuleConstructorScope<UE : Any> {
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("rootNs")
public val rootNameNode: NameNode<mUE>
public val rootNameNode: NameNode<UE>
public fun <tUE : Any> table_create(
lifeTime: LifeTime = LifeTime.REGULAR,
location: NameNode<mUE>,
location: NameNode<UE>,
initializer: Table.Constructor<tUE>
): Table<tUE, mUE>
): Table<tUE, UE>
public fun object_create(
lifeTime: LifeTime = LifeTime.REGULAR,
location: NameNode<mUE>,
location: NameNode<UE>,
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(stmt: RawStatement.Void2Void.ImplementationsProvider<*>)
public fun addStatement(statement: _Statement.Void2Void<*>)
public fun addStatement(provider: RawStatement.Void2Void.ImplementationsProvider<*>)
@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
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
import kotlin.jvm.JvmName
import ru.landgrafhomyak.db.skeleton1.api.LifeTime
import ru.landgrafhomyak.db.skeleton1.api.ReflectionApi
import ru.landgrafhomyak.db.skeleton1.api.ObjectClass
public interface ModuleScopedObject<mUE : Any> {
public interface ModuleScopedObject<pmUE : Any> {
@ReflectionApi
public val parentModule: Module<mUE>
public val parentModule: Module<pmUE>
@ReflectionApi
public val pathFromParentModuleRoot: List<String>
@ -15,7 +14,7 @@ public interface ModuleScopedObject<mUE : Any> {
@ReflectionApi
public val objectClassProvider: ObjectClass.ImplementationsProvider
public val unwrappedModuleScopedObject: ModuleScopedObject<mUE>
public val unwrappedModuleScopedObject: ModuleScopedObject<pmUE>
@ReflectionApi
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
public interface ModuleUpgradeScope<nmUE : Any, omUE : Any> : ModuleConstructorScope<nmUE> {
public interface ModuleUpgradeScope<nUE : Any, oUE : Any> : ModuleConstructorScope<nUE> {
// Table -------------------------------------------------------------------
public fun <tUE : Any> table_keep(table: Table<tUE, omUE>): Table<tUE, nmUE>
public fun <tUE : Any> table_keepAndMove(
table: Table<tUE, omUE>,
newLocation: NameNode<nmUE>
): Table<tUE, nmUE>
public fun <tUE : Any> table_keep(table: Table<tUE, oUE>): Table<tUE, nUE>
public fun <tUE : Any> table_keepAndMove(table: Table<tUE, oUE>, newLocation: NameNode<nUE>): Table<tUE, nUE>
public fun <ntUE : Any, otUE : Any> table_upgrade(
oldTable: Table<otUE, omUE>,
upgrade: Table.Upgrade<ntUE, otUE>
): Table<ntUE, nmUE>
public fun <tnUE : Any, toUE : Any> table_upgrade(table: Table<toUE, oUE>, upgrade: Table.Upgrade<tnUE, toUE>): Table<tnUE, nUE>
public fun <tnUE : Any, toUE : Any> table_upgradeAndMove(table: Table<toUE, oUE>, newLocation: NameNode<nUE>, upgrade: Table.Upgrade<tnUE, toUE>): Table<tnUE, nUE>
public fun <ntUE : Any, otUE : Any> table_upgradeAndMove(
table: Table<otUE, omUE>,
newLocation: NameNode<nmUE>,
upgrade: Table.Upgrade<ntUE, otUE>
): Table<ntUE, nmUE>
public fun table_delete(table: Table<*, oUE>)
public fun <tUE : Any> table_deleteAfterModuleUpgrade(table: Table<tUE, oUE>): Table<tUE, nUE>
public fun table_delete(table: Table<*, omUE>)
public fun <tUE : Any> table_deleteAfterModuleUpgrade(table: Table<tUE, omUE>): Table<tUE, nmUE>
public fun table_export(table: Table<*, oUE>)
public fun table_export(table: Table<*, omUE>)
public fun <tUE : Any> table_import(table: Table<tUE, *>, location: NameNode<nmUE>): Table<tUE, nmUE>
public fun <ntUE : Any, otUE : Any> table_importAndUpgrade(
table: Table<otUE, *>,
location: NameNode<nmUE>,
upgrade: Table.Upgrade<ntUE, otUE>
): Table<ntUE, nmUE>
public fun <tUE : Any> table_import(table: Table<tUE, *>, location: NameNode<nUE>): Table<tUE, nUE>
public fun <tnUE : Any, toUE : Any> table_importAndUpgrade(table: Table<toUE, *>, location: NameNode<nUE>, upgrade: Table.Upgrade<tnUE, toUE>): Table<tnUE, nUE>
// Object ------------------------------------------------------------------
public fun object_keep(obj: ModuleScopedObject<omUE>): ModuleScopedObject<nmUE>
public fun object_keepAndMove(
obj: ModuleScopedObject<omUE>,
newLocation: NameNode<nmUE>,
): ModuleScopedObject<nmUE>
public fun object_keep(obj: ModuleScopedObject<oUE>): ModuleScopedObject<nUE>
public fun object_keepAndMove(obj: ModuleScopedObject<oUE>, newLocation: NameNode<nUE>): ModuleScopedObject<nUE>
public fun object_delete(obj: ModuleScopedObject<omUE>)
public fun object_deleteAfterModuleUpgrade(obj: ModuleScopedObject<omUE>): ModuleScopedObject<nmUE>
public fun object_export(obj: ModuleScopedObject<omUE>)
public fun object_import(
obj: ModuleScopedObject<*>,
location: NameNode<nmUE>
): ModuleScopedObject<nmUE>
public fun object_delete(obj: ModuleScopedObject<oUE>)
public fun object_deleteAfterModuleUpgrade(obj: ModuleScopedObject<oUE>): ModuleScopedObject<nUE>
public fun object_export(obj: ModuleScopedObject<oUE>)
public fun object_import(obj: ModuleScopedObject<*>, location: NameNode<nUE>): ModuleScopedObject<nUE>
// Module ------------------------------------------------------------------
public fun <smUE : Any> submodule_keep(module: Module<smUE>): Module<smUE>
public fun <smUE : Any> submodule_keepAndMove(oldModule: Module<smUE>, newNs: NameNode<nmUE>): Module<smUE>
public fun <smUE : Any> submodule_keep(submodule: Module<smUE>): 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_upgradeAndMove(
oldModule: Module<*>,
newNamespace: NameNode<nmUE>,
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(submodule: Module<*>, newLocation: NameNode<nUE>, template: Module.Template<smUE>): Module<smUE>
public fun submodule_delete(oldModule: Module<*>)
public fun <smUE : Any> submodule_deleteAfterModuleUpgrade(oldModule: Module<smUE>): Module<smUE>
public fun submodule_delete(submodule: Module<*>)
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(
module: Module<smUE>,
location: NameNode<nmUE>,
): Module<smUE>
public fun <smUE : Any> submodule_import(module: Module<smUE>, location: NameNode<nUE>): Module<smUE>
public fun <nsmUE : Any, osmUE : Any> submodule_importAndUpgrade(
module: Module<osmUE>,
location: NameNode<nmUE>,
upgrade: Module.Upgrade<nsmUE, osmUE>
): Module<nsmUE>
public fun <smUE : Any> submodule_importAndUpgrade(module: Module<smUE>, location: NameNode<nUE>, template: Module.Template<smUE>): Module<smUE>
// Statements --------------------------------------------------------------
public fun addStatementAfterUpgrade(stmt: _Statement.Void2Void<*>)
public fun addStatementAfterUpgrade(stmt: RawStatement.Void2Void.ImplementationsProvider<*>)
public fun addStatementAfterUpgrade(statement: _Statement.Void2Void<*>)
public fun addStatementAfterUpgrade(provider: RawStatement.Void2Void.ImplementationsProvider<*>)
@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
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 ru.landgrafhomyak.db.skeleton1.api.ReflectionApi
public interface NameNode<mUE : Any> {
public interface NameNode<pmUE : Any> {
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getName")
@ -12,5 +12,5 @@ public interface NameNode<mUE : Any> {
@ReflectionApi
@Suppress("INAPPLICABLE_JVM_NAME")
@get:JvmName("getPath")
public val parent: NameNode<mUE>?
public val parent: NameNode<pmUE>?
}