package es.upm.fi.dia.oeg.map4rdf.client.util;
import java.util.Date;
public class DateFilter{
public enum DateFilterType {
AFTER, BEFORE, EQUAL, AFTER_OR_EQUAL, BEFORE_OR_EQUAL
}
private DateFilterType filter;
private Date date;
public DateFilter(Date date, DateFilterType filter) {
this.date=date;
this.filter=filter;
}
public DateFilterType getFilter() {
return filter;
}
public Date getDate() {
return date;
}
public boolean passFilter(Date date) {
return compare(date);
}
@Override
public boolean equals(Object object){
if(!(object instanceof DateFilter)){
return false;
}
DateFilter dateFilter=(DateFilter) object;
if(date==null || filter==null || dateFilter.date==null || filter==null){
//All parameters cant be null.
return false;
}
return this.date.equals(dateFilter.date)&&this.filter.equals(dateFilter.filter);
}
private boolean compare(Date toCompare) {
switch (filter) {
case AFTER:
return this.date.compareTo(toCompare)<0;
case BEFORE:
return this.date.compareTo(toCompare)>0;
case EQUAL:
return this.date.compareTo(toCompare)==0;
case AFTER_OR_EQUAL:
return this.date.compareTo(toCompare)<=0;
case BEFORE_OR_EQUAL:
return this.date.compareTo(toCompare)>=0;
default:
break;
}
return false;
}
}