package mil.nga.giat.geowave.core.geotime.store.query;
import java.util.ArrayList;
import java.util.List;
import mil.nga.giat.geowave.core.geotime.index.dimension.TimeDefinition;
import mil.nga.giat.geowave.core.index.sfc.data.NumericRange;
import mil.nga.giat.geowave.core.store.query.BasicQuery;
/**
* The Spatial Temporal Query class represents a query in three dimensions. The
* constraint that is applied represents an intersection operation on the query
* geometry AND a date range intersection based on startTime and endTime.
*
*
*/
public class TemporalQuery extends
BasicQuery
{
public TemporalQuery(
final TemporalConstraints contraints ) {
super(
createTemporalConstraints(contraints));
}
protected TemporalQuery() {
super();
}
private static Constraints createTemporalConstraints(
final TemporalConstraints temporalConstraints ) {
final List<ConstraintSet> constraints = new ArrayList<ConstraintSet>();
for (final TemporalRange range : temporalConstraints.getRanges()) {
constraints.add(new ConstraintSet(
TimeDefinition.class,
new ConstraintData(
new NumericRange(
range.getStartTime().getTime(),
range.getEndTime().getTime()),
false)));
}
return new Constraints(
constraints);
}
}