package co.smartreceipts.android.filters; import org.json.JSONException; import org.json.JSONObject; import java.util.List; import co.smartreceipts.android.R; import co.smartreceipts.android.model.Receipt; public final class LegacyReceiptMinimumPriceFilter implements Filter<Receipt> { private final static String MIN_PRICE = "minprice"; private final float mMinPrice; public LegacyReceiptMinimumPriceFilter(float minPrice) { mMinPrice = minPrice; } public LegacyReceiptMinimumPriceFilter(JSONObject json) throws JSONException { this.mMinPrice = (float) json.getDouble(MIN_PRICE); } @Override public boolean accept(Receipt t) { return t.getPrice().getPriceAsFloat() >= mMinPrice; } @Override public JSONObject getJsonRepresentation() throws JSONException { final JSONObject json = new JSONObject(); json.put(FilterFactory.CLASS_NAME, this.getClass().getName()); json.put(MIN_PRICE, mMinPrice); return json; } @Override public List<Filter<Receipt>> getChildren() { return null; } @Override public int getNameResource() { return R.string.filter_name_receipt_min_price; } @Override public FilterType getType() { return FilterType.Float; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + Float.floatToIntBits(mMinPrice); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; LegacyReceiptMinimumPriceFilter other = (LegacyReceiptMinimumPriceFilter) obj; if (Float.floatToIntBits(mMinPrice) != Float .floatToIntBits(other.mMinPrice)) return false; return true; } }