package mil.nga.giat.mage.filter; import com.j256.ormlite.stmt.QueryBuilder; import com.j256.ormlite.stmt.Where; import java.sql.SQLException; import java.util.Date; import mil.nga.giat.mage.sdk.Temporal; public class DateTimeFilter implements Filter<Temporal> { private Date start; private Date end; private String columnName; public DateTimeFilter(Date start, Date end, String columnName) { this.start = start; this.end = end; this.columnName = columnName; } @Override public QueryBuilder<? extends Temporal, Long> query() { return null; } @Override public void and(Where<? extends Temporal, Long> where) throws SQLException { where.and(); if (start != null && end != null) { where.between(columnName, start, end); } else if (start != null) { where.ge(columnName, start); } else { where.lt(columnName, end); } } @Override public boolean passesFilter(Temporal t) { return (start == null || t.getTimestamp().after(start) && (end == null || t.getTimestamp().before(end))); } }