Kotlin extensions for simplifying Realm API.
Simplify your code to its minimum expression with this set of kotlin extensions for Realm. Forget about all boilerplate related with Realm API and performs database operations in one line of code.
Grab via Gradle:
repositories {
mavenCentral()
}
compile 'com.github.vicpinm:krealmextensions:1.0.2'
All your entities should extend RealmObject.
User user = new User("John");
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
realm.copyToRealmOrUpdate(user);
realm.commitTransaction();
realm.close();
User("John").save()
Save method creates or updates your entity into database. You can also use create() method, which only create a new entity into database. If a previous one exists with the same primary key, it will throw a exception.
List<User> users = new ArrayList<User>(...);
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
realm.copyToRealmOrUpdate(users);
realm.commitTransaction();
realm.close();
listOf<User>(...).saveAll()
All query extensions return detached realm objects, using copyFromRealm() method.
Realm realm = Realm.getDefaultInstance();
Event firstEvent = realm.where(Event.class).findFirst();
firstEvent = realm.copyFromRealm(event);
realm.close();
val firstEvent = Event().firstItem
You can use lastItem extension too.
Realm realm = Realm.getDefaultInstance();
List<Event> events = realm.where(Event.class).findAll();
events = realm.copyFromRealm(event);
realm.close();
val events = Event().allItems
Realm realm = Realm.getDefaultInstance();
List<Event> events = realm.where(Event.class).equalTo("id",1).findAll();
events = realm.copyFromRealm(event);
realm.close();
val events = Event().query { query -> query.equalTo("id",1) }
Realm realm = Realm.getDefaultInstance();
List<Event> events = realm.where(Event.class).findAll().deleteAllFromRealm();
events = realm.copyFromRealm(event);
realm.close();
Event().deleteAll()
Realm realm = Realm.getDefaultInstance();
List<Event> events = realm.where(Event.class).equalTo("id",1).findAll().deleteAllFromRealm();
events = realm.copyFromRealm(event);
realm.close();
Event().delete { query -> query.equalTo("id", 1) }
Realm realm = Realm.getDefaultInstance();
Observable<List<Event>> obs = realm.where(Event.class).findAllAsync()
.asObservable()
.filter(RealmResults::isLoaded)
.map(realm::copyFromRealm)
.doOnUnsubscribe(() -> realm.close());
val obs = Event().allItemsAsObservable
Realm realm = Realm.getDefaultInstance();
Observable<List<Event>> obs = realm.where(Event.class).equalTo("id",1).findAllAsync()
.asObservable()
.filter(RealmResults::isLoaded)
.map(realm::copyFromRealm)
.doOnUnsubscribe(() -> realm.close());
val obs = Event().queryAsObservable { query -> query.equalTo("id",1) }