2016-05-04 12 views
1

Meine Anforderung bestand darin, ein Java-Objekt einem anderen zuzuordnen. Aber das war bedingtes Mapping alsBedingtes Mapping-Framework in Java

folgt
// Create Y from data in X 
// If X has a=A and b=B then set p=P in Y else set p=P' 
// If X has c that starts with "CC" then set q=Q in Y else set q=Q' 
// so on 

Ich erforschte Dozer & MapStruct, aber nicht fand sie geeignet für oben genannte Bedingungen unterstützen, ohne mit vielen Anmerkungen verschmutzt Code.

Gibt es eine Bibliothek, die solche bedingten Zuordnungen oder Regeln sauber abstrahiert? Ich meine, einige Rahmen, die Regeln in einer Sequenz führt und schließlich endet Y von X Erstellen

// Here ChainOfTransformers may be configuration driven transformation logic 
ExpectedLibrary.map(SourceEntity, DestinationEntity, ChainOfTransformers) 

Bitte zeigen Sie mir Quelleneinheiten zu öffnen, die ich erkunden

+0

Da die Logik, die Sie offensichtlich haben, scheint ziemlich kompliziert zu sein, warum nicht die erzeugte Ausgabe von z. MapStruct und bereichern Sie es mit Ihrer eigenen Logik? –

Antwort

1

Wenn MapStruct verwenden, Sie könnten einen Blick bei decorators und after-mapping Rückrufe. Mit beiden können Sie zusätzliche Zuordnungslogik von Hand ausführen.

Persönlich denke ich, dass Sie besser sind, indem Sie diese Routinen mit einfachem Java-Code anstelle von irgendwelchen "konfigurierten Regeln" implementieren.