@Override @SuppressWarnings("unchecked") public <T extends SearchReadHandle> T search(QueryDefinition querydef, T searchHandle, long start, Transaction transaction, String forestName) { if (searchHandle instanceof SearchHandle) { SearchHandle responseHandle = (SearchHandle) searchHandle; responseHandle.setHandleRegistry(getHandleRegistry()); responseHandle.setQueryCriteria(querydef); } return services.search(requestLogger, searchHandle, querydef, start, pageLen, view, transaction, forestName); }
@Override public PojoPage<T> search(PojoQueryDefinition query, long start, SearchReadHandle searchHandle, Transaction transaction) { if ( searchHandle != null ) { HandleAccessor.checkHandle(searchHandle, "search"); if (searchHandle instanceof SearchHandle) { SearchHandle responseHandle = (SearchHandle) searchHandle; if ( docMgr instanceof DocumentManagerImpl ) { responseHandle.setHandleRegistry(((DocumentManagerImpl<?, ?>) docMgr).getHandleRegistry()); } responseHandle.setQueryCriteria(query); } } DocumentPage docPage = docMgr.search(wrapQuery(query), start, searchHandle, transaction); PojoPage<T> pojoPage = new PojoPageImpl<>(docPage, entityClass); return pojoPage; }
@Override @SuppressWarnings("unchecked") public <T extends SearchReadHandle> T search(QueryDefinition querydef, T searchHandle, long start, Transaction transaction) { @SuppressWarnings("rawtypes") HandleImplementation searchBase = HandleAccessor.checkHandle(searchHandle, "search"); if (searchHandle instanceof SearchHandle) { SearchHandle responseHandle = (SearchHandle) searchHandle; responseHandle.setHandleRegistry(getHandleRegistry()); responseHandle.setQueryCriteria(querydef); } Format searchFormat = searchBase.getFormat(); switch(searchFormat) { case UNKNOWN: searchFormat = Format.XML; break; case JSON: case XML: break; default: throw new UnsupportedOperationException("Only XML and JSON search results are possible."); } String mimetype = searchFormat.getDefaultMimetype(); String tid = transaction == null ? null : transaction.getTransactionId(); searchBase.receiveContent(services.search(requestLogger, searchBase.receiveAs(), querydef, mimetype, start, pageLen, view, tid)); return searchHandle; }
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(); // the default for bulk is no metadata, which differs from the normal // default of ALL Set<Metadata> metadata = isProcessedMetadataModified ? processedMetadata : null; return services.getBulkDocuments(requestLogger, serverTimestamp, querydef, start, getPageLength(), transaction, searchHandle, searchView, metadata, nonDocumentFormat, getReadTransform(), null); }