blob: 1cd89c3276dc191116a98f92d698f6f907b03d22 [file] [log] [blame]
package org.codehaus.jackson.jaxb;
import javax.xml.bind.annotation.adapters.XmlAdapter;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
public class MapAdapter<K, V> extends XmlAdapter<MapType<K, V>, Map<K, V>> {
/**
* {@inheritDoc}
*/
@Override
public MapType<K, V> marshal(Map<K, V> v) throws Exception {
final List<EntryType<K, V>> theEntries = new
LinkedList<EntryType<K, V>>();
for (final Map.Entry<K, V> anEntry : v.entrySet()) {
theEntries.add(new EntryType<K, V>(anEntry.getKey(), anEntry.getValue()));
}
return new MapType<K, V>(theEntries);
}
/**
* {@inheritDoc}
*/
@Override
public Map<K, V> unmarshal(MapType<K, V> v) throws Exception {
final Map<K, V> theMap = new HashMap<K, V>();
for (final EntryType<K, V> anEntry : v.getEntries()) {
theMap.put(anEntry.getKey(), anEntry.getValue());
}
return theMap;
}
}