All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.maryk.test.models.EmbeddedMarykObject.kt Maven / Gradle / Ivy

package maryk.test.models

import maryk.core.models.ObjectDataModel
import maryk.core.properties.definitions.embedObject
import maryk.core.properties.definitions.string
import maryk.core.values.ObjectValues

data class EmbeddedMarykObject(
    val value: String,
    val model: EmbeddedMarykObject? = null,
    val marykModel: TestMarykObject? = null
) {
    companion object : ObjectDataModel(EmbeddedMarykObject::class) {
        val value by string(
            index = 1u,
            getter = EmbeddedMarykObject::value
        )
        val model by embedObject(
            index = 2u,
            getter = EmbeddedMarykObject::model,
            dataModel = { EmbeddedMarykObject },
            required = false
        )
        val marykModel by embedObject(
            index = 3u,
            getter = EmbeddedMarykObject::marykModel,
            dataModel = { TestMarykObject },
            required = false
        )

        override fun invoke(values: ObjectValues) =
            EmbeddedMarykObject(
                value = values(value.index),
                model = values(model.index),
                marykModel = values(marykModel.index)
            )

        override fun equals(other: Any?) =
            other is ObjectDataModel<*, *> &&
                this.Meta.name == other.Meta.name &&
                this.size == other.size
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy