package com.delect.motiver.server.dao.helper;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.delect.motiver.shared.Constants;
public class WorkoutSearchParams {
private static SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMdd");
public Long routineId;
public Integer routineDay;
public String uid;
public int offset = 0;
public int limit = Constants.LIMIT_WORKOUTS;
public int minCopyCount = 0;
public Date date = null;
public Order order = Order.NAME;
public enum Order {
NAME,
DATE,
COUNT
}
public String toString() {
return "WorkoutSearchParam: [" +
", routineId: " +routineId +
", uid: " +uid +
", offset: " +offset +
", limit: " +limit +
", minCopyCount: " +minCopyCount +
", date: " +date +
"]";
}
private enum Target { ALL };
private static WorkoutSearchParams all = null;
public WorkoutSearchParams() {
}
public WorkoutSearchParams(Target target) {
if(target == Target.ALL) {
limit = 10000;
}
}
public WorkoutSearchParams(Date date, String uid) {
this.date = date;
this.uid = uid;
limit = 5;
}
public WorkoutSearchParams(Long routineId) {
this.routineId = routineId;
}
public WorkoutSearchParams(Long routineId, Integer routineDay) {
this.routineId = routineId;
this.routineDay = routineDay;
}
public static WorkoutSearchParams all() {
if(all == null) {
all = new WorkoutSearchParams(Target.ALL);
}
return all;
}
public void getCacheKey(StringBuilder builder) {
builder.append(uid);
builder.append("_");
builder.append(fmt.format(date));
builder.append("_");
builder.append(routineId);
builder.append("_");
builder.append(routineDay);
builder.append("_");
builder.append(offset);
builder.append("_");
builder.append(limit);
builder.append("_");
builder.append(minCopyCount);
}
}