Skip to content

Instantly share code, notes, and snippets.

@Kruithne
Created May 1, 2013 17:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Kruithne/5496634 to your computer and use it in GitHub Desktop.
Save Kruithne/5496634 to your computer and use it in GitHub Desktop.
public static List<Map<String, Object>> serializeItemList(List<ConfigurationSerializable> list)
{
List<Map<String, Object>> map = new ArrayList<Map<String, Object>>();
for (ConfigurationSerializable configurationSerializable : list)
map.add(serialize(configurationSerializable));
return map;
}
public static Map<String, Object> serialize(ConfigurationSerializable configurationSerializable)
{
Map<String, Object> serialized = recreateMap(configurationSerializable.serialize());
for (Map.Entry<String, Object> entry : serialized.entrySet())
if (entry.getValue() instanceof ConfigurationSerializable)
entry.setValue(serialize((ConfigurationSerializable) entry.getValue()));
serialized.put(ConfigurationSerialization.SERIALIZED_TYPE_KEY, ConfigurationSerialization.getAlias(configurationSerializable.getClass()));
return serialized;
}
public static Map<String, Object> recreateMap(Map<String, Object> original)
{
Map<String, Object> map = new HashMap<String, Object>();
for (Map.Entry<String, Object> entry : original.entrySet())
map.put(entry.getKey(), entry.getValue());
return map;
}
@SuppressWarnings("unchecked")
public static ConfigurationSerializable deserialize(Map<String, Object> map)
{
for (Map.Entry<String, Object> entry : map.entrySet())
if (entry.getValue() instanceof Map && ((Map) entry.getValue()).containsKey(ConfigurationSerialization.SERIALIZED_TYPE_KEY))
entry.setValue(deserialize((Map) entry.getValue()));
return ConfigurationSerialization.deserializeObject(map);
}
public static List<ConfigurationSerializable> deserializeItemList(List<Map<String, Object>> itemList)
{
List<ConfigurationSerializable> returnMap = new ArrayList<ConfigurationSerializable>();
for (Map<String, Object> map : itemList)
returnMap.add(deserialize(map));
return returnMap;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment