package com.example.entity;
import android.os.Parcel;
import android.os.Parcelable;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
public class ExampleEntity implements Parcelable
{
public static final Parcelable.Creator<ExampleEntity> CREATOR = new Parcelable.Creator<ExampleEntity>()
{
public ExampleEntity createFromParcel(Parcel parcel)
{
return new ExampleEntity(parcel);
}
public ExampleEntity[] newArray(int size)
{
return new ExampleEntity[size];
}
};
private boolean booleanVar;
private int intVar;
private long longVar;
private String stringVar;
private Date dateVar;
private Calendar calendarVar;
private MyModel myModel;
private List<String> stringList;
// empty constructor
public ExampleEntity()
{
}
// parcel constructor
public ExampleEntity(Parcel parcel)
{
readFromParcel(parcel);
}
@Override
public int describeContents()
{
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int flags)
{
// order is important
parcel.writeByte((byte) (booleanVar ? 1 : 0));
parcel.writeInt(intVar);
parcel.writeLong(longVar);
parcel.writeString(stringVar);
parcel.writeLong(dateVar != null ? dateVar.getTime() : -1L);
parcel.writeLong(calendarVar != null ? calendarVar.getTimeInMillis() : -1L);
parcel.writeParcelable(myModel, flags);
parcel.writeStringList(stringList);
}
private void readFromParcel(Parcel parcel)
{
// order is important
booleanVar = parcel.readByte() == 1;
intVar = parcel.readInt();
longVar = parcel.readLong();
stringVar = parcel.readString();
long dateVarLong = parcel.readLong();
if(dateVarLong != -1L) dateVar = new Date(dateVarLong);
else dateVar = null;
long calendarVarLong = parcel.readLong();
if(calendarVarLong != -1L)
{
calendarVar = Calendar.getInstance();
calendarVar.setTimeInMillis(calendarVarLong);
}
else
{
calendarVar = null;
}
myModel = parcel.readParcelable(MyModel.class.getClassLoader());
parcel.readStringList(stringList);
}
}