diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/ApiVersion.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/ApiVersion.kt index f639509..dbfadf7 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/ApiVersion.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/ApiVersion.kt @@ -1,24 +1,11 @@ package ru.landgrafhomyak.db.skeleton1.api -import kotlin.jvm.JvmField - -public abstract class ApiVersion private constructor(public val str: String) { - override fun equals(other: Any?): Boolean { - if (other == null) return false - if (other !is ApiVersion) return false - return this === other - } +public enum class ApiVersion(public val str: String) { + V_0_0("0.0") { + override fun isImplements(v: ApiVersion) = this === v + }; override fun toString(): String = "" - override fun hashCode(): Int = this.str.hashCode() - - public abstract fun isImplements(lower: ApiVersion): Boolean - - public companion object { - @JvmField - public val V_0_0: ApiVersion = object : ApiVersion("0.0") { - override fun isImplements(lower: ApiVersion) = this === lower - } - } + public abstract fun isImplements(v: ApiVersion): Boolean } \ No newline at end of file diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/DriverMetainfo.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/DriverMetainfo.kt index f596c46..939b64e 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/DriverMetainfo.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/DriverMetainfo.kt @@ -14,5 +14,6 @@ public interface DriverMetainfo< @Suppress("unused") STATEMENT_CONSTRUCTOR__PARAMS_2_TABLE : RawStatement.Params2Table.Constructor<*>, @Suppress("unused") OBJECT_OPERATIONS : ObjectOperations<*> > { - public val apiVersion: ApiVersion + @ReflectionApi + public fun isImplements(version: ApiVersion): Boolean } \ No newline at end of file diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/SinceApi.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/SinceApi.kt new file mode 100644 index 0000000..0b94b57 --- /dev/null +++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/skeleton1/api/SinceApi.kt @@ -0,0 +1,4 @@ +package ru.landgrafhomyak.db.skeleton1.api + +@Retention(AnnotationRetention.BINARY) +public annotation class SinceApi(val version: ApiVersion)