@Override
public boolean apply(final MemoryStoreEntry input) {
if ((readerParams.getFilter() != null) && options.isServerSideLibraryEnabled()) {
final PersistentDataset<CommonIndexValue> commonData = new PersistentDataset<>();
final List<FlattenedUnreadData> unreadData = new ArrayList<>();
final List<String> commonIndexFieldNames =
DataStoreUtils.getUniqueDimensionFields(readerParams.getIndex().getIndexModel());
for (final GeoWaveValue v : input.getRow().getFieldValues()) {
unreadData.add(
DataStoreUtils.aggregateFieldData(
input.getRow(),
v,
commonData,
readerParams.getIndex().getIndexModel(),
commonIndexFieldNames));
}
return readerParams.getFilter().accept(
readerParams.getIndex().getIndexModel(),
new DeferredReadCommonIndexedPersistenceEncoding(
input.getRow().getAdapterId(),
input.getRow().getDataId(),
input.getRow().getPartitionKey(),
input.getRow().getSortKey(),
input.getRow().getNumberOfDuplicates(),
commonData,
unreadData.isEmpty() ? null : new UnreadFieldDataList(unreadData)));
}
return true;
}
}), readerParams.getRowTransformer());