package edu.gatech.oad.rocket.findmythings.list;
import android.os.Parcel;
import android.os.Parcelable;
import edu.gatech.oad.rocket.findmythings.model.DBItem;
import edu.gatech.oad.rocket.findmythings.model.Category;
import java.util.Date;
/**
* A constraint filter for items.
* User: zw
* Date: 4/16/13
* Time: 7:31 PM
*/
public class ItemFilterConstraint extends CustomFilter.Constraint<DBItem> {
public ItemFilterConstraint() {}
private Date dateAfter;
private Category category;
private Boolean open;
@Override
public boolean isEmpty() {
return dateAfter == null && category == null && open == null;
}
public void setDateAfter(Date dateAfter) {
this.dateAfter = dateAfter;
}
public Date getDateAfter() {
return dateAfter;
}
public Category getCategory() {
return category;
}
public void setCategory(Category category) {
this.category = category;
}
public Boolean isOpen() {
return open;
}
public void setOpen(Boolean open) {
this.open = open;
}
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel out, int flags) {
if (getDateAfter() != null) out.writeSerializable(getDateAfter());
int insanity = open == null ? 0 : (open ? 2: 1);
out.writeInt(insanity);
if(category!=null)
out.writeString(category.toString());
}
public static final Parcelable.Creator<ItemFilterConstraint> CREATOR = new Parcelable.Creator<ItemFilterConstraint>() {
public ItemFilterConstraint createFromParcel(Parcel in) {
return new ItemFilterConstraint(in);
}
public ItemFilterConstraint[] newArray(int size) {
return new ItemFilterConstraint[size];
}
};
private ItemFilterConstraint(Parcel in) {
super();
this.dateAfter = (Date)in.readSerializable();
int insanity = in.readInt();
if (insanity == 0) this.open = null;
else this.open = (insanity == 2);
String catString = in.readString();
if (catString != null) this.category = Category.valueOf(in.readString());
}
}