use of org.geotools.temporal.object.DefaultPeriod in project ddf by codice.
the class CommonQueryBuilder method during.
// public QueryImpl fuzzy(String searchPhrase, boolean isCaseSensitive) {
//
// QueryImpl query = new QueryImpl(
// filterFactory.like(
// new FuzzyFunction(
// Arrays.asList((Expression)(filterFactory.property(Metacard.ANY_TEXT))),
// filterFactory.literal("")),
// searchPhrase,
// "*", "?", "\\",
// isCaseSensitive) ) ;
//
// query.setStartIndex(1) ;
//
// query.setRequestsTotalResultsCount(true);
//
// return query;
// }
public QueryImpl during(String property, Date start, Date end) {
Instant startInstant = new DefaultInstant(new DefaultPosition(start));
Instant endInstant = new DefaultInstant(new DefaultPosition(end));
Period period = new DefaultPeriod(startInstant, endInstant);
Filter filter = filterFactory.during(filterFactory.property(property), filterFactory.literal(period));
QueryImpl query = new QueryImpl(filter);
query.setStartIndex(1);
query.setRequestsTotalResultsCount(true);
return query;
}
use of org.geotools.temporal.object.DefaultPeriod 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();
}
}
use of org.geotools.temporal.object.DefaultPeriod 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);
}
}
use of org.geotools.temporal.object.DefaultPeriod in project ddf by codice.
the class MockQuery method addTemporalFilter.
public void addTemporalFilter(XMLGregorianCalendar start, XMLGregorianCalendar end, String timeType) {
Filter filter = null;
String timeProperty = Metacard.MODIFIED;
if (timeType != null && timeType.toLowerCase().equals(Metacard.EFFECTIVE)) {
timeProperty = Metacard.EFFECTIVE;
}
if (start != null && end != null) {
int compareTo = start.toGregorianCalendar().compareTo(end.toGregorianCalendar());
if (compareTo > 0) {
throw new IllegalArgumentException("start date [" + start + "] should not be later than" + " end date [" + end + "]");
} else if (compareTo == 0) {
filter = FILTER_FACTORY.equals(FILTER_FACTORY.property(timeProperty), FILTER_FACTORY.literal(start.toGregorianCalendar().getTime()));
} else {
// t1.start < timeType instance < t1.end
DefaultPosition defaultPosition = new DefaultPosition(start.toGregorianCalendar().getTime());
Instant startInstant = new DefaultInstant(defaultPosition);
Instant endInstant = new DefaultInstant(new DefaultPosition(end.toGregorianCalendar().getTime()));
Period period = new DefaultPeriod(startInstant, endInstant);
filter = FILTER_FACTORY.during(FILTER_FACTORY.property(timeProperty), FILTER_FACTORY.literal(period));
}
filters.add(filter);
}
}
use of org.geotools.temporal.object.DefaultPeriod in project ddf by codice.
the class CatalogFrameworkQueryTest method testDuringQuery.
@Test
public void testDuringQuery() {
List<Metacard> metacards = new ArrayList<Metacard>();
MetacardImpl newCard1 = new MetacardImpl();
newCard1.setId(null);
Calendar duringStart = Calendar.getInstance();
Calendar card1Exp = Calendar.getInstance();
card1Exp.add(Calendar.YEAR, 1);
Calendar duringEnd1 = Calendar.getInstance();
duringEnd1.add(Calendar.YEAR, 2);
Calendar card2Exp = Calendar.getInstance();
card2Exp.add(Calendar.YEAR, 3);
Calendar duringEnd2 = Calendar.getInstance();
duringEnd2.add(Calendar.YEAR, 4);
newCard1.setExpirationDate(card1Exp.getTime());
metacards.add(newCard1);
MetacardImpl newCard2 = new MetacardImpl();
newCard2.setId(null);
newCard2.setExpirationDate(card2Exp.getTime());
metacards.add(newCard2);
String mcId1 = null;
String mcId2 = null;
CreateResponse createResponse = null;
try {
createResponse = framework.create(new CreateRequestImpl(metacards, null));
} catch (IngestException e1) {
LOGGER.error("Failure", e1);
fail();
} catch (SourceUnavailableException e1) {
LOGGER.error("Failure", e1);
fail();
}
assertEquals(createResponse.getCreatedMetacards().size(), metacards.size());
for (Metacard curCard : createResponse.getCreatedMetacards()) {
if (curCard.getExpirationDate().equals(card1Exp.getTime())) {
mcId1 = curCard.getId();
} else {
mcId2 = curCard.getId();
}
assertNotNull(curCard.getId());
}
FilterFactory filterFactory = new FilterFactoryImpl();
Period duringPeriod = new DefaultPeriod(new DefaultInstant(new DefaultPosition(duringStart.getTime())), new DefaultInstant(new DefaultPosition(duringEnd1.getTime())));
QueryImpl query = new QueryImpl(filterFactory.during(filterFactory.property(Metacard.EXPIRATION), filterFactory.literal(duringPeriod)));
QueryRequest queryReq = new QueryRequestImpl(query, false);
try {
QueryResponse response = framework.query(queryReq);
assertEquals("Expecting return 1 result.", 1, response.getHits());
assertEquals("During filter should return metacard[" + mcId1 + "]", mcId1, response.getResults().get(0).getMetacard().getId());
} catch (UnsupportedQueryException | SourceUnavailableException | FederationException e) {
LOGGER.error("Failure", e);
fail();
}
duringPeriod = new DefaultPeriod(new DefaultInstant(new DefaultPosition(card1Exp.getTime())), new DefaultInstant(new DefaultPosition(duringEnd2.getTime())));
query = new QueryImpl(filterFactory.during(filterFactory.property(Metacard.EXPIRATION), filterFactory.literal(duringPeriod)));
queryReq = new QueryRequestImpl(query, false);
try {
QueryResponse response = framework.query(queryReq);
assertEquals("During filter should return 1 result", 1, response.getHits());
assertEquals("During filter should return metacard[" + mcId2 + "]", mcId2, response.getResults().get(0).getMetacard().getId());
} catch (UnsupportedQueryException | SourceUnavailableException | FederationException e) {
LOGGER.error("Failure", e);
fail();
}
duringPeriod = new DefaultPeriod(new DefaultInstant(new DefaultPosition(duringStart.getTime())), new DefaultInstant(new DefaultPosition(duringEnd2.getTime())));
query = new QueryImpl(filterFactory.during(filterFactory.property(Metacard.EXPIRATION), filterFactory.literal(duringPeriod)));
queryReq = new QueryRequestImpl(query, false);
try {
QueryResponse response = framework.query(queryReq);
assertEquals("During filter should return 2 result", 2, response.getHits());
} catch (UnsupportedQueryException | SourceUnavailableException | FederationException e) {
LOGGER.error("Failure", e);
fail();
}
}
Aggregations