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 3a0b3fa..081b037 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,18 +20,21 @@ public interface ModuleConstructorScope { name: String, initializer: Table.Constructor ): Table - public fun moduleScopedObject(namespace: Namespace = this.rootNs, name: String, metadata: ObjectOperations.ImplementationsProvider): ModuleScopedObject + public fun moduleScopedObject( + namespace: Namespace = this.rootNs, + name: String, metadata: ObjectOperations.ImplementationsProvider + ): ModuleScopedObject public fun substituteModule(rootNs: Namespace, template: Module.Template): Module public fun namespace(parent: Namespace, name: String): Namespace - public fun addStatement(stmt: RawStatement.Void2Void.ImplementationsProvider<*>) public fun addStatement(stmt: _Statement.Void2Void<*, RK>) - - @LowLevelApi - public fun _addStatement(stmt: RawStatement.Params2Void.ImplementationsProvider): InputRow._Scope + public fun addStatement(stmt: RawStatement.Void2Void.ImplementationsProvider<*>) @LowLevelApi public fun _addStatement(stmt: _Statement.Params2Void): InputRow._Scope + + @LowLevelApi + public fun _addStatement(stmt: RawStatement.Params2Void.ImplementationsProvider): InputRow._Scope } \ 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 e54ae81..bc3b01a 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 @@ -8,65 +8,93 @@ import ru.landgrafhomyak.db.skeleton1.api.table.Table public interface ModuleUpgradeScope : ModuleConstructorScope { + // Table ------------------------------------------------------------------- public fun keepTable(table: Table): Table + public fun keepAndRenameTable( + table: Table, + newNamespace: Namespace? = null, newName: String + ): Table - public fun keepAndRenameTable(table: Table, newName: String): Table - public fun keepAndRenameTable(table: Table, newNamespace: Namespace): Table - public fun keepAndRenameTable(table: Table, newNamespace: Namespace, newName: String): Table - - public fun upgradeTable(oldTable: Table, upgrade: Table.Upgrade): Table - public fun upgradeAndRenameTable( - table: Table, - newName: String, + public fun upgradeTable( + oldTable: Table, upgrade: Table.Upgrade ): Table public fun upgradeAndRenameTable( table: Table, - newNamespace: Namespace, + newNamespace: Namespace? = null, newName: String, upgrade: Table.Upgrade ): Table - public fun upgradeAndRenameTable( - table: Table, - newNamespace: Namespace, - upgrade: Table.Upgrade, - newName: String - ): Table - public fun deleteTable(table: Table<*, omUE, RK>) - public fun deleteTableAfterModuleUpgrade(table: Table): Table public fun exportTable(table: Table<*, omUE, RK>) - public fun importTable( - namespace: Namespace = this.rootNs, name: String, - table: Table + table: Table, + namespace: Namespace = this.rootNs, name: String ): Table public fun importAndUpgradeTable( - namespace: Namespace = this.rootNs, name: String, table: Table, + namespace: Namespace = this.rootNs, name: String, upgrade: Table.Upgrade ): Table + // Object ------------------------------------------------------------------ + + public fun keepModuleScopedObject(obj: ModuleScopedObject): ModuleScopedObject + public fun renameModuleScopedObject( + obj: ModuleScopedObject, + newNamespace: Namespace? = null, newName: String + ): ModuleScopedObject + + public fun deleteModuleScopedObject(obj: ModuleScopedObject) + public fun deleteModuleScopedObjectAfterModuleUpgrade(obj: ModuleScopedObject): ModuleScopedObject + + public fun exportModuleScopedObject(obj: ModuleScopedObject<*, omUE, RK>) + public fun importModuleScopedObject( + obj: ModuleScopedObject, + namespace: Namespace = this.rootNs, name: String + ): ModuleScopedObject + + + // Module ------------------------------------------------------------------ + public fun keepModule(module: Module): Module public fun keepAndMoveModule(oldModule: Module, newNs: Namespace): Module public fun upgradeModule(oldModule: Module<*, RK>, template: Module.Template): Module - public fun upgradeAndMoveModule(oldModule: Module<*, RK>, newNs: Namespace, template: Module.Template): Module + public fun upgradeAndMoveModule( + oldModule: Module<*, RK>, + newNamespace: Namespace, + template: Module.Template + ): Module - public fun removeModule(oldModule: Module<*, RK>) - public fun removeModuleAfterUpgrade(oldModule: Module): Module + public fun deleteModule(oldModule: Module<*, RK>) + public fun deleteModuleAfterUpgrade(oldModule: Module): Module + public fun exportModule(table: Module<*, RK>) + + public fun importModule( + module: Module, + namespace: Namespace, + ): Module + + public fun importAndUpgradeModule( + module: Module, + namespace: Namespace, + upgrade: Module.Upgrade + ): Module + + // Statements -------------------------------------------------------------- - public fun addStatementAfterUpgrade(stmt: RawStatement.Void2Void.ImplementationsProvider<*>) public fun addStatementAfterUpgrade(stmt: _Statement.Void2Void<*, RK>) - - @LowLevelApi - public fun _addStatementAfterUpgrade(stmt: RawStatement.Params2Void.ImplementationsProvider): InputRow._Scope + public fun addStatementAfterUpgrade(stmt: RawStatement.Void2Void.ImplementationsProvider<*>) @LowLevelApi public fun _addStatementAfterUpgrade(stmt: _Statement.Params2Void): InputRow._Scope + + @LowLevelApi + public fun _addStatementAfterUpgrade(stmt: RawStatement.Params2Void.ImplementationsProvider): InputRow._Scope } \ No newline at end of file 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 0353924..105607d 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 @@ -9,20 +9,19 @@ import ru.landgrafhomyak.db.skeleton1.api.runtime.InputRow public interface TableUpgradeScope : TableConstructorScope { public fun keepColumn(c: Column): Column public fun renameColumn(c: Column, newName: String): Column - public fun removeColumn(c: Column<*, toUE, RK>) - public fun removeColumnAfterUpgrade(c: Column): Column + public fun deleteColumn(c: Column<*, toUE, RK>) + public fun deleteColumnAfterUpgrade(c: Column): Column public fun keepColumnWithBoundType(c: Column): Column public fun unbindAndKeepColumnWithBoundType(c: Column): Column public fun renameColumnWithBoundType(c: Column, newName: String): Column public fun unbindAndRenameColumnWithBoundType(c: Column, newName: String): Column - public fun removeColumnWithBoundType(c: Column<*, toUE, RK>) - public fun removeColumnWithBoundTypeAfterUpgrade(c: Column): Column + public fun deleteColumnWithBoundType(c: Column<*, toUE, RK>) + public fun deleteColumnWithBoundTypeAfterUpgrade(c: Column): Column public fun keepTableScopedObject(obj: TableScopedObject): TableScopedObject public fun renameTableScopedObject(obj: TableScopedObject, newName: String): TableScopedObject - public fun removeTableScopedObject(obj: TableScopedObject): TableScopedObject - + public fun deleteTableScopedObject(obj: TableScopedObject): TableScopedObject public fun addAlterStatementAfterUpgrade(stmt: _Statement.Void2Void<*, RK>) public fun addAlterStatementAfterUpgrade(stmt: RawStatement.Void2Void.ImplementationsProvider<*>)