parent
bd82713b4a
commit
1e77667aef
@ -0,0 +1,69 @@ |
||||
package net.pokeranalytics.android.model.realm |
||||
|
||||
import io.realm.Realm |
||||
import io.realm.RealmObject |
||||
import io.realm.RealmResults |
||||
import io.realm.Sort |
||||
import java.util.* |
||||
|
||||
enum class DataList { |
||||
NONE, |
||||
BANKROLL, |
||||
GAME, |
||||
LOCATION, |
||||
TOURNAMENT_TYPE, |
||||
TRANSACTION_TYPE; |
||||
|
||||
fun items(realm: Realm, fieldName: String? = null, sortOrder: Sort? = null): RealmResults<*> { |
||||
return realm.where(this.relatedEntity).findAll().sort(fieldName?:this.sortingFieldName, sortOrder?:this.sorting) |
||||
} |
||||
|
||||
var sortingFieldName: String = "name" |
||||
var sorting: Sort = Sort.DESCENDING |
||||
|
||||
|
||||
val relatedEntity: Class < out RealmObject > |
||||
get() { |
||||
return when (this) { |
||||
NONE -> RealmObject::class.java |
||||
BANKROLL -> Bankroll::class.java |
||||
GAME -> Game::class.java |
||||
LOCATION -> Location::class.java |
||||
TOURNAMENT_TYPE -> TournamentFeature::class.java |
||||
TRANSACTION_TYPE -> TransactionType::class.java |
||||
} |
||||
} |
||||
|
||||
fun getData(realm:Realm, primaryKey:String?): RealmObject? { |
||||
var proxyItem: RealmObject? = null |
||||
primaryKey?.let { |
||||
val t = realm.where(this.relatedEntity).equalTo("id", it).findFirst() |
||||
t?.let { |
||||
proxyItem = t |
||||
} |
||||
} |
||||
return proxyItem |
||||
} |
||||
|
||||
fun updateOrCreate(realm:Realm, primaryKey:String?): RealmObject { |
||||
var proxyItem: RealmObject? = this.getData(realm, primaryKey) |
||||
proxyItem?.let { |
||||
return realm.copyFromRealm(it) |
||||
} ?: run { |
||||
realm.beginTransaction() |
||||
val t = realm.createObject(this.relatedEntity, UUID.randomUUID().toString()) |
||||
realm.commitTransaction() |
||||
return realm.copyFromRealm(t) |
||||
} |
||||
} |
||||
|
||||
} |
||||
|
||||
/* |
||||
interface ListableDataSource { |
||||
fun items(realm: Realm, fieldName: String? = null, sortOrder: Sort? = null): RealmResults<*> |
||||
var sortingFieldName: String |
||||
var sorting: Sort |
||||
var relatedEntity: Class < out RealmObject > |
||||
} |
||||
*/ |
||||
Loading…
Reference in new issue