package com.mairos.twisterblog.storage;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import com.mairos.twisterblog.TwisterBlogApplication;
import com.mairos.twisterblog.model.Comment;
import com.mairos.twisterblog.model.Post;
import java.util.ArrayList;
import java.util.List;
import nl.qbusict.cupboard.DatabaseCompartment;
import static nl.qbusict.cupboard.CupboardFactory.cupboard;
public class Storage {
// ************************* Posts operations >>> ************************* //
public Long savePost(Post post) {
return dataCompartment.put(post);
}
public void savePosts(ArrayList<Post> posts) {
dataCompartment.put(posts);
}
public List<Post> getPosts(){
return dataCompartment.query(Post.class).list();
}
public int deleteAllPosts() {
return database.delete(Post.class.getSimpleName(), null, null);
}
// ************************* <<< Posts operations ************************* //
// ************************* Comments operations >>> ************************* //
public void saveComments(ArrayList<Comment> comments) {
dataCompartment.put(comments);
}
public void deleteCommentsByPost(int post_id) {
dataCompartment.delete(Comment.class, "post_id = ?", Integer.toString(post_id));
}
public List<Comment> getCommentsByPost(int post_id){
return dataCompartment.query(Comment.class).withSelection("post_id = ?", Integer.toString(post_id)).list();
}
// ************************* <<< Comments operations ************************* //
BlogSqliteOpenHelper openHelper;
SQLiteDatabase database;
DatabaseCompartment dataCompartment;
private static Storage instance;
private static final Object INIT_LOCK = new Object();
private Storage(Context context) {
openHelper = new BlogSqliteOpenHelper(context);
database = openHelper.getWritableDatabase();
dataCompartment = cupboard().withDatabase(database);
}
public static Storage get() {
if (instance == null) {
synchronized (INIT_LOCK) {
if (instance == null) {
instance = new Storage(TwisterBlogApplication.sInstance);
}
}
}
return instance;
}
}