Skip to content

Instantly share code, notes, and snippets.

@ryanamaral
Forked from cmelchior/BarListParcelConverter.java
Last active September 2, 2015 09:12
Show Gist options
  • Save ryanamaral/5aee0c30897239b37e0f to your computer and use it in GitHub Desktop.
Save ryanamaral/5aee0c30897239b37e0f to your computer and use it in GitHub Desktop.
Using Parceler 1.0.3 with Realm
// Specific class for a RealmList<Bar> field
public class BarListParcelConverter extends RealmListParcelConverter<Bar> {
@Override
public void itemToParcel(Bar input, Parcel parcel) {
parcel.writeParcelable(Parcels.wrap(input), 0);
}
@Override
public Bar itemFromParcel(Parcel parcel) {
return Parcels.unwrap(parcel.readParcelable(Bar.class.getClassLoader()));
}
}
// Abstract class for working with RealmLists
public abstract class RealmListParcelConverter<T extends RealmObject> extends CollectionParcelConverter<T, RealmList<T>> {
@Override
public RealmList<T> createCollection() {
return new RealmList<T>();
}
}
@Parcel(implementations = { BarRealmProxy.class }, value = Parcel.Serialization.BEAN, analyze = { Bar.class })
public class Bar extends RealmObject {
private String baz;
public void setBaz(String baz) {
this.baz = baz;
}
public String getBaz() {
return baz;
}
}
@Parcel(implementations = { FooRealmProxy.class }, value = Parcel.Serialization.BEAN, analyze = { Foo.class })
public class Foo extends RealmObject {
private RealmList<Bar> bars;
@ParcelPropertyConverter(BarListParcelConverter.class)
public void setBars(RealmList<Bar> bars) {
this.bars = bars;
}
public RealmList<Bar> getBars() {
return bars;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment