MapStruct: gruppierung von @Mapping

guguli

Bekanntes Mitglied
Hallo zusammen,

gibt es eine Möglichkeit, so dass ich mehrere @Mapping(source,target) gruppieren kann, überhalb einer methode?

Also nehmen wir an wir haben folgende Interface:

Code:
@Mapper(uses = { BigDecimalMapper.class})
public interface VerarbeitungXml2017Mapper {
   
@Mapping(source = "k1", target = "t1")
@Mapping(source = "k2", target = "t2")
@Mapping(source = "k3", target = "t3")
@Mapping(source = "k4", target = "t4")
@Mapping(source = "k5", target = "t5")
@Mapping(source = "k6", target = "t6")
void adatpiere(K k, @MappingTarget KType kType);
}
nun will ich diese Mapping so machen, wenn Bedingung 1 erfüllt ist dann soll k1-k3 gemappt werden und wenn bedingung2 erfüllt ist k4-k6.

Gibt es eine Möglichkeit sowas zu realisieren?

Danke
 

mihe7

Top Contributor
Gibt es eine Möglichkeit sowas zu realisieren?
Klar, mit stinknormalem Java-Code.

Vielleicht verstehe ich hier etwas nicht, aber wenn ich mir Deine Posts zum Thema ansehe, habe ich den Eindruck, dieses MapDingens bereitet mehr Probleme als es löst. Das Framework ist überaus komplex (das Teil spezifiziert 291 Klassen, Interfaces, Enums), in das man sich erst einarbeiten muss. Am Ende ersetzt man dann Java-Code, den jeder versteht, durch Framework-spezifische Annotationen.

Mal ein zufällig gewähltes Beispiel aus der API-Doku, dort heißt es
Java:
 @Mapping(
     target = "someProp",
     expression = "java(new TimeAndFormat( s.getTime(), s.getFormat() ))"
 )
wird übersetzt zu
Java:
targetBean.setSomeProp( new TimeAndFormat( s.getTime(), s.getFormat() ) )

Wo liegt jetzt da genau der Vorteil?
 

Ähnliche Java Themen

Neue Themen


Oben