private DocumentPage search(QueryDefinition querydef, long start,
long serverTimestamp, SearchReadHandle searchHandle, Transaction transaction) {
if (searchHandle != null) {
HandleImplementation searchBase = HandleAccessor.checkHandle(
searchHandle, "search");
if (searchHandle instanceof SearchHandle) {
SearchHandle responseHandle = (SearchHandle) searchHandle;
responseHandle.setHandleRegistry(getHandleRegistry());
responseHandle.setQueryCriteria(querydef);
}
if (nonDocumentFormat != null
&& nonDocumentFormat != searchBase.getFormat()) {
throw new UnsupportedOperationException(
"The format supported by your handle:[" + searchBase.getFormat()
+ "] does not match the non-document format:["
+ nonDocumentFormat + "]");
}
}
String tid = transaction == null ? null : transaction.getTransactionId();
Set<Metadata> metadata = isProcessedMetadataModified ? processedMetadata
: null;
return services.getBulkDocuments(requestLogger, serverTimestamp, querydef, start,
getPageLength(), transaction, searchHandle, searchView, metadata,
nonDocumentFormat, getReadTransform(), null);
}