/** Supports Parcelable */
 public MessageValue(Parcel in) {
   setValues(ContentValues.CREATOR.createFromParcel(in));
   mContacts = new ArrayList<MessageContactValue>();
   in.readList(mContacts, MessageContactValue.class.getClassLoader());
   mBodies = new ArrayList<MessageBodyValue>();
   in.readList(mBodies, MessageBodyValue.class.getClassLoader());
   mAttachments = new ArrayList<MessageAttachmentValue>();
   in.readList(mAttachments, MessageAttachmentValue.class.getClassLoader());
 }
  public void readFromParcel(Parcel source) {
    this.contentValues = ContentValues.CREATOR.createFromParcel(source);

    String value = source.readString();
    setValue(MoneyFactory.fromString(value));

    value = source.readString();
    setCurrentAllocation(MoneyFactory.fromString(value));

    setCurrentValue(MoneyFactory.fromString(source.readString()));
    setDifference(MoneyFactory.fromString(source.readString()));
    setType(ItemType.valueOf(source.readString()));
  }
 public MessageContactValue(Parcel in) {
   setValues(ContentValues.CREATOR.createFromParcel(in));
 }