package com.gdg.miagegi.can2015.model;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.util.Log;
import com.j256.ormlite.android.apptools.OpenHelperManager;
import com.j256.ormlite.dao.Dao;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.stmt.PreparedQuery;
public class Social {
@DatabaseField(generatedId = true)
public int id;
@DatabaseField
public String author;
@DatabaseField
public String screenName;
@DatabaseField
public String profilePic;
@DatabaseField
public String type;
@DatabaseField
public String content;
@DatabaseField
public String link;
@DatabaseField
public String imageUrl;
private static DatabaseHelper databaseHelper = null;
public static DatabaseHelper getHelper(Context context) {
if (databaseHelper == null) {
databaseHelper = OpenHelperManager.getHelper(context, DatabaseHelper.class);
}
return databaseHelper;
}
@SuppressWarnings("rawtypes")
public static void logException(Class clazz, Exception e) {
Log.e(clazz.getName(), "Database Exception", e);
}
private static Dao<Social, Integer> getDao(Context context) throws SQLException {
return getHelper(context).getDao(Social.class);
}
public static Social findByLink(Context context, String link) {
Social object = null;
try {
final Dao<Social, Integer> dao = Model.getHelper(context).getDao(Social.class);
final PreparedQuery<Social> pQ = dao.queryBuilder().where().eq("link", link).prepare();
object = dao.queryForFirst(pQ);
} catch (final SQLException e) {
Log.e( "Database Exception", e.getMessage());
}
return object;
}
public static Social findById(Context context, int id) {
Social object = null;
try {
final Dao<Social, Integer> dao = Model.getHelper(context).getDao(Social.class);
final PreparedQuery<Social> pQ = dao.queryBuilder().where().eq("id", id).prepare();
object = dao.queryForFirst(pQ);
} catch (final SQLException e) {
Log.e( "Database Exception", e.getMessage());
}
return object;
}
private static void logException(Exception e) {
Model.logException(Social.class, e);
}
public static Social findFirst(Context context) {
Social object = null;
try {
final PreparedQuery<Social> pQ = getDao(context).queryBuilder().prepare();
object = getDao(context).queryForFirst(pQ);
} catch (SQLException e) {
logException(e);
}
return object;
}
public static void saveAll(Context context, List<Social> socials){
for (Social social : socials) {
try {
getDao(context).createOrUpdate(social);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static List<Social> findAllByType(Context context, String type) {
List<Social> socials = new ArrayList<Social>();
try {
final Dao<Social, Integer> dao = Model.getHelper(context).getDao(Social.class);
socials = dao.queryBuilder().where().eq("type", type).query();
} catch (final SQLException e) {
logException(e);
}
return socials;
}
}