diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/Driver.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/Driver.kt index e8191e2..891cb91 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/Driver.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/Driver.kt @@ -12,7 +12,7 @@ public interface Driver< @Suppress("unused") STATEMENT_CONSTRUCTOR__PARAMS_2_ROW : RawStatement.Params2Row.Constructor<*>, @Suppress("unused") STATEMENT_CONSTRUCTOR__PARAMS_2_ROW_OR_NULL : RawStatement.Params2RowOrNull.Constructor<*>, @Suppress("unused") STATEMENT_CONSTRUCTOR__PARAMS_2_TABLE : RawStatement.Params2Table.Constructor<*>, - @Suppress("unused") OBJECT_OPERATIONS : ObjectOperations<*> + @Suppress("unused") OBJECT_OPERATIONS : ObjectClass<*> > { @ReflectionApi public fun isImplements(version: ApiVersion): Boolean @@ -26,5 +26,5 @@ public interface Driver< public fun assertImplemented_rawStatement_params2row(ip: RawStatement.Params2Row.ImplementationsProvider<*>) public fun assertImplemented_rawStatement_params2rowOrNull(ip: RawStatement.Params2RowOrNull.ImplementationsProvider<*>) public fun assertImplemented_rawStatement_params2table(ip: RawStatement.Params2Table.ImplementationsProvider<*>) - public fun assertImplemented_objectOperations(ip: ObjectOperations.ImplementationsProvider) + public fun assertImplemented_objectOperations(ip: ObjectClass.ImplementationsProvider) } \ No newline at end of file diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/ObjectClass.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/ObjectClass.kt new file mode 100644 index 0000000..58ed77a --- /dev/null +++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/ObjectClass.kt @@ -0,0 +1,13 @@ +package ru.landgrafhomyak.db.skeleton1.api + +public interface ObjectClass<@Suppress("unused") UE : Any?> { + public fun interface ImplementationsProvider { + public fun provideStatementImplementations_databaseType(scope: Scope) + + public interface Scope { + public fun > addImplementation( + key: Driver<*, *, *, *, *, *, *, *, *, CLASS>, type: CLASS + ) + } + } +} \ No newline at end of file diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/ObjectOperations.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/ObjectOperations.kt deleted file mode 100644 index f4c6358..0000000 --- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/ObjectOperations.kt +++ /dev/null @@ -1,16 +0,0 @@ -package ru.landgrafhomyak.db.skeleton1.api - -public interface ObjectOperations<@Suppress("unused") UE : Any?> { - public fun interface ImplementationsProvider { - public fun provideStatementImplementations_databaseType(scope: Scope) - - public interface Scope { - @Suppress("ERROR_SUPPRESSION", "BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER", "INCONSISTENT_TYPE_PARAMETER_BOUNDS") - public fun addImplementation( - key: Driver<*, *, *, *, *, *, *, *, *, OPERATIONS_UNBOUND>, type: OPERATIONS - ) where OPERATIONS_UNBOUND : ObjectOperations<*>, - OPERATIONS : ObjectOperations, - OPERATIONS : OPERATIONS_UNBOUND - } - } -} \ No newline at end of file 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 a9ab4b4..15b8fd3 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 @@ -2,7 +2,7 @@ package ru.landgrafhomyak.db.skeleton1.api.module import kotlin.jvm.JvmName import ru.landgrafhomyak.db.skeleton1.api.LowLevelApi -import ru.landgrafhomyak.db.skeleton1.api.ObjectOperations +import ru.landgrafhomyak.db.skeleton1.api.ObjectClass import ru.landgrafhomyak.db.skeleton1.api.statement.RawStatement import ru.landgrafhomyak.db.skeleton1.api.statement._Statement import ru.landgrafhomyak.db.skeleton1.api.table.Table @@ -22,7 +22,7 @@ public interface ModuleConstructorScope { public fun moduleScopedObject( namespace: Namespace = this.rootNs, - name: String, metadata: ObjectOperations.ImplementationsProvider + name: String, metadata: ObjectClass.ImplementationsProvider ): ModuleScopedObject public fun substituteModule(rootNs: Namespace, template: Module.Template): Module 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 07bcd9e..9bceba0 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 @@ -2,7 +2,7 @@ package ru.landgrafhomyak.db.skeleton1.api.module import kotlin.jvm.JvmName import ru.landgrafhomyak.db.skeleton1.api.ReflectionApi -import ru.landgrafhomyak.db.skeleton1.api.ObjectOperations +import ru.landgrafhomyak.db.skeleton1.api.ObjectClass public interface ModuleScopedObject { @ReflectionApi @@ -17,5 +17,5 @@ public interface ModuleScopedObject { public val pathFromModuleRoot: List @ReflectionApi - public val meta: ObjectOperations.ImplementationsProvider + public val objectClassProvider: ObjectClass.ImplementationsProvider } \ No newline at end of file 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 1b39b0b..584c37f 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 @@ -2,7 +2,7 @@ package ru.landgrafhomyak.db.skeleton1.api.table import ru.landgrafhomyak.db.skeleton1.api.LowLevelApi import ru.landgrafhomyak.db.skeleton1.api.DatabaseType -import ru.landgrafhomyak.db.skeleton1.api.ObjectOperations +import ru.landgrafhomyak.db.skeleton1.api.ObjectClass import ru.landgrafhomyak.db.skeleton1.api.statement.RawStatement import ru.landgrafhomyak.db.skeleton1.api.statement._Statement import ru.landgrafhomyak.db.skeleton1.api.runtime.InputRow @@ -32,7 +32,7 @@ public interface TableConstructorScope { alterCreateColumn: RawStatement.Params2Void.ImplementationsProvider ): InputRow._Scope> - public fun tableScopedObject(name: String, metadata: ObjectOperations.ImplementationsProvider): TableScopedObject + public fun tableScopedObject(name: String, metadata: ObjectClass.ImplementationsProvider): TableScopedObject 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 3d0649c..9e4f991 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 @@ -2,7 +2,7 @@ package ru.landgrafhomyak.db.skeleton1.api.table import kotlin.jvm.JvmName import ru.landgrafhomyak.db.skeleton1.api.ReflectionApi -import ru.landgrafhomyak.db.skeleton1.api.ObjectOperations +import ru.landgrafhomyak.db.skeleton1.api.ObjectClass public interface TableScopedObject { @ReflectionApi @@ -12,7 +12,8 @@ public interface TableScopedObject { public val table: Table @ReflectionApi - public val meta: ObjectOperations.ImplementationsProvider + public val objectClassProvider: ObjectClass.ImplementationsProvider + @ReflectionApi @Suppress("INAPPLICABLE_JVM_NAME")