Мне нужно проанализировать объект, который содержит свойство «триггеры», которое является List<Trigger>
. Этот список может содержать три типа триггеров: Пользовательский и Событие.
Вот мои триггерные классы:
@JsonClass(generateAdapter = true)
open class Trigger(open val type: String,
open val source: String,
open val tags: Properties? = mutableMapOf())
@JsonClass(generateAdapter = true)
data class CustomTrigger(override val type: String,
override val source: String,
override val tags: Properties?,
//some other fields
) : Trigger(type, source, tags)
@JsonClass(generateAdapter = true)
data class EventTrigger(override val type: String,
override val source: String,
override val tags: Properties?,
//some other fields
) : Trigger(type, source, tags)
Мой объект, который я получаю от сервера, выглядит так:
@JsonClass(generateAdapter = true)
data class Rule(val id: String,
val triggers: MutableList<Trigger>,
//some other fields
)
Используя сгенерированный адаптер при разборе, я получаю триггеры только для полей класса Trigger
. Мне нужно реализовать логику для анализа EventTrigger
, если тип является «событием» или CustomTrigger
, если тип «пользовательский».
Как я могу сделать это с Moshi
?
Нужно ли мне писать ручной анализатор для моего Rule
объекта?
Любая идея приветствуется. Спасибо