package org.molgenis.data.rest;
import org.molgenis.data.DataService;
import org.molgenis.data.i18n.LanguageService;
import org.molgenis.data.meta.model.EntityType;
import org.molgenis.security.core.MolgenisPermissionService;
import java.util.List;
import java.util.Map;
public class EntityCollectionResponse
{
private final String href;
private final EntityTypeResponse meta;
private final int start;
private final int num;
private final long total;
private final String prevHref;
private final String nextHref;
private final List<Map<String, Object>> items;
public EntityCollectionResponse(EntityPager entityPager, List<Map<String, Object>> items, String href,
EntityType meta, MolgenisPermissionService permissionService, DataService dataService,
LanguageService languageService)
{
this.href = href;
this.meta =
meta != null ? new EntityTypeResponse(meta, permissionService, dataService, languageService) : null;
this.start = entityPager.getStart();
this.num = entityPager.getNum();
this.total = entityPager.getTotal();
Integer prevStart = entityPager.getPrevStart();
this.prevHref = prevStart != null ? this.href + "?start=" + prevStart + "&num=" + this.num : null;
Integer nextStart = entityPager.getNextStart();
this.nextHref = nextStart != null ? this.href + "?start=" + nextStart + "&num=" + this.num : null;
this.items = items;
}
public String getHref()
{
return href;
}
public EntityTypeResponse getMeta()
{
return meta;
}
public int getStart()
{
return start;
}
public int getNum()
{
return num;
}
public long getTotal()
{
return total;
}
public String getPrevHref()
{
return prevHref;
}
public String getNextHref()
{
return nextHref;
}
public List<Map<String, Object>> getItems()
{
return items;
}
}