From 0c9501cbe439a5a8912c5738bc1dc7780ff2f738 Mon Sep 17 00:00:00 2001 From: Andrew Golovashevich Date: Mon, 2 Jun 2025 00:58:44 +0300 Subject: [PATCH] Namespace replaced by NameNode to make it more clear and simplify implementation --- .../api/module/ModuleConstructorScope.kt | 14 +++++----- .../api/module/ModuleScopedObject.kt | 7 ++--- .../api/module/ModuleUpgradeScope.kt | 28 +++++++++---------- .../api/module/{Namespace.kt => NameNode.kt} | 4 +-- .../db/skeleton1/api/table/Table.kt | 13 +++------ 5 files changed, 29 insertions(+), 37 deletions(-) rename src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/{Namespace.kt => NameNode.kt} (80%) 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 15b8fd3..b067b6e 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 @@ -12,22 +12,22 @@ import ru.landgrafhomyak.db.skeleton1.api.runtime.InputRow public interface ModuleConstructorScope { @Suppress("INAPPLICABLE_JVM_NAME") @get:JvmName("rootNs") - public val rootNs: Namespace + public val rootNameNode: NameNode public fun createTable( lifeTime: Table.LifeTime = Table.LifeTime.DATABASE_SCOPE, - namespace: Namespace = this.rootNs, - name: String, initializer: Table.Constructor + location: NameNode, + initializer: Table.Constructor ): Table public fun moduleScopedObject( - namespace: Namespace = this.rootNs, - name: String, metadata: ObjectClass.ImplementationsProvider + location: NameNode, + metadata: ObjectClass.ImplementationsProvider ): ModuleScopedObject - public fun substituteModule(rootNs: Namespace, template: Module.Template): Module + public fun substituteModule(rootNode: NameNode, template: Module.Template): Module - public fun namespace(parent: Namespace, name: String): Namespace + public fun nameNode(parent: NameNode, name: String): NameNode public fun addStatement(stmt: _Statement.Void2Void<*>) public fun addStatement(stmt: RawStatement.Void2Void.ImplementationsProvider<*>) 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 9bceba0..3451c27 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 @@ -5,16 +5,13 @@ import ru.landgrafhomyak.db.skeleton1.api.ReflectionApi import ru.landgrafhomyak.db.skeleton1.api.ObjectClass public interface ModuleScopedObject { - @ReflectionApi - public val name: String - @ReflectionApi public val module: Module @ReflectionApi @Suppress("INAPPLICABLE_JVM_NAME") - @get:JvmName("getPathFromModuleRoot") - public val pathFromModuleRoot: List + @get:JvmName("getPathFromParentModuleRoot") + public val pathFromParentModuleRoot: List? @ReflectionApi public val objectClassProvider: ObjectClass.ImplementationsProvider 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 4c1d3b7..d424eae 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 @@ -10,9 +10,9 @@ import ru.landgrafhomyak.db.skeleton1.api.table.Table public interface ModuleUpgradeScope : ModuleConstructorScope { // Table ------------------------------------------------------------------- public fun keepTable(table: Table): Table - public fun keepAndRenameTable( + public fun keepAndMoveTable( table: Table, - newNamespace: Namespace? = null, newName: String + newLocation: NameNode ): Table public fun upgradeTable( @@ -20,9 +20,9 @@ public interface ModuleUpgradeScope : ModuleConstructorS upgrade: Table.Upgrade ): Table - public fun upgradeAndRenameTable( + public fun upgradeAndMoveTable( table: Table, - newNamespace: Namespace? = null, newName: String, + newLocation: NameNode, upgrade: Table.Upgrade ): Table @@ -32,21 +32,21 @@ public interface ModuleUpgradeScope : ModuleConstructorS public fun exportTable(table: Table<*, omUE>) public fun importTable( table: Table, - namespace: Namespace = this.rootNs, name: String + location: NameNode ): Table public fun importAndUpgradeTable( table: Table, - namespace: Namespace = this.rootNs, name: String, + location: NameNode, upgrade: Table.Upgrade ): Table // Object ------------------------------------------------------------------ - public fun keepModuleScopedObject(obj: ModuleScopedObject< omUE>): ModuleScopedObject - public fun renameModuleScopedObject( + public fun keepModuleScopedObject(obj: ModuleScopedObject): ModuleScopedObject + public fun keepAndMoveModuleScopedObject( obj: ModuleScopedObject, - newNamespace: Namespace? = null, newName: String + newLocation: NameNode, ): ModuleScopedObject public fun deleteModuleScopedObject(obj: ModuleScopedObject) @@ -55,19 +55,19 @@ public interface ModuleUpgradeScope : ModuleConstructorS public fun exportModuleScopedObject(obj: ModuleScopedObject) public fun importModuleScopedObject( obj: ModuleScopedObject<*>, - namespace: Namespace = this.rootNs, name: String + location: NameNode ): ModuleScopedObject // Module ------------------------------------------------------------------ public fun keepModule(module: Module): Module - public fun keepAndMoveModule(oldModule: Module, newNs: Namespace): Module + public fun keepAndMoveModule(oldModule: Module, newNs: NameNode): Module public fun upgradeModule(oldModule: Module<*>, template: Module.Template): Module public fun upgradeAndMoveModule( oldModule: Module<*>, - newNamespace: Namespace, + newNamespace: NameNode, template: Module.Template ): Module @@ -78,12 +78,12 @@ public interface ModuleUpgradeScope : ModuleConstructorS public fun importModule( module: Module, - namespace: Namespace, + location: NameNode, ): Module public fun importAndUpgradeModule( module: Module, - namespace: Namespace, + location: NameNode, upgrade: Module.Upgrade ): Module diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/Namespace.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/NameNode.kt similarity index 80% rename from src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/Namespace.kt rename to src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/NameNode.kt index ed3aef6..ce3fcfb 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/Namespace.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/module/NameNode.kt @@ -3,7 +3,7 @@ package ru.landgrafhomyak.db.skeleton1.api.module import kotlin.jvm.JvmName import ru.landgrafhomyak.db.skeleton1.api.ReflectionApi -public interface Namespace { +public interface NameNode { @ReflectionApi @Suppress("INAPPLICABLE_JVM_NAME") @get:JvmName("getName") @@ -12,5 +12,5 @@ public interface Namespace { @ReflectionApi @Suppress("INAPPLICABLE_JVM_NAME") @get:JvmName("getPath") - public val parent: Namespace? + public val parent: NameNode? } \ No newline at end of file diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/Table.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/Table.kt index 86face6..bbb0ece 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/Table.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/table/Table.kt @@ -11,13 +11,8 @@ public interface Table { @ReflectionApi @Suppress("INAPPLICABLE_JVM_NAME") - @get:JvmName("getName") - public val name: String - - @ReflectionApi - @Suppress("INAPPLICABLE_JVM_NAME") - @get:JvmName("getPathFromModuleRoot") - public val pathFromModuleRoot: List + @get:JvmName("getPathFromParentModuleRoot") + public val pathFromParentModuleRoot: List? @ReflectionApi @Suppress("INAPPLICABLE_JVM_NAME") @@ -44,7 +39,7 @@ public interface Table { @ReflectionApi @Suppress("INAPPLICABLE_JVM_NAME") @get:JvmName("getMemberObjects") - public val memberObjects: Collection> + public val memberObjects: Collection> @ReflectionApi @Suppress("INAPPLICABLE_JVM_NAME") @@ -54,7 +49,7 @@ public interface Table { @ReflectionApi @Suppress("INAPPLICABLE_JVM_NAME") @get:JvmName("getMemberObjectsWhileUpgrade") - public val memberObjectsWhileUpgrade: Collection> + public val memberObjectsWhileUpgrade: Collection> public interface Constructor { public fun createTable(context: TableConstructorScope): tUE