public class ExamsRowFilter extends RowFilter<ExamsTableModel, Integer>
{
private int duration;
private Timestamp dateExamStart, dateExamEnd;
private boolean useDateFilter;
public ExamsRowFilter
(boolean useDateFilter,
Timestamp dateExamStart,
Timestamp dateExamEnd,
int duration
) {
this.useDateFilter = useDateFilter;
this.duration = duration;
this.dateExamStart = dateExamStart;
this.dateExamEnd = dateExamEnd;
}
public boolean include(Entry<? extends ExamsTableModel, ? extends Integer> entry)
{
ExamsTableModel examsTableModel = entry.getModel();
Exam e = examsTableModel.getExam(entry.getIdentifier());
if (e == null)
return false;
if (useDateFilter)
{
if (dateExamStart.equals(dateExamEnd))
{
if (!(df.format(e.getDateExam()).equalsIgnoreCase(df.format(dateExamStart))))
return false;
}
else
{
if (!((e.getDateExam().after(dateExamStart)
||
(df.format(e.getDateExam()).equalsIgnoreCase(df.format(dateExamStart))))
&&
((e.getDateExam().before(dateExamEnd))
||
(df.format(e.getDateExam()).equalsIgnoreCase(df.format(dateExamEnd))))))
{
return false;
}
}
}
if (duration > 0)
{ if (!(e.getDuration() == duration))
return false; }
return true;
}
}