@Override
public QueryConstraints build() {
if ((crsCode != null) && (geometry == null)) {
LOGGER.warn(
"CRS code `" + crsCode + "` cannot be applied without a geometry. Ignoring CRS.");
}
if ((spatialCompareOp != null) && (geometry == null)) {
LOGGER.warn(
"Spatial compare operator `"
+ spatialCompareOp.name()
+ "` cannot be applied without a geometry. Ignoring compare operator.");
}
if (geometry != null) {
if (timeRanges.length > 0) {
return new SpatialTemporalQuery(
new ExplicitSpatialTemporalQuery(timeRanges, geometry, crsCode, spatialCompareOp));
}
return new SpatialQuery(new ExplicitSpatialQuery(geometry, crsCode, spatialCompareOp));
} else if (timeRanges.length > 0) {
return new TemporalQuery(new ExplicitTemporalQuery(timeRanges));
}
return new EverythingQuery();
}
}