/*
* Copyright (c) 2014 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.dbcli.adapter;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.adapters.XmlAdapter;
import com.emc.storageos.db.client.model.StringSetMap;
import com.emc.storageos.db.client.model.StringSet;
import com.emc.storageos.db.client.model.AbstractChangeTrackingSet;
@XmlRootElement
public class StringSetMapAdapter extends
XmlAdapter<StringSetMapAdapter.AdaptedMap, StringSetMap> {
public static class AdaptedMap {
public List<Entry> entry = new ArrayList<Entry>();
}
public static class Entry {
public String key;
public StringSet value;
}
@Override
public StringSetMap unmarshal(AdaptedMap adaptedMap)
throws Exception {
StringSetMap map = new StringSetMap();
for (Entry entry : adaptedMap.entry) {
map.put(entry.key, entry.value);
}
return map;
}
@Override
public AdaptedMap marshal(StringSetMap map) throws Exception {
AdaptedMap adaptedMap = new AdaptedMap();
for (Map.Entry<String, AbstractChangeTrackingSet<String>> mapEntry : map.entrySet()) {
Entry entry = new Entry();
entry.key = mapEntry.getKey();
entry.value = (StringSet) mapEntry.getValue();
adaptedMap.entry.add(entry);
}
return adaptedMap;
}
}