package io.bxbxbai.zhuanlan.core;
import android.content.Context;
import orm.LiteOrm;
import orm.db.DataBase;
import orm.db.annotation.NotNull;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Data center
*
* @author bxbxbai
*/
public final class DataCenter {
private static DataCenter instance;
private DataBase db;
private DataCenter(Context context, String dbName) {
db = LiteOrm.newSingleInstance(context, dbName);
}
public static void init(Context context, String dbName) {
if (instance == null) {
synchronized (DataCenter.class) {
if (instance == null) {
instance = new DataCenter(context.getApplicationContext(), dbName);
}
}
}
}
public static DataCenter instance() {
if (instance == null) {
throw new IllegalStateException("you must call LiteManager.init(context, dbName) first");
}
return instance;
}
public <T> long queryCount(Class<T> clazz) {
return db.queryCount(clazz);
}
public <T> int clear(Class<T> clazz) {
return db.delete(clazz);
}
public void save(Object o) {
db.save(o);
}
public <T> List<T> queryAll(Class<T> clazz) {
List<T> list = db.query(clazz);
return list == null ? new ArrayList<T>() : list;
}
private class CacheContainer<T> extends HashMap<Class<T>, Map<String, T>> {
}
}