package com.tubeonfire.model.admin;
import java.util.ArrayList;
import java.util.List;
import com.googlecode.objectify.Key;
import com.googlecode.objectify.Objectify;
import com.googlecode.objectify.ObjectifyOpts;
import com.googlecode.objectify.ObjectifyService;
import com.googlecode.objectify.Query;
import com.tubeonfire.entity.Mission;
public class MissionModel {
private static Objectify ofy;
private static boolean isRegisted = false;
private static ObjectifyOpts opts = null;
private int limit = 12;
private int page = 1;
private int totalResult = 0;
private int totalPage = 1;
private List<Mission> listResult = new ArrayList<Mission>();
public int getTotalPage() {
totalPage = totalResult / limit;
if ((totalResult % limit) > 0) {
totalPage += 1;
}
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getLimit() {
return limit;
}
public void setLimit(int limit) {
this.limit = limit;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getTotalResult() {
return totalResult;
}
public void setTotalResult(int totalResult) {
this.totalResult = totalResult;
}
public List<Mission> getListResult() {
return listResult;
}
public void setListResult(List<Mission> listResult) {
this.listResult = listResult;
}
public static void init() {
if (!isRegisted) {
isRegisted = true;
try {
ObjectifyService.register(Mission.class);
} catch (Exception e) {
isRegisted = false;
}
opts = new ObjectifyOpts().setSessionCache(true);
}
ofy = ObjectifyService.begin(opts);
}
public MissionModel() {
init();
}
public static void insert(Mission obj) {
init();
ofy.put(obj);
}
public static void delete(Mission obj) {
init();
ofy.delete(obj);
}
public void prepareList() {
init();
listResult = new ArrayList<Mission>();
int start = (page - 1) * limit;
Query<Mission> q = ofy.query(Mission.class);
totalResult = q.count();
q = q.limit(limit).offset(start);
for (Mission obj : q) {
listResult.add(obj);
}
}
public void search(int status, int type) {
init();
listResult = new ArrayList<Mission>();
int start = (page - 1) * limit;
Query<Mission> q = ofy.query(Mission.class);
if (status != 0) {
q.filter("status", status);
}
if (type != 0) {
q.filter("type", type);
}
totalResult = q.count();
q = q.limit(limit).offset(start).order("updated");
for (Mission obj : q) {
listResult.add(obj);
}
}
public static Mission getById(String alias) {
init();
Mission obj = new Mission();
try {
obj = ofy.get(new Key<Mission>(Mission.class, alias));
} catch (Exception e) {
obj = null;
}
return obj;
}
public void getByStatus(int status) {
listResult = new ArrayList<Mission>();
int start = (page - 1) * limit;
Query<Mission> q = ofy.query(Mission.class).filter("type", status);
totalResult = q.count();
q = q.limit(limit).offset(start);
for (Mission obj : q) {
listResult.add(obj);
}
}
public static Mission getNotComplete() {
init();
Query<Mission> q = ofy.query(Mission.class).filter("status", 1)
.order("updated");
return q.get();
}
public static Mission getNotCompleteByType(int type) {
init();
Query<Mission> q = ofy.query(Mission.class).filter("status", 1)
.filter("type", type).order("updated");
return q.get();
}
public void getListNotCompleteByType(int type) {
init();
Query<Mission> q = ofy.query(Mission.class).filter("status", 1)
.filter("type", type).order("updated");
;
totalResult = q.count();
for (Mission obj : q) {
listResult.add(obj);
}
}
}