Search in sources :

Example 1 with RealmUser

use of com.kboyarshinov.realmrxjavaexample.model.RealmUser in project realm-rxjava-example by kboyarshinov.

the class RealmDataService method newIssue.

@Override
public Observable<Issue> newIssue(final String title, final String body, final User user, List<Label> labels) {
    // map internal UI objects to Realm objects
    final RealmUser realmUser = new RealmUser();
    realmUser.setLogin(user.getLogin());
    final RealmList<RealmLabel> realmLabels = new RealmList<>();
    for (Label label : labels) {
        RealmLabel realmLabel = new RealmLabel();
        realmLabel.setName(label.getName());
        realmLabel.setColor(label.getColor());
        realmLabels.add(realmLabel);
    }
    return RealmObservable.object(context, new Func1<Realm, RealmIssue>() {

        @Override
        public RealmIssue call(Realm realm) {
            // internal object instances are not created by realm
            // saving them using copyToRealm returning instance associated with realm
            RealmUser user = realm.copyToRealm(realmUser);
            RealmList<RealmLabel> labels = new RealmList<RealmLabel>();
            for (RealmLabel realmLabel : realmLabels) {
                labels.add(realm.copyToRealm(realmLabel));
            }
            // create RealmIssue instance and save it
            RealmIssue issue = new RealmIssue();
            issue.setTitle(title);
            issue.setBody(body);
            issue.setUser(user);
            issue.setLabels(labels);
            return realm.copyToRealm(issue);
        }
    }).map(new Func1<RealmIssue, Issue>() {

        @Override
        public Issue call(RealmIssue realmIssue) {
            // map to UI object
            return issueFromRealm(realmIssue);
        }
    });
}
Also used : RealmLabel(com.kboyarshinov.realmrxjavaexample.model.RealmLabel) RealmList(io.realm.RealmList) Issue(com.kboyarshinov.realmrxjavaexample.model.Issue) RealmIssue(com.kboyarshinov.realmrxjavaexample.model.RealmIssue) RealmUser(com.kboyarshinov.realmrxjavaexample.model.RealmUser) RealmLabel(com.kboyarshinov.realmrxjavaexample.model.RealmLabel) Label(com.kboyarshinov.realmrxjavaexample.model.Label) RealmIssue(com.kboyarshinov.realmrxjavaexample.model.RealmIssue) Func1(rx.functions.Func1) Realm(io.realm.Realm)

Aggregations

Issue (com.kboyarshinov.realmrxjavaexample.model.Issue)1 Label (com.kboyarshinov.realmrxjavaexample.model.Label)1 RealmIssue (com.kboyarshinov.realmrxjavaexample.model.RealmIssue)1 RealmLabel (com.kboyarshinov.realmrxjavaexample.model.RealmLabel)1 RealmUser (com.kboyarshinov.realmrxjavaexample.model.RealmUser)1 Realm (io.realm.Realm)1 RealmList (io.realm.RealmList)1 Func1 (rx.functions.Func1)1