How to fallback on 'all' enums if values don't match in Moshi

Viewed 210

Similar to How to fallback on a enum if values don't match in OpenAPI generator's Moshi and How to fallback on a enum if values don't match in OpenAPI generator's Moshi

How can we add a custom enum adapter for moshi to support nullable or unknown/fallback values? But do it in a way for all enums?

Other answers provide something similar to

.add(Gender::class.java, NullableEnumAdapter<Gender>())

And it works. In project we have 26 enums. It does not seem practical to do this manually like:

    .add(GetFilteredObjectivesData.FilterReset::class.java, CustomEnumJsonAdapter.create(GetFilteredObjectivesData.FilterReset::class.java).withUnknownFallback(null))
    .add(DomainData.Type::class.java, CustomEnumJsonAdapter.create(DomainData.Type::class.java).withUnknownFallback(null))
    .add(DomainData.JxMode::class.java, CustomEnumJsonAdapter.create(DomainData.JxMode::class.java).withUnknownFallback(null))
    .add(CommonFacility.BusinessType::class.java, CustomEnumJsonAdapter.create(CommonFacility.BusinessType::class.java).withUnknownFallback(null))
    .add(CommonFacility.FacilityType::class.java, CustomEnumJsonAdapter.create(CommonFacility.FacilityType::class.java).withUnknownFallback(null))
    .add(TokenData.Features::class.java, CustomEnumJsonAdapter.create(TokenData.Features::class.java).withUnknownFallback(null))

Any way to do this for all of them? Add a custom enum adapter for all enums?

0 Answers
Related