@Override public boolean accept(Product sourceProduct) { final ProductData.UTC productStartTime = sourceProduct.getStartTime(); final ProductData.UTC productEndTime = sourceProduct.getEndTime(); final boolean hasStartTime = productStartTime != null; final boolean hasEndTime = productEndTime != null; final GeoCoding geoCoding = sourceProduct.getGeoCoding(); if (geoCoding == null || !geoCoding.canGetGeoPos()) { return false; } else if (startTime != null && hasStartTime && productStartTime.getAsDate().after(startTime.getAsDate()) && endTime != null && hasEndTime && productEndTime.getAsDate().before(endTime.getAsDate())) { return true; } else if (!hasStartTime && !hasEndTime) { return true; } else if (startTime != null && hasStartTime && productStartTime.getAsDate().after(startTime.getAsDate()) && !hasEndTime) { return true; } else if (!hasStartTime && endTime != null && productEndTime.getAsDate().before(endTime.getAsDate())) { return true; } else { return false; } }
@Override public String format(ProductData.UTC value) { final SimpleDateFormat sdf = new SimpleDateFormat(Constants.TIME_PATTERN); return sdf.format(value.getAsDate()); }