public void paintKey(SortKey reference) throws IOException { // anything to paint? if (!reference.equals(currentKey)) { return; } Feature startFeature = currentFeature; iterator.mark(); for (int i = 0; i < lfts.size(); i++) { while (!complete && reference.equals(currentKey)) { renderable.setFeature(currentFeature); renderer.processFeature(renderable, lfts.get(i)); if (renderer.renderingStopRequested) { return; } next(); } // we have to restart from the beginning with the next fts, remember // the first feature was already loaded if (i < (lfts.size() - 1)) { iterator.reset(); complete = false; currentFeature = startFeature; currentKey.copy(reference); } } }
private void testReset(int limit) throws IOException { DefaultProgressListener listener = new DefaultProgressListener(); try (MarkFeatureIterator iterator = MarkFeatureIterator.create(zroads.getFeatures(), limit, listener)) { if (limit >= zroads.getCount(Query.ALL)) { assertTrue(iterator instanceof MemoryMarkFeatureIterator); } else { assertTrue(iterator instanceof DiskMarkFeatureIterator); } iterator.mark(); assertThreeFeatures(iterator); iterator.reset(); assertThreeFeatures(iterator); } }