Search in sources :

Example 6 with TemporalFilter

use of ddf.catalog.impl.filter.TemporalFilter in project ddf by codice.

the class MockQuery method addTemporalFilter.

public void addTemporalFilter(TemporalFilter temporalFilter) {
    if (temporalFilter != null) {
        // t1.start < timeType instance < t1.end
        Instant startInstant = new DefaultInstant(new DefaultPosition(temporalFilter.getStartDate()));
        Instant endInstant = new DefaultInstant(new DefaultPosition(temporalFilter.getEndDate()));
        Period period = new DefaultPeriod(startInstant, endInstant);
        Filter filter = FILTER_FACTORY.during(FILTER_FACTORY.property(MODIFIED_DATE), FILTER_FACTORY.literal(period));
        filters.add(filter);
        this.filter = getFilter();
    }
}
Also used : DefaultPeriod(org.geotools.temporal.object.DefaultPeriod) SpatialFilter(ddf.catalog.impl.filter.SpatialFilter) TemporalFilter(ddf.catalog.impl.filter.TemporalFilter) SpatialDistanceFilter(ddf.catalog.impl.filter.SpatialDistanceFilter) Filter(org.opengis.filter.Filter) DefaultInstant(org.geotools.temporal.object.DefaultInstant) Instant(org.opengis.temporal.Instant) DefaultPosition(org.geotools.temporal.object.DefaultPosition) DefaultInstant(org.geotools.temporal.object.DefaultInstant) Period(org.opengis.temporal.Period) DefaultPeriod(org.geotools.temporal.object.DefaultPeriod)

Example 7 with TemporalFilter

use of ddf.catalog.impl.filter.TemporalFilter in project ddf by codice.

the class TwitterFilterVisitor method handleTemporal.

private void handleTemporal(BinaryTemporalOperator filter) {
    Literal literalWrapper = (Literal) filter.getExpression2();
    LOGGER.debug("literalWrapper.getValue() = {}", literalWrapper.getValue());
    Object literal = literalWrapper.evaluate(null);
    if (literal instanceof Period) {
        Period period = (Period) literal;
        // Extract the start and end dates from the filter
        Date start = period.getBeginning().getPosition().getDate();
        Date end = period.getEnding().getPosition().getDate();
        temporalSearch = new TemporalFilter(start, end);
        filters.add(filter);
    } else if (literal instanceof PeriodDuration) {
        DefaultPeriodDuration duration = (DefaultPeriodDuration) literal;
        // Extract the start and end dates from the filter
        Date end = Calendar.getInstance().getTime();
        Date start = new Date(end.getTime() - duration.getTimeInMillis());
        temporalSearch = new TemporalFilter(start, end);
        filters.add(filter);
    }
}
Also used : TemporalFilter(ddf.catalog.impl.filter.TemporalFilter) Literal(org.opengis.filter.expression.Literal) Period(org.opengis.temporal.Period) Date(java.util.Date) PeriodDuration(org.opengis.temporal.PeriodDuration) DefaultPeriodDuration(org.geotools.temporal.object.DefaultPeriodDuration) DefaultPeriodDuration(org.geotools.temporal.object.DefaultPeriodDuration)

Example 8 with TemporalFilter

use of ddf.catalog.impl.filter.TemporalFilter in project ddf by codice.

the class OpenSearchQuery method addTemporalFilter.

public void addTemporalFilter(TemporalFilter temporalFilter) {
    String methodName = "addTemporalFilter";
    if (temporalFilter != null) {
        // t1.start < timeType instance < t1.end
        Instant startInstant = new DefaultInstant(new DefaultPosition(temporalFilter.getStartDate()));
        Instant endInstant = new DefaultInstant(new DefaultPosition(temporalFilter.getEndDate()));
        Period period = new DefaultPeriod(startInstant, endInstant);
        Filter filter = FILTER_FACTORY.during(FILTER_FACTORY.property(Metacard.MODIFIED), FILTER_FACTORY.literal(period));
        LOGGER.debug("Adding temporal filter");
        filters.add(filter);
    }
}
Also used : DefaultPeriod(org.geotools.temporal.object.DefaultPeriod) SpatialFilter(ddf.catalog.impl.filter.SpatialFilter) TemporalFilter(ddf.catalog.impl.filter.TemporalFilter) SpatialDistanceFilter(ddf.catalog.impl.filter.SpatialDistanceFilter) PolygonSpatialFilter(org.codice.ddf.opensearch.query.filter.PolygonSpatialFilter) Filter(org.opengis.filter.Filter) BBoxSpatialFilter(org.codice.ddf.opensearch.query.filter.BBoxSpatialFilter) DefaultInstant(org.geotools.temporal.object.DefaultInstant) Instant(org.opengis.temporal.Instant) DefaultPosition(org.geotools.temporal.object.DefaultPosition) DefaultInstant(org.geotools.temporal.object.DefaultInstant) Period(org.opengis.temporal.Period) DefaultPeriod(org.geotools.temporal.object.DefaultPeriod)

