From 8fff112946e70040901f60271aa8f3f4d709adae Mon Sep 17 00:00:00 2001
From: Andrew Golovashevich <landgrafhomyak@gmail.com>
Date: Wed, 28 May 2025 20:28:59 +0300
Subject: [PATCH] Object's user extension now internal
 object's/implementation's state and can't be accessed outside
 'ObjectOperations'

---
 .../db/skeleton1/api/ObjectOperations.kt      | 10 +++++-----
 .../db/skeleton1/api/module/Module.kt         |  2 +-
 .../api/module/ModuleConstructorScope.kt      |  6 +++---
 .../api/module/ModuleScopedObject.kt          |  6 ++----
 .../api/module/ModuleUpgradeScope.kt          | 20 +++++++++----------
 .../api/table/TableConstructorScope.kt        |  2 +-
 .../skeleton1/api/table/TableScopedObject.kt  |  6 ++----
 .../skeleton1/api/table/TableUpgradeScope.kt  |  8 ++++----
 8 files changed, 28 insertions(+), 32 deletions(-)

diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/ObjectOperations.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/ObjectOperations.kt
index 5797d2a..5ba1e03 100644
--- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/ObjectOperations.kt
+++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/ObjectOperations.kt
@@ -1,15 +1,15 @@
 package ru.landgrafhomyak.db.skeleton1.api
 
 public interface ObjectOperations<@Suppress("unused") UE : Any?> {
-	public fun interface ImplementationsProvider<UE> {
-		public fun provideStatementImplementations_databaseType(scope: Scope<UE>)
+	public fun interface ImplementationsProvider {
+		public fun provideStatementImplementations_databaseType(scope: Scope)
 
-		public interface Scope<RUNTIME_TYPE> {
+		public interface Scope {
 			@Suppress("ERROR_SUPPRESSION", "BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER", "INCONSISTENT_TYPE_PARAMETER_BOUNDS")
-			public fun <OPERATIONS, OPERATIONS_UNBOUND> addImplementation(
+			public fun <UE, OPERATIONS, OPERATIONS_UNBOUND> addImplementation(
 				key: DriverMetainfo<*, *, *, *, *, *, *, *, *, OPERATIONS_UNBOUND>, type: OPERATIONS
 			) where OPERATIONS_UNBOUND : ObjectOperations<*>,
-					OPERATIONS : ObjectOperations<RUNTIME_TYPE>,
+					OPERATIONS : ObjectOperations<UE>,
 					OPERATIONS : OPERATIONS_UNBOUND
 		}
 	}
diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/Module.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/Module.kt
index 08b2a13..b64e533 100644
--- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/Module.kt
+++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/Module.kt
@@ -36,7 +36,7 @@ public interface Module<mUE : Any> {
 	@ReflectionApi
 	@Suppress("INAPPLICABLE_JVM_NAME")
 	@get:JvmName("getMemberObjects")
-	public val memberObjects: Collection<ModuleScopedObject<*, mUE>>
+	public val memberObjects: Collection<ModuleScopedObject<mUE>>
 
 	@ReflectionApi
 	@Suppress("INAPPLICABLE_JVM_NAME")
diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/ModuleConstructorScope.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/ModuleConstructorScope.kt
index f7096cd..a9ab4b4 100644
--- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/ModuleConstructorScope.kt
+++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/ModuleConstructorScope.kt
@@ -20,10 +20,10 @@ public interface ModuleConstructorScope<mUE : Any> {
 		name: String, initializer: Table.Constructor<tUE>
 	): Table<tUE, mUE>
 
-	public fun <oUE : Any?> moduleScopedObject(
+	public fun moduleScopedObject(
 		namespace: Namespace<mUE> = this.rootNs,
-		name: String, metadata: ObjectOperations.ImplementationsProvider<oUE>
-	): ModuleScopedObject<oUE, mUE>
+		name: String, metadata: ObjectOperations.ImplementationsProvider
+	): ModuleScopedObject<mUE>
 
 	public fun <smUE : Any> substituteModule(rootNs: Namespace<mUE>, template: Module.Template<smUE>): Module<smUE>
 
diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/ModuleScopedObject.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/ModuleScopedObject.kt
index 90a6ab7..07bcd9e 100644
--- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/ModuleScopedObject.kt
+++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/ModuleScopedObject.kt
@@ -4,9 +4,7 @@ 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> {
-	public val uExt: oUE
-
+public interface ModuleScopedObject<mUE : Any> {
 	@ReflectionApi
 	public val name: String
 
@@ -19,5 +17,5 @@ public interface ModuleScopedObject<oUE : Any?, mUE : Any> {
 	public val pathFromModuleRoot: List<String>
 
 	@ReflectionApi
-	public val meta: ObjectOperations.ImplementationsProvider<oUE>
+	public val meta: ObjectOperations.ImplementationsProvider
 }
\ No newline at end of file
diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/ModuleUpgradeScope.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/ModuleUpgradeScope.kt
index 58b02ee..4c1d3b7 100644
--- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/ModuleUpgradeScope.kt
+++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/ModuleUpgradeScope.kt
@@ -43,20 +43,20 @@ public interface ModuleUpgradeScope<nmUE : Any, omUE : Any> : ModuleConstructorS
 
 	// Object ------------------------------------------------------------------
 
-	public fun <oUE : Any?> keepModuleScopedObject(obj: ModuleScopedObject<oUE, omUE>): ModuleScopedObject<oUE, nmUE>
-	public fun <oUE : Any?> renameModuleScopedObject(
-		obj: ModuleScopedObject<oUE, omUE>,
+	public fun keepModuleScopedObject(obj: ModuleScopedObject< omUE>): ModuleScopedObject<nmUE>
+	public fun renameModuleScopedObject(
+		obj: ModuleScopedObject<omUE>,
 		newNamespace: Namespace<nmUE>? = null, newName: String
-	): ModuleScopedObject<oUE, nmUE>
+	): ModuleScopedObject<nmUE>
 
-	public fun <oUE : Any?> deleteModuleScopedObject(obj: ModuleScopedObject<oUE, omUE>)
-	public fun <oUE : Any?> deleteModuleScopedObjectAfterModuleUpgrade(obj: ModuleScopedObject<oUE, omUE>): ModuleScopedObject<oUE, nmUE>
+	public fun deleteModuleScopedObject(obj: ModuleScopedObject<omUE>)
+	public fun deleteModuleScopedObjectAfterModuleUpgrade(obj: ModuleScopedObject<omUE>): ModuleScopedObject<nmUE>
 
-	public fun exportModuleScopedObject(obj: ModuleScopedObject<*, omUE>)
-	public fun <oUE : Any> importModuleScopedObject(
-		obj: ModuleScopedObject<oUE, *>,
+	public fun exportModuleScopedObject(obj: ModuleScopedObject<omUE>)
+	public fun importModuleScopedObject(
+		obj: ModuleScopedObject<*>,
 		namespace: Namespace<nmUE> = this.rootNs, name: String
-	): ModuleScopedObject<oUE, nmUE>
+	): ModuleScopedObject<nmUE>
 
 
 	// Module ------------------------------------------------------------------
diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/TableConstructorScope.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/TableConstructorScope.kt
index 13fd62c..1b39b0b 100644
--- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/TableConstructorScope.kt
+++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/TableConstructorScope.kt
@@ -32,7 +32,7 @@ public interface TableConstructorScope<tUE : Any> {
 		alterCreateColumn: RawStatement.Params2Void.ImplementationsProvider<sUE>
 	): InputRow._Scope<sUE, Column<RT, tUE>>
 
-	public fun <oUE : Any?> tableScopedObject(name: String, metadata: ObjectOperations.ImplementationsProvider<oUE>): TableScopedObject<oUE, tUE>
+	public fun tableScopedObject(name: String, metadata: ObjectOperations.ImplementationsProvider): TableScopedObject<tUE>
 
 	public fun addAlterStatement(stmt: _Statement.Void2Void<*>)
 	public fun addAlterStatement(stmt: RawStatement.Void2Void.ImplementationsProvider<*>)
diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/TableScopedObject.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/TableScopedObject.kt
index 753d29f..3d0649c 100644
--- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/TableScopedObject.kt
+++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/TableScopedObject.kt
@@ -4,9 +4,7 @@ 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> {
-	public val uExt: oUE
-
+public interface TableScopedObject<tUE : Any> {
 	@ReflectionApi
 	public val name: String
 
@@ -14,7 +12,7 @@ public interface TableScopedObject<oUE : Any?, tUE : Any> {
 	public val table: Table<tUE, *>
 
 	@ReflectionApi
-	public val meta: ObjectOperations.ImplementationsProvider<oUE>
+	public val meta: ObjectOperations.ImplementationsProvider
 
 	@ReflectionApi
 	@Suppress("INAPPLICABLE_JVM_NAME")
diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/TableUpgradeScope.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/TableUpgradeScope.kt
index d066328..bacb1b7 100644
--- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/TableUpgradeScope.kt
+++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/TableUpgradeScope.kt
@@ -11,10 +11,10 @@ public interface TableUpgradeScope<tnUE : Any, toUE : Any> : TableConstructorSco
 	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>): 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 keepTableScopedObject(obj: TableScopedObject<toUE>): TableScopedObject<tnUE>
+	public fun renameTableScopedObject(obj: TableScopedObject<toUE>, newName: String): TableScopedObject<tnUE>
+	public fun deleteTableScopedObject(obj: TableScopedObject<toUE>)
+	public fun deleteTableScopedObjectAfterUpgrade(obj: TableScopedObject<toUE>): TableScopedObject<tnUE>
 
 	public fun addAlterStatementAfterUpgrade(stmt: _Statement.Void2Void<*>)
 	public fun addAlterStatementAfterUpgrade(stmt: RawStatement.Void2Void.ImplementationsProvider<*>)