java - Can generic XmlAdapter be written -


i know, can use raw types write xmladapter, can use generic types. tried reading api ( link ), did not notice clue this.

for example map:

i want use, like:

@xmljavatypeadapter(genericmapadapter<string, double>.class)// private final hashmap<string, double> depwagesum = // new hashmap<string, double>(); 

to get

<depwagesum>     <entry key="ri">289.001</entry>     <entry key="vt">499.817</entry>     <entry key="hi">41.824</entry>     ... <depwagesum> 

and class in lines of:

@suppresswarnings("serial") public class genericmapadapter<k, v> extends xmladapter<genericmapadapter.maptype<k, v>, map<k, v>> {     public static class maptype<k, v> {         @xmlvalue protected final list<maptypeentry<k, v>> entry = new arraylist<maptypeentry<k, v>>();         public static class maptypeentry<k, v> {             @xmlattribute protected k key;             @xmlvalue protected v value;              private maptypeentry() {};             public static <k, v> maptypeentry<k, v> of(final k k, final v v) {                 return new maptypeentry<k, v>() {{this.key = k; this.value = v;}};     }   }   }     @override public map<k, v> unmarshal(final genericmapadapter.maptype<k, v> v) throws exception {         return new hashmap<k, v>() {{ (genericmapadapter.maptype.maptypeentry<k, v> myentrytype : v.entry)                     this.put(myentrytype.key, myentrytype.value);}};     }     @override public maptype<k, v> marshal(final map<k, v> v) throws exception {         return new genericmapadapter.maptype<k, v>() {{for (k key : v.keyset())                     this.entry.add(maptypeentry.of(key, v.get(key)));}}; }   } 

you not able described. type parameters not retained class. introduce simple subclasses leverage logic genericmapadapter:

public class stringdoublemapadapter extends genericmapadapter<string, double> { } 

then use adapter sub class on property:

@xmljavatypeadapter(stringdoublemapadapter.class)// private final hashmap<string, double> depwagesum = // new hashmap<string, double>(); 

for more information on xmladapter see:


Comments

Popular posts from this blog

Add email recipient to all new Trac tickets -

400 Bad Request on Apache/PHP AddHandler wrapper -

php - Change action and image src url's with jQuery -