Example 9 with TemporalFilter

use of ddf.catalog.impl.filter.TemporalFilter in project ddf by codice.

the class OpenSearchQuery method addTemporalFilter.

public void addTemporalFilter(String dateStart, String dateEnd, String dateOffset) {
    String methodName = "addTemporalFilter";
    TemporalFilter temporalFilter = null;
    // a temporal filter can be created
    if ((dateStart != null && !dateStart.trim().isEmpty()) || (dateEnd != null && !dateEnd.trim().isEmpty())) {
        temporalFilter = new TemporalFilter(dateStart, dateEnd);
    } else if (dateOffset != null && !dateOffset.trim().isEmpty()) {
        temporalFilter = new TemporalFilter(Long.parseLong(dateOffset));
    }
    addTemporalFilter(temporalFilter);
}
Also used : TemporalFilter(ddf.catalog.impl.filter.TemporalFilter)

Example 10 with TemporalFilter

use of ddf.catalog.impl.filter.TemporalFilter in project ddf by codice.

the class OpenSearchQueryTest method testTemporalFilterModifiedSearch.

@Test
public void testTemporalFilterModifiedSearch() throws Exception {
    // 30 minutes
    String dateOffset = "1800000";
    TemporalFilter temporalFilter = new TemporalFilter(Long.parseLong(dateOffset));
    LOGGER.debug(temporalFilter.toString());
    OpenSearchQuery query = new OpenSearchQuery(null, 0, 10, "relevance", "desc", 30000, FILTER_BUILDER);
    query.addTemporalFilter(temporalFilter);
    Filter filter = query.getFilter();
    // String filterXml = getFilterAsXml( filter );
    VerificationVisitor verificationVisitor = new VerificationVisitor();
    filter.accept(verificationVisitor, null);
    HashMap<String, FilterStatus> map = (HashMap<String, FilterStatus>) verificationVisitor.getMap();
    printFilterStatusMap(map);
    List<Filter> filters = getFilters(map, DuringImpl.class.getName());
    assertEquals(1, filters.size());
    verifyTemporalFilter(filters.get(0), temporalFilter.getStartDate().toString(), temporalFilter.getEndDate().toString(), false);
}
Also used : TemporalFilter(ddf.catalog.impl.filter.TemporalFilter) DuringImpl(org.geotools.filter.temporal.DuringImpl) TemporalFilter(ddf.catalog.impl.filter.TemporalFilter) BBoxSpatialFilter(org.codice.ddf.opensearch.query.filter.BBoxSpatialFilter) PolygonSpatialFilter(org.codice.ddf.opensearch.query.filter.PolygonSpatialFilter) Filter(org.opengis.filter.Filter) HashMap(java.util.HashMap) Test(org.junit.Test)

Aggregations

TemporalFilter (ddf.catalog.impl.filter.TemporalFilter)15 Test (org.junit.Test)8 Filter (org.opengis.filter.Filter)8 BBoxSpatialFilter (org.codice.ddf.opensearch.query.filter.BBoxSpatialFilter)7 PolygonSpatialFilter (org.codice.ddf.opensearch.query.filter.PolygonSpatialFilter)7 HashMap (java.util.HashMap)5 Date (java.util.Date)4 DuringImpl (org.geotools.filter.temporal.DuringImpl)4 Period (org.opengis.temporal.Period)4 SpatialDistanceFilter (ddf.catalog.impl.filter.SpatialDistanceFilter)3 SpatialFilter (ddf.catalog.impl.filter.SpatialFilter)3 DefaultInstant (org.geotools.temporal.object.DefaultInstant)2 DefaultPeriod (org.geotools.temporal.object.DefaultPeriod)2 DefaultPeriodDuration (org.geotools.temporal.object.DefaultPeriodDuration)2 DefaultPosition (org.geotools.temporal.object.DefaultPosition)2 Literal (org.opengis.filter.expression.Literal)2 Instant (org.opengis.temporal.Instant)2 PeriodDuration (org.opengis.temporal.PeriodDuration)2 PropertyIsEqualToLiteral (ddf.catalog.filter.impl.PropertyIsEqualToLiteral)1 UnsupportedQueryException (ddf.catalog.source.UnsupportedQueryException)1