Dostaję jsona, z którego robie sobie object. No wymyśle sobie abstrakcyjnego zwierzaczka:

public class Zwierzaczki {
    private TypZwierzaczka typZwierzaczka;
    private String predkoscLatania;
    private String predkoscPlywania;
    private String predkoscBiegania;
    private String sredniaWaga;
    private String sredniaWielkoscSkrzydel;
}

Chce sobie teraz sprawdzić czy json jest poprawny, czyli jeżeli np. typZwierzaczka to "ryba", to mam wypełnione pola sredniaWaga, predkoscPlywania, a reszta jest nullami, jeżeli typ to "ptak", to mam wage, wielość skrzydeł, predkość latania, a reszta jest nullami.

Jak najabardziej elegancko zrobić takie walidator, który zależnie od typu pierwszego pola, ustawi reszte na "required null" lub "required not null"?