package weiboclient4j.params;
import java.util.HashMap;
import java.util.Map;
/**
* @author Hover Ruan
*/
public class Paging {
public static final String SINCE_ID = "since_id";
public static final String PAGE = "page";
public static final String COUNT = "count";
public static final String MAX_ID = "max_id";
public static final String CURSOR = "cursor";
public static final Paging EMPTY = new Paging() {
@Override
public void setPage(int page) {
throw new UnsupportedOperationException();
}
@Override
public void setCount(int count) {
throw new UnsupportedOperationException();
}
@Override
public void setSinceId(long sinceId) {
throw new UnsupportedOperationException();
}
@Override
public void setMaxId(long maxId) {
throw new UnsupportedOperationException();
}
@Override
public void setCursor(long cursor) {
throw new UnsupportedOperationException();
}
};
public static Paging create() {
return new Paging();
}
private int page;
private int count;
private long sinceId;
private long maxId;
private long cursor;
public Paging page(int newPage) {
setPage(newPage);
return this;
}
public Paging count(int newCount) {
setCount(newCount);
return this;
}
public Paging sinceId(long newSinceId) {
setSinceId(newSinceId);
return this;
}
public Paging maxId(long newMaxId) {
setMaxId(newMaxId);
return this;
}
public Paging cursor(long newCursor) {
setCursor(newCursor);
return this;
}
public boolean hasValue() {
return page > 0 || count > 0 || sinceId > 0 || maxId > 0 || cursor > 0;
}
public Map<String, String> buildParameters() {
Map<String, String> params = new HashMap<String, String>();
if (page > 0) {
params.put(PAGE, String.valueOf(page));
}
if (count > 0) {
params.put(COUNT, String.valueOf(count));
}
if (sinceId > 0) {
params.put(SINCE_ID, String.valueOf(sinceId));
}
if (maxId > 0) {
params.put(MAX_ID, String.valueOf(maxId));
}
if (cursor > 0) {
params.put(CURSOR, String.valueOf(cursor));
}
return params;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public long getSinceId() {
return sinceId;
}
public void setSinceId(long sinceId) {
this.sinceId = sinceId;
}
public long getMaxId() {
return maxId;
}
public void setMaxId(long maxId) {
this.maxId = maxId;
}
public long getCursor() {
return cursor;
}
public void setCursor(long cursor) {
this.cursor = cursor;
}
}