package com.kritsit.casetracker.client.validation;
import com.kritsit.casetracker.client.domain.model.Period;
import java.time.DateTimeException;
import java.time.LocalDate;
public class DateValidator implements IValidator<LocalDate> {
private LocalDate checkDate;
private Period period;
public DateValidator() {
this.period = Period.NONE;
}
public DateValidator(Period period, LocalDate checkDate) {
this.checkDate = checkDate;
this.period = period;
}
public boolean validate(Object obj) {
if (obj == null || obj.getClass() != LocalDate.class) {
return false;
}
LocalDate date = (LocalDate) obj;
switch (period) {
case BEFORE :
return date.isBefore(checkDate);
case EQUALS :
return date.isEqual(checkDate);
case AFTER :
return date.isAfter(checkDate);
default :
return true;
}
}
}