package org.molgenis.ontology.utils;
import org.molgenis.data.Entity;
import java.util.*;
public class SortaServiceUtil
{
public static List<Map<String, Object>> getEntityAsMap(Iterable<? extends Entity> entities)
{
List<Map<String, Object>> docs = new ArrayList<Map<String, Object>>();
for (Entity entity : entities)
{
docs.add(getEntityAsMap(entity));
}
return docs;
}
public static Map<String, Object> getEntityAsMap(Entity entity)
{
if (entity == null) return Collections.emptyMap();
Map<String, Object> doc = new LinkedHashMap<String, Object>();
for (String attrName : entity.getAttributeNames())
{
Object object = entity.get(attrName);
if (object instanceof Iterable<?>)
{
List<Map<String, Object>> refEntities = new ArrayList<Map<String, Object>>();
for (Object refEntity : (Iterable<?>) object)
{
if (refEntity instanceof Entity)
{
refEntities.add(getEntityAsMap((Entity) refEntity));
}
}
doc.put(attrName, refEntities);
}
else if (object instanceof Entity)
{
doc.put(attrName, getEntityAsMap((Entity) object));
}
else
{
doc.put(attrName, object);
}
}
return doc;
}
}