/** * * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated modifiable */ public Object parse(ElementInstance instance, Node node, Object value) throws Exception { Expression[] e = FESParseEncodeUtil.temporal(node, filterFactory); return filterFactory.after(e[0], e[1]); } }
/** * Build an After date filter * * @return After * @throws CQLException */ public After buildAfterDate() throws CQLException { Expression right = this.resultStack.popExpression(); Expression left = this.resultStack.popExpression(); After filter = this.filterFactory.after(left, right); return filter; }
/** * Builds an after period filter * * @return after * @throws CQLException */ public After buildAfterPeriod() throws CQLException { Result node = this.resultStack.popResult(); PeriodNode period = (PeriodNode) node.getBuilt(); Literal date = period.getEnding(); Expression property = this.resultStack.popExpression(); After filter = filterFactory.after(property, date); return filter; }
/** * Builds an Or filter composed of During and After. * * @return Or filter * @throws CQLException */ public Or buildDuringOrAfter() throws CQLException { Period period = this.resultStack.popPeriod(); PropertyName property = this.resultStack.popPropertyName(); // makes the after filter After right = this.filterFactory.after(property, filterFactory.literal(period.getEnding())); // makes the during filter During left = this.filterFactory.during(property, this.filterFactory.literal(period)); Or filter = this.filterFactory.or(left, right); return filter; } /**
public void testAfterInterval() throws Exception { Period period = period("2009-02-01 00:00:00", "2009-07-01 00:00:00"); FilterFactory ff = dataStore.getFilterFactory(); After after = ff.after(ff.property(aname("dt")), ff.literal(period)); assertDatesMatch(after, "2009-09-29 17:54:23"); after = ff.after(ff.literal(period), ff.property(aname("dt"))); assertDatesMatch(after, "2009-01-15 13:10:12"); }
public void testAfter() throws Exception { FilterFactory ff = dataStore.getFilterFactory(); After after = ff.after(ff.property(aname("dt")), ff.literal("2009-02-01 00:00:00")); assertDatesMatch(after, "2009-06-28 15:12:41", "2009-09-29 17:54:23"); }
public void testTemporalFilter() throws Exception { FilterCapabilities caps = new FilterCapabilities(); PostPreProcessFilterSplittingVisitor visitor = new PostPreProcessFilterSplittingVisitor(caps, null, null); Filter f1 = ff.after(ff.property("foo"), ff.literal("2011-06-20")); f1.accept(visitor, null); assertEquals(f1, visitor.getFilterPost()); }
public void testTemporalJoin() throws Exception { FilterFactory ff = dataStore.getFilterFactory(); After after = ff.after(ff.property(aname("dt")), ff.property("other." + aname("dt"))); Query q = new Query(tname("dates")); q.getJoins().add(new Join(tname("dates"), after).alias("other")); q.setSortBy(new SortBy[] {ff.sort(aname("dt"), SortOrder.ASCENDING)}); assertDatesMatch(q, "2009-06-28 15:12:41", "2009-09-29 17:54:23", "2009-09-29 17:54:23"); }
/** * Build an After date filter * * @return After * @throws CQLException */ public After buildAfterDate() throws CQLException { Expression right = this.resultStack.popExpression(); Expression left = this.resultStack.popExpression(); After filter = this.filterFactory.after(left, right); return filter; }
@Test public void testTemporalFilter() { visitor = new CapabilitiesFilterSplitter(simpleLogicalCaps, null, null); Filter f1 = ff.after(ff.property("foo"), ff.literal("2011-06-20")); f1.accept(visitor, null); assertEquals(Filter.INCLUDE, visitor.getFilterPre()); assertEquals(f1, visitor.getFilterPost()); Filter f2 = ff.equal(ff.property("bar"), ff.literal("hello"), true); Filter f3 = ff.and(f1, f2); f3.accept(visitor, null); assertEquals(f2, visitor.getFilterPre()); assertEquals(f1, visitor.getFilterPost()); }
/** * Builds an after period filter * * @return after * @throws CQLException */ public After buildAfterPeriod() throws CQLException { Result node = this.resultStack.popResult(); PeriodNode period = (PeriodNode) node.getBuilt(); Literal date = period.getEnding(); Expression property = this.resultStack.popExpression(); After filter = filterFactory.after(property, date); return filter; }
private Filter buildTimeFilter(FilterFactory filterFactory, Date start, Date end) { Expression timeProperty = filterFactory.property(timePropertyName); Expression startLiteral = filterFactory.literal(start); Expression endLiteral = filterFactory.literal(end); Filter after = filterFactory.after(timeProperty, startLiteral); Filter before = filterFactory.before(timeProperty, endLiteral); if (start != null && end != null) { return filterFactory.or(after, before); } if (start != null) { return after; } if (end != null) { return before; } return null; }
/** * Builds an Or filter composed of During and After. * * @return Or filter * @throws CQLException */ public Or buildDuringOrAfter() throws CQLException{ Period period = this.resultStack.popPeriod(); PropertyName property = this.resultStack.popPropertyName(); // makes the after filter After right = this.filterFactory.after(property, filterFactory.literal(period.getEnding())); // makes the during filter During left = this.filterFactory.during(property, this.filterFactory.literal(period)); Or filter = this.filterFactory.or(left, right); return filter; } /**