package org.molgenis.data.rest.v2;
import org.molgenis.data.DataService;
import org.molgenis.data.Fetch;
import org.molgenis.data.i18n.LanguageService;
import org.molgenis.data.meta.model.EntityType;
import org.molgenis.data.rest.EntityPager;
import org.molgenis.security.core.MolgenisPermissionService;
import java.util.List;
import java.util.Map;
import static java.util.Objects.requireNonNull;
class EntityCollectionResponseV2
{
private final String href;
private final EntityTypeResponseV2 meta;
private final Integer start;
private final Integer num;
private final Long total;
private final String prevHref;
private final String nextHref;
private final List<Map<String, Object>> items;
public EntityCollectionResponseV2(String href)
{
this.href = requireNonNull(href);
this.meta = null;
this.start = null;
this.num = null;
this.total = null;
this.prevHref = null;
this.nextHref = null;
this.items = null;
}
public EntityCollectionResponseV2(EntityPager entityPager, List<Map<String, Object>> items, Fetch fetch,
String href, EntityType meta, MolgenisPermissionService permissionService, DataService dataService,
LanguageService languageService, String prevHref, String nextHref)
{
this.href = href;
this.meta = new EntityTypeResponseV2(meta, fetch, permissionService, dataService, languageService);
this.start = entityPager.getStart();
this.num = entityPager.getNum();
this.total = entityPager.getTotal();
this.prevHref = prevHref;
this.nextHref = nextHref;
this.items = items;
}
public String getHref()
{
return href;
}
public EntityTypeResponseV2 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;
}
}