diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/DatabaseType.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/DatabaseType.kt index 190e1d9..925fd7f 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/DatabaseType.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/DatabaseType.kt @@ -7,7 +7,7 @@ public interface DatabaseType<@Suppress("unused") RUNTIME_TYPE : Any?> { public interface Scope { @Suppress("ERROR_SUPPRESSION", "BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER", "INCONSISTENT_TYPE_PARAMETER_BOUNDS") public fun addImplementation( - key: DriverType, type: DATABASE_TYPE + key: DriverMetainfo, type: DATABASE_TYPE ) where DATABASE_TYPE_UNBOUND : DatabaseType<*>, DATABASE_TYPE : DatabaseType, DATABASE_TYPE : DATABASE_TYPE_UNBOUND diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/DriverMetainfo.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/DriverMetainfo.kt new file mode 100644 index 0000000..edce1b4 --- /dev/null +++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/DriverMetainfo.kt @@ -0,0 +1,17 @@ +package ru.landgrafhomyak.db.skeleton1.api + +import ru.landgrafhomyak.db.skeleton1.api.statement.RawStatement + +public interface DriverMetainfo< + @Suppress("unused") DATABASE_TYPE : DatabaseType<*>, + @Suppress("unused") STATEMENT_CONSTRUCTOR__VOID_2_VOID : RawStatement.Void2Void.Constructor<*>, + @Suppress("unused") STATEMENT_CONSTRUCTOR__VOID_2_ROW : RawStatement.Void2Row.Constructor<*>, + @Suppress("unused") STATEMENT_CONSTRUCTOR__VOID_2_ROW_OR_NULL : RawStatement.Void2RowOrNull.Constructor<*>, + @Suppress("unused") STATEMENT_CONSTRUCTOR__VOID_2_TABLE : RawStatement.Void2Table.Constructor<*>, + @Suppress("unused") STATEMENT_CONSTRUCTOR__PARAMS_2_VOID : RawStatement.Params2Void.Constructor<*>, + @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<*> + > { +} \ No newline at end of file diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/DriverType.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/DriverType.kt deleted file mode 100644 index 36dad2d..0000000 --- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/DriverType.kt +++ /dev/null @@ -1,17 +0,0 @@ -package ru.landgrafhomyak.db.skeleton1.api - -import ru.landgrafhomyak.db.skeleton1.api.statement.RawStatement - -public interface DriverType< - DATABASE_TYPE : DatabaseType<*>, - STATEMENT_CONSTRUCTOR__VOID_2_VOID : RawStatement.Void2Void.Constructor<*>, - STATEMENT_CONSTRUCTOR__VOID_2_ROW : RawStatement.Void2Row.Constructor<*>, - STATEMENT_CONSTRUCTOR__VOID_2_ROW_OR_NULL : RawStatement.Void2RowOrNull.Constructor<*>, - STATEMENT_CONSTRUCTOR__VOID_2_TABLE : RawStatement.Void2Table.Constructor<*>, - STATEMENT_CONSTRUCTOR__PARAMS_2_VOID : RawStatement.Params2Void.Constructor<*>, - STATEMENT_CONSTRUCTOR__PARAMS_2_ROW : RawStatement.Params2Row.Constructor<*>, - STATEMENT_CONSTRUCTOR__PARAMS_2_ROW_OR_NULL : RawStatement.Params2RowOrNull.Constructor<*>, - STATEMENT_CONSTRUCTOR__PARAMS_2_TABLE : RawStatement.Params2Table.Constructor<*>, - OBJECT_OPERATIONS : ObjectOperations<*> -> { -} \ 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 index 08472b4..5797d2a 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/ObjectOperations.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/ObjectOperations.kt @@ -7,7 +7,7 @@ public interface ObjectOperations<@Suppress("unused") UE : Any?> { public interface Scope { @Suppress("ERROR_SUPPRESSION", "BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER", "INCONSISTENT_TYPE_PARAMETER_BOUNDS") public fun addImplementation( - key: DriverType<*, *, *, *, *, *, *, *, *, OPERATIONS_UNBOUND>, type: OPERATIONS + key: DriverMetainfo<*, *, *, *, *, *, *, *, *, OPERATIONS_UNBOUND>, type: OPERATIONS ) where OPERATIONS_UNBOUND : ObjectOperations<*>, OPERATIONS : ObjectOperations, OPERATIONS : OPERATIONS_UNBOUND diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/errors/definition/EntityNotImplementedException.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/errors/definition/EntityNotImplementedException.kt index 0e6284e..d81d11b 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/errors/definition/EntityNotImplementedException.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/errors/definition/EntityNotImplementedException.kt @@ -4,37 +4,37 @@ import kotlin.jvm.JvmStatic import kotlinx.coroutines.CopyableThrowable import kotlinx.coroutines.ExperimentalCoroutinesApi import ru.landgrafhomyak.db.skeleton1.api.DebugApi -import ru.landgrafhomyak.db.skeleton1.api.DriverType +import ru.landgrafhomyak.db.skeleton1.api.DriverMetainfo import ru.landgrafhomyak.db.skeleton1.api.errors.SchemaDefinitionException @DebugApi @OptIn(ExperimentalCoroutinesApi::class) public class EntityNotImplementedException : SchemaDefinitionException, CopyableThrowable { public val provider: Any - public val driver: DriverType<*, *, *, *, *, *, *, *, *, *> + public val driver: DriverMetainfo<*, *, *, *, *, *, *, *, *, *> - public constructor(provider: Any, driver: DriverType<*, *, *, *, *, *, *, *, *, *>) : super(formatMessage(provider, driver)) { + public constructor(provider: Any, driver: DriverMetainfo<*, *, *, *, *, *, *, *, *, *>) : super(formatMessage(provider, driver)) { this.provider = provider this.driver = driver } - public constructor(provider: Any, driver: DriverType<*, *, *, *, *, *, *, *, *, *>, customMessage: String) : super(customMessage) { + public constructor(provider: Any, driver: DriverMetainfo<*, *, *, *, *, *, *, *, *, *>, customMessage: String) : super(customMessage) { this.provider = provider this.driver = driver } - public constructor(provider: Any, driver: DriverType<*, *, *, *, *, *, *, *, *, *>, customMessage: String, cause: Throwable) : super(customMessage, cause) { + public constructor(provider: Any, driver: DriverMetainfo<*, *, *, *, *, *, *, *, *, *>, customMessage: String, cause: Throwable) : super(customMessage, cause) { this.provider = provider this.driver = driver } - public constructor(provider: Any, driver: DriverType<*, *, *, *, *, *, *, *, *, *>, cause: Throwable) : super(formatMessage(provider, driver), cause) { + public constructor(provider: Any, driver: DriverMetainfo<*, *, *, *, *, *, *, *, *, *>, cause: Throwable) : super(formatMessage(provider, driver), cause) { this.provider = provider this.driver = driver } public constructor( - provider: Any, driver: DriverType<*, *, *, *, *, *, *, *, *, *>, + provider: Any, driver: DriverMetainfo<*, *, *, *, *, *, *, *, *, *>, message: String?, cause: Throwable?, @Suppress("unused", "LocalVariableName") _marker: Unit ) : super(message, cause, _marker) { @@ -55,7 +55,7 @@ public class EntityNotImplementedException : SchemaDefinitionException, Copyable public companion object { @JvmStatic public fun formatMessage( - provider: Any, driver: DriverType<*, *, *, *, *, *, *, *, *, *> + provider: Any, driver: DriverMetainfo<*, *, *, *, *, *, *, *, *, *> ): String = "$provider doesn't provides implementation for driver $driver" } } \ No newline at end of file diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/statement/RawStatement.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/statement/RawStatement.kt index c7954cd..7c58421 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/statement/RawStatement.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/statement/RawStatement.kt @@ -1,6 +1,6 @@ package ru.landgrafhomyak.db.skeleton1.api.statement -import ru.landgrafhomyak.db.skeleton1.api.DriverType +import ru.landgrafhomyak.db.skeleton1.api.DriverMetainfo public interface RawStatement : _Statement { public override val uExt: qUE @@ -16,7 +16,7 @@ public interface RawStatement : _Statement { @Suppress("ERROR_SUPPRESSION", "BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER", "INCONSISTENT_TYPE_PARAMETER_BOUNDS") public fun addImplementation( - driverType: DriverType<*, STATEMENT_CONSTRUCTOR_UNBOUND, *, *, *, *, *, *, *, *>, + driverMetainfo: DriverMetainfo<*, STATEMENT_CONSTRUCTOR_UNBOUND, *, *, *, *, *, *, *, *>, constructor: STATEMENT_CONSTRUCTOR ) where STATEMENT_CONSTRUCTOR_UNBOUND : Constructor<*>, STATEMENT_CONSTRUCTOR : Constructor, @@ -36,7 +36,7 @@ public interface RawStatement : _Statement { @Suppress("ERROR_SUPPRESSION", "BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER", "INCONSISTENT_TYPE_PARAMETER_BOUNDS") public fun addImplementation( - driverType: DriverType<*, *, STATEMENT_CONSTRUCTOR_UNBOUND, *, *, *, *, *, *, *>, + driverMetainfo: DriverMetainfo<*, *, STATEMENT_CONSTRUCTOR_UNBOUND, *, *, *, *, *, *, *>, constructor: STATEMENT_CONSTRUCTOR ) where STATEMENT_CONSTRUCTOR_UNBOUND : Constructor<*>, STATEMENT_CONSTRUCTOR : Constructor, @@ -56,7 +56,7 @@ public interface RawStatement : _Statement { @Suppress("ERROR_SUPPRESSION", "BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER", "INCONSISTENT_TYPE_PARAMETER_BOUNDS") public fun addImplementation( - driverType: DriverType<*, *, *, STATEMENT_CONSTRUCTOR_UNBOUND, *, *, *, *, *, *>, + driverMetainfo: DriverMetainfo<*, *, *, STATEMENT_CONSTRUCTOR_UNBOUND, *, *, *, *, *, *>, constructor: STATEMENT_CONSTRUCTOR ) where STATEMENT_CONSTRUCTOR_UNBOUND : Constructor<*>, STATEMENT_CONSTRUCTOR : Constructor, @@ -77,7 +77,7 @@ public interface RawStatement : _Statement { @Suppress("ERROR_SUPPRESSION", "BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER", "INCONSISTENT_TYPE_PARAMETER_BOUNDS") public fun addImplementation( - driverType: DriverType<*, *, *, *, STATEMENT_CONSTRUCTOR_UNBOUND, *, *, *, *, *>, + driverMetainfo: DriverMetainfo<*, *, *, *, STATEMENT_CONSTRUCTOR_UNBOUND, *, *, *, *, *>, constructor: STATEMENT_CONSTRUCTOR ) where STATEMENT_CONSTRUCTOR_UNBOUND : Constructor<*>, STATEMENT_CONSTRUCTOR : Constructor, @@ -97,7 +97,7 @@ public interface RawStatement : _Statement { @Suppress("ERROR_SUPPRESSION", "BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER", "INCONSISTENT_TYPE_PARAMETER_BOUNDS") public fun addImplementation( - driverType: DriverType<*, *, *, *, *, STATEMENT_CONSTRUCTOR_UNBOUND, *, *, *, *>, + driverMetainfo: DriverMetainfo<*, *, *, *, *, STATEMENT_CONSTRUCTOR_UNBOUND, *, *, *, *>, constructor: STATEMENT_CONSTRUCTOR ) where STATEMENT_CONSTRUCTOR_UNBOUND : Constructor<*>, STATEMENT_CONSTRUCTOR : Constructor, @@ -117,7 +117,7 @@ public interface RawStatement : _Statement { @Suppress("ERROR_SUPPRESSION", "BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER", "INCONSISTENT_TYPE_PARAMETER_BOUNDS") public fun addImplementation( - driverType: DriverType<*, *, *, *, *, *, STATEMENT_CONSTRUCTOR_UNBOUND, *, *, *>, + driverMetainfo: DriverMetainfo<*, *, *, *, *, *, STATEMENT_CONSTRUCTOR_UNBOUND, *, *, *>, constructor: STATEMENT_CONSTRUCTOR ) where STATEMENT_CONSTRUCTOR_UNBOUND : Constructor<*>, STATEMENT_CONSTRUCTOR : Constructor, @@ -137,7 +137,7 @@ public interface RawStatement : _Statement { @Suppress("ERROR_SUPPRESSION", "BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER", "INCONSISTENT_TYPE_PARAMETER_BOUNDS") public fun addImplementation( - driverType: DriverType<*, *, *, *, *, *, *, STATEMENT_CONSTRUCTOR_UNBOUND, *, *>, + driverMetainfo: DriverMetainfo<*, *, *, *, *, *, *, STATEMENT_CONSTRUCTOR_UNBOUND, *, *>, constructor: STATEMENT_CONSTRUCTOR ) where STATEMENT_CONSTRUCTOR_UNBOUND : Constructor<*>, STATEMENT_CONSTRUCTOR : Constructor, @@ -157,7 +157,7 @@ public interface RawStatement : _Statement { @Suppress("ERROR_SUPPRESSION", "BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER", "INCONSISTENT_TYPE_PARAMETER_BOUNDS") public fun addImplementation( - driverType: DriverType<*, *, *, *, *, *, *, *, STATEMENT_CONSTRUCTOR_UNBOUND, *>, + driverMetainfo: DriverMetainfo<*, *, *, *, *, *, *, *, STATEMENT_CONSTRUCTOR_UNBOUND, *>, constructor: STATEMENT_CONSTRUCTOR ) where STATEMENT_CONSTRUCTOR_UNBOUND : Constructor<*>, STATEMENT_CONSTRUCTOR : Constructor,