diff --git a/app/src/main/kotlin/jackall/overlaymulticounter/db/BaseRealmHelper.kt b/app/src/main/kotlin/jackall/overlaymulticounter/db/BaseRealmHelper.kt new file mode 100644 index 0000000..af0f1f0 --- /dev/null +++ b/app/src/main/kotlin/jackall/overlaymulticounter/db/BaseRealmHelper.kt @@ -0,0 +1,18 @@ +package jackall.overlaymulticounter.db + +import io.realm.Realm +import io.realm.RealmModel +import io.realm.RealmResults + +/** + * Created by matsumoto_k on 2017/11/08. + */ +abstract class BaseRealmHelper { + protected val realm by lazy { Realm.getDefaultInstance() } + abstract fun insert(realmObject: T) + abstract fun update(realmObject: T) + abstract fun findAll(): RealmResults + fun close() { + realm.close() + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/jackall/overlaymulticounter/db/CounterRealmHelper.kt b/app/src/main/kotlin/jackall/overlaymulticounter/db/CounterRealmHelper.kt new file mode 100644 index 0000000..06d5ccf --- /dev/null +++ b/app/src/main/kotlin/jackall/overlaymulticounter/db/CounterRealmHelper.kt @@ -0,0 +1,38 @@ +package jackall.overlaymulticounter.db + +import io.realm.RealmResults +import jackall.overlaymulticounter.vo.Counter + +/** + * Created by matsumoto_k on 2017/11/08. + */ +class CounterRealmHelper : BaseRealmHelper() { + val query by lazy { realm.where(Counter::class.java) } + override fun insert(realmObject: Counter) { + realm.executeTransaction { + realm.copyToRealm(realmObject) + } + } + + override fun update(realmObject: Counter) { + realm.executeTransaction { + realm.copyToRealmOrUpdate(realmObject) + } + } + + fun plus(id: Int) { + query.equalTo("id", id).findFirst().apply { + count++ + } + } + + fun minus(id: Int) { + query.equalTo("id", id).findFirst().apply { + count-- + } + } + + override fun findAll(): RealmResults { + return query.findAll() + } +} \ No newline at end of file