Open khirschmann opened 6 years ago
When mapping multiple fields to a map AND one of those fields is null all members listed before this field in class are lost (map is set to null).
`public class Source {
@JMap("map") private String id; @JMap("map") private Integer quantity; @JMap("map") private Date purchase; public String getId() { return id; } public void setId(String id) { this.id = id; } public Integer getQuantity() { return quantity; } public void setQuantity(Integer quantity) { this.quantity = quantity; } public Date getPurchase() { return purchase; } public void setPurchase(Date purchase) { this.purchase = purchase; } @JMapConversion(from = { "id", "quantity", "purchase" }, to = "map", type = Type.DYNAMIC) public static String toAttributeConversion() { return " ${destination} = (${destination} != null ? ${destination} : new java.util.HashMap());" + " System.out.println(\"Converting: \" + \"${source.name}\"); " + " ${destination}.put(\"${source.name}\", ${source}); " + " return ${destination}; "; }
}
public class Destination {
private HashMap<String, Object> map; public HashMap<String, Object> getMap() { return map; } public void setMap(HashMap<String, Object> map) { this.map = map; }
public class Main {
public static void main(String[] args) { Source s = new Source(); s.setId("Id"); s.setPurchase(new Date()); JMapper<Destination, Source> mapper = new JMapper<Destination, Source>(Destination.class, Source.class); Destination d = mapper.getDestination(s); System.out.println(d.getMap().toString()); }
} ` Output: Converting: id Converting: purchase {purchase=Thu Oct 12 14:04:53 CEST 2017}
Perhaps that is the wrong way to do it?
Thx for your help. Kevin
Hi @khirschmann,
I need to do a test, let you know as soon as possible
Hi @khirschmann, I need to do a test, let you know as soon as possible
Have you done this test?
When mapping multiple fields to a map AND one of those fields is null all members listed before this field in class are lost (map is set to null).
`public class Source {
}
public class Destination {
}
public class Main {
} ` Output: Converting: id Converting: purchase {purchase=Thu Oct 12 14:04:53 CEST 2017}
Perhaps that is the wrong way to do it?
Thx for your help. Kevin