Nikita Klimenko [JB]
10/02/2024, 6:36 PM@DataSchemaYogeshvu
10/04/2024, 12:10 AMNikita Klimenko [JB]
10/07/2024, 3:40 PM@DataSchema
sealed interface Test {
    val a: Int
}
@DataSchema
interface Test2 : Test {
    val b: String
}
@DataSchema
interface Test3 : Test {
    val c: String
}
fun transform(df: DataFrame<*>) {
  val typed = Test.of(df)
  when (typed) {
    is Test1 -> ...
    is Test2 -> ...
    is Test3 -> ...
    null -> ...
  }
}Yogeshvu
10/08/2024, 1:02 PMNikita Klimenko [JB]
10/08/2024, 1:19 PMisinstance@SealedDataSchema
sealed interface Test {
    val a: Int
    
    companion object
}
@DataSchema
interface Test2 : Test {
    val b: String
}
@DataSchema
interface Test3 : Test {
    val c: String
}sealed class Wrapper {
    abstract val df: DataFrame<Test>
}
class Wrapper2 : Wrapper {
    override val df: DataFrame<Test2>
}
class Wrapper3 : Wrapper {
    override val df: DataFrame<Test3>
}
fun Test.Companion.of(df: DataFrame<*>): Wrapper? {
    TODO("need to figure out this part, need to pick most suitable schema for df")
}fun transform(df: DataFrame<*>) {
  val typed = Test.of(df)
  when (typed) {
    is Wrapper -> typed.df.a
    is Wrapper2 -> typed.df.b
    is Wrapper3 -> typed.df.c
    null -> ...
  }
}Yogeshvu
10/08/2024, 1:23 PMNikita Klimenko [JB]
10/08/2024, 1:26 PM