package org.molgenis.data.importer;
import com.google.common.collect.Lists;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class EntityImportReport implements Serializable
{
private static final long serialVersionUID = 1L;
private final Map<String, Integer> nrImportedEntitiesMap;
private final List<String> newEntities = Lists.newArrayList();
public EntityImportReport()
{
nrImportedEntitiesMap = new HashMap<String, Integer>();
}
public void addEntityCount(String entityName, int count)
{
Integer entityCount = nrImportedEntitiesMap.get(entityName);
if (entityCount == null)
{
entityCount = 0;
nrImportedEntitiesMap.put(entityName, entityCount);
}
nrImportedEntitiesMap.put(entityName, entityCount + count);
}
public Map<String, Integer> getNrImportedEntitiesMap()
{
return nrImportedEntitiesMap;
}
public void addNewEntity(String entityName)
{
newEntities.add(entityName);
}
public List<String> getNewEntities()
{
return newEntities;
}
@Override
public int hashCode()
{
final int prime = 31;
int result = 1;
result = prime * result + ((newEntities == null) ? 0 : newEntities.hashCode());
result = prime * result + ((nrImportedEntitiesMap == null) ? 0 : nrImportedEntitiesMap.hashCode());
return result;
}
@Override
public boolean equals(Object obj)
{
if (this == obj) return true;
if (obj == null) return false;
if (getClass() != obj.getClass()) return false;
EntityImportReport other = (EntityImportReport) obj;
if (newEntities == null)
{
if (other.newEntities != null) return false;
}
else if (!newEntities.equals(other.newEntities)) return false;
if (nrImportedEntitiesMap == null)
{
if (other.nrImportedEntitiesMap != null) return false;
}
else if (!nrImportedEntitiesMap.equals(other.nrImportedEntitiesMap)) return false;
return true;
}
@Override
public String toString()
{
StringBuilder sb = new StringBuilder();
for (String entity : nrImportedEntitiesMap.keySet())
{
sb.append("Imported ").append(nrImportedEntitiesMap.get(entity)).append(" ").append(entity)
.append(" entities.<br />");
}
return sb.toString();
}
}