@SuppressWarnings("unchecked") protected Pair<GeoWaveInputKey, T> decodeRowToEntry( final GeoWaveRow row, final QueryFilter[] clientFilters, final InternalDataAdapter<T> adapter, final Index index) { final Object value = decodeRowToValue(row, clientFilters, adapter, index); if (value == null) { return null; } return valueToEntry(row, value); }
@Override public boolean hasNext() { findNext(); return nextEntry != null; }
@Override public boolean hasNext() { batchHelper.preHasNext(); return super.hasNext(); }
protected Iterator<Pair<GeoWaveInputKey, T>> rowReaderToKeyValues( final Index index, final QueryFilter[] filters, final DataIndexRetrieval dataIndexRetrieval, final Iterator<GeoWaveRow> reader) { InputFormatIteratorWrapper<T> iteratorWrapper; if (dataIndexRetrieval instanceof BatchDataIndexRetrieval) { // need special handling to account for asynchronous batched retrieval from the data index iteratorWrapper = new AsyncInputFormatIteratorWrapper<>( reader, filters, adapterStore, internalAdapterStore, index, isOutputWritable, (BatchDataIndexRetrieval) dataIndexRetrieval); } else { iteratorWrapper = new InputFormatIteratorWrapper<>( reader, filters, adapterStore, internalAdapterStore, index, isOutputWritable, dataIndexRetrieval); } return iteratorWrapper; }
protected void findNext() { while ((this.nextEntry == null) && reader.hasNext()) { final GeoWaveRow nextRow = reader.next(); if (nextRow != null) { final Pair<GeoWaveInputKey, T> decodedValue = decodeRowToEntry( nextRow, queryFilters, (InternalDataAdapter<T>) serializationTool.getInternalAdapter( nextRow.getAdapterId()), index); if (decodedValue != null) { nextEntry = decodedValue; return; } } } }
@Override protected void findNext() { super.findNext(); final boolean hasNextValue = (nextEntry != null); final Pair<GeoWaveInputKey, T> batchNextValue = batchHelper.postFindNext(hasNextValue, reader.hasNext()); if (!hasNextValue) { nextEntry = batchNextValue; } }