private void initVisitor() { visitor = new UniqueVisitor(this.idFieldName); visitor.setStartIndex(currentVisitorStart); visitor.setMaxFeatures(STEP_LOAD); try { fc.accepts(visitor, new NullProgressListener()); visitorIterator = visitor.getUnique().iterator(); } catch (IOException e) { throw new RuntimeException(e); } }
public void testUniquePagination() throws IOException { UniqueVisitor uniqueVisitor = new UniqueVisitor(0, ft); uniqueVisitor.setPreserveOrder(true); uniqueVisitor.setStartIndex(0); uniqueVisitor.setMaxFeatures(1); fc.accepts(uniqueVisitor, null); uniqueVisitor.setStartIndex(1); uniqueVisitor.setMaxFeatures(2); fc.accepts(uniqueVisitor, null); uniqueVisitor.setStartIndex(2); uniqueVisitor.setMaxFeatures(2); fc.accepts(uniqueVisitor, null); uniqueVisitor.setStartIndex(3); uniqueVisitor.setMaxFeatures(2); fc.accepts(uniqueVisitor, null);
public void testUniqueWithLimitOffsetOnVisitor() throws Exception { if (!dataStore.getSQLDialect().isLimitOffsetSupported() || !dataStore.getSQLDialect().isAggregatedSortSupported("distinct")) { return; } FilterFactory ff = dataStore.getFilterFactory(); PropertyName p = ff.property(aname("stringProperty")); UniqueVisitor v = new MyUniqueVisitor(p); v.setPreserveOrder(true); v.setStartIndex(1); v.setMaxFeatures(2); Query q = new Query(tname("ft1")); q.setSortBy(new SortBy[] {new SortByImpl(p, SortOrder.ASCENDING)}); dataStore.getFeatureSource(tname("ft1")).accepts(q, v, null); assertFalse(visited); Set result = v.getResult().toSet(); assertEquals(2, result.size()); assertEquals("two", result.iterator().next()); }
public void testUniqueWithLimitOnVisitor() throws Exception { if (!dataStore.getSQLDialect().isLimitOffsetSupported() || !dataStore.getSQLDialect().isAggregatedSortSupported("distinct")) { return; } FilterFactory ff = dataStore.getFilterFactory(); PropertyName p = ff.property(aname("stringProperty")); UniqueVisitor v = new MyUniqueVisitor(p); v.setPreserveOrder(true); v.setStartIndex(0); v.setMaxFeatures(2); Query q = new Query(tname("ft1")); q.setSortBy(new SortBy[] {new SortByImpl(p, SortOrder.ASCENDING)}); dataStore.getFeatureSource(tname("ft1")).accepts(q, v, null); assertFalse(visited); Set result = v.getResult().toSet(); assertEquals(2, result.size()); assertEquals("one", result.iterator().next()); }
UniqueVisitor transformedVisitor = new UniqueVisitor(transformedExpression); transformedVisitor.setMaxFeatures(original.getMaxFeatures()); transformedVisitor.setStartIndex(original.getStartIndex()); transformedVisitor.setPreserveOrder(original.isPreserveOrder()); delegateVisitor(transformedVisitor, progress);
visitor.setStartIndex(startIndex);