package org.koroed.lepra.loader;
import org.apache.commons.lang3.ObjectUtils;
import org.koroed.lepra.LepraHttpClient;
import org.koroed.lepra.content.LepraContext;
import org.koroed.lepra.content.parser.LepraContentParser;
import java.net.URI;
import java.util.HashMap;
import java.util.Map;
/**
* Author: Nikita Koroed
* E-mail: nikita@koroed.org
* Date: 28.05.2014
* Time: 10:36
*/
public class LepraContentListLoader
{
private LepraContentParser<Integer> parser;
private int defOffset = 42;
private int offset = 0;
private String sorting;
private URI uri;
private LepraContext ctx;
private LepraHttpClient httpClient;
public LepraContentListLoader(URI uri, LepraContentParser<Integer> parser, String sorting, LepraContext ctx, LepraHttpClient httpClient)
{
this.parser = parser;
this.sorting = sorting;
this.uri = uri;
this.ctx = ctx;
this.httpClient = httpClient;
}
public void load()
{
Map<String, String> parameters = new HashMap<String, String>();
parameters.put("csrf_token", ctx.userContext.csrfToken);
parameters.put("offset", Integer.toString(offset));
parameters.put("sorting", sorting);
setNewOffset(httpClient.loadContent(uri, parameters, parser));
}
public void setNewOffset(Integer offset)
{
this.offset = ObjectUtils.defaultIfNull(offset, defOffset);
}
public void setDefOffset(int defOffset)
{
this.defOffset = defOffset;
}
}