Можно ли написать общий XmlAdapter

Я знаю, что могу использовать необработанные типы для написания XMLAdapter, но могу ли я использовать общие типы. Я пробовал читать API ( ссылка ), но даже не заметил намека на это.

Например, карта:

Я хочу использовать, что-то вроде:

@XmlJavaTypeAdapter(GenericMapAdapter.class)//
private final HashMap depWageSum = //
new HashMap();

чтобы получить


    289.001
    499.817
    41.824
    ...

И сам класс, вероятно, будет выглядеть примерно так:

@SuppressWarnings("serial") public class GenericMapAdapter extends XmlAdapter, Map> {
    public static class MapType {
        @XmlValue protected final List> entry = new ArrayList>();
        public static class MapTypeEntry {
            @XmlAttribute protected K key;
            @XmlValue protected V value;

            private MapTypeEntry() {};
            public static  MapTypeEntry of(final K k, final V v) {
                return new MapTypeEntry() {{this.key = k; this.value = v;}};
    }   }   }
    @Override public Map unmarshal(final GenericMapAdapter.MapType v) throws Exception {
        return new HashMap() {{ for (GenericMapAdapter.MapType.MapTypeEntry myEntryType : v.entry)
                    this.put(myEntryType.key, myEntryType.value);}};
    }
    @Override public MapType marshal(final Map v) throws Exception {
        return new GenericMapAdapter.MapType() {{for (K key : v.keySet())
                    this.entry.add(MapTypeEntry.of(key, v.get(key)));}};
}   }

7
задан Margus 5 December 2010 в 19:21
поделиться