1 package com.moiseum.wolnelektury.storage;
3 import android.app.Application;
4 import android.support.annotation.Nullable;
6 import com.moiseum.wolnelektury.BuildConfig;
7 import com.moiseum.wolnelektury.connection.models.BookModel;
8 import com.moiseum.wolnelektury.connection.models.BookModel_;
9 import com.moiseum.wolnelektury.connection.models.MyObjectBox;
11 import org.greenrobot.eventbus.EventBus;
13 import java.util.List;
15 import io.objectbox.Box;
16 import io.objectbox.BoxStore;
17 import io.objectbox.android.AndroidObjectBrowser;
18 import io.objectbox.query.Query;
24 public class BookStorage {
27 public static class BookAddedEvent {
30 public static class BookDeletedEvent {
31 private final String slug;
33 public BookDeletedEvent(String slug) {
37 public String getSlug() {
42 private BoxStore boxStore;
44 public BookStorage(Application application) {
45 boxStore = MyObjectBox.builder().androidContext(application).build();
46 if (BuildConfig.DEBUG) {
47 new AndroidObjectBrowser(boxStore).start(application);
51 private Box<BookModel> getBox() {
52 return boxStore.boxFor(BookModel.class);
55 public void add(BookModel book) {
57 EventBus.getDefault().post(new BookAddedEvent());
60 public void update(BookModel book) {
65 public BookModel find(String slug) {
66 Query<BookModel> query = getBox().query().equal(BookModel_.slug, slug).build();
67 return query.findFirst();
70 public boolean exists(String slug) {
71 return find(slug) != null;
74 public void remove(String slug, boolean notify) {
75 BookModel book = find(slug);
77 getBox().remove(book);
79 EventBus.getDefault().post(new BookDeletedEvent(slug));
84 public List<BookModel> all() {
85 return getBox().getAll();
88 public void removeAll() {