Details
-
Type: Improvement
-
Status: Closed
-
Priority: Minor
-
Resolution: Won't Fix
-
Affects Version/s: 1.2.2
-
Fix Version/s: None
-
Component/s: Annotations
-
Labels:None
Description
@XStreamConverter currently works on regular fields and fields of type Collection, essentially taking each element of the collection and converting it using the given converter.
The same behavior should be exposed for Map fields. An example usage could be:
public class FirstObject {
// Expected: use the given converter to marshal the keys of each map entry
@XStreamConverter(keyConverter=SecondObjectConverter.class)
private Map<SecondObject, String> params;
// Expected: use the given converter to marshal the values of each map entry
@XStreamConverter(valueConverter=SecondObjectConverter.class)
private Map<String, SecondObject> moreParams;
// Expected: use both converters to marshal a map entry
@XStreamConverter(keyConverter=SecondObjectConverter.class)
@XStreamConverter(valueConverter=ThirdObjectConverter.class)
private Map<SecondObject, ThirdObject> evenMoreParams;
}
Developer mailing list excerpt:
BB> 2. @XStreamConverter works brilliantly on Lists, allowing me to use my
BB> custom converter on the elements of the list.
BB> In a perfect world, I'd like
BB> to be able to add @XStreamConverter annotations on a Map, too, using
BB> it to convert the key and / or the value of the Map. This might be
BB> ambigious but I still wanted to start a discussion on this one.
GS>> Jira this one also. Can you include examples of what you want working
GS>> (i.e. testcases?)
Up til version 1.2.2, i have been using annotation for MapConverter using the following @XStreamConverters(
{@XStreamConverter(MyMapConverter.class)}) and it works well but now it is broken.