@Override public void patchAs(String uri, Object patch) throws ForbiddenUserException, FailedRequestException { if (patch == null) { throw new IllegalArgumentException("no patch to apply"); } Class<?> as = patch.getClass(); DocumentPatchHandle patchHandle = null; if (DocumentPatchHandle.class.isAssignableFrom(as)) { patchHandle = (DocumentPatchHandle) patch; } else { ContentHandle<?> handle = getHandleRegistry().makeHandle(as); if (!DocumentPatchHandle.class.isAssignableFrom(handle.getClass())) { throw new IllegalArgumentException("Handle " + handle.getClass().getName() + " cannot be used to apply patch as " + as.getName()); } Utilities.setHandleContent(handle, patch); patchHandle = (DocumentPatchHandle) handle; } patch(uri, patchHandle); }
@Override public void patchAs(String uri, Object patch) throws ForbiddenUserException, FailedRequestException { if (patch == null) { throw new IllegalArgumentException("no patch to apply"); } Class<?> as = patch.getClass(); DocumentPatchHandle patchHandle = null; if (DocumentPatchHandle.class.isAssignableFrom(as)) { patchHandle = (DocumentPatchHandle) patch; } else { ContentHandle<?> handle = getHandleRegistry().makeHandle(as); if (!DocumentPatchHandle.class.isAssignableFrom(handle.getClass())) { throw new IllegalArgumentException( "Handle "+handle.getClass().getName()+ " cannot be used to apply patch as "+as.getName() ); } Utilities.setHandleContent(handle, patch); patchHandle = (DocumentPatchHandle) handle; } patch(uri, patchHandle); }
@Override public DocumentDescriptor createAs(DocumentUriTemplate template, DocumentMetadataWriteHandle metadataHandle, Object content, ServerTransform transform) throws ForbiddenUserException, FailedRequestException { Class<?> as = content.getClass(); W writeHandle = null; if (AbstractWriteHandle.class.isAssignableFrom(as)) { AbstractWriteHandle handle = (AbstractWriteHandle) content; writeHandle = castAbstractWriteHandle(null, handle); } else { ContentHandle<?> handle = getHandleRegistry().makeHandle(as); Utilities.setHandleContent(handle, content); writeHandle = castAbstractWriteHandle(as, handle); } return create(template, metadataHandle, writeHandle, transform); }
@Override public void writeAs(String uri, DocumentMetadataWriteHandle metadataHandle, Object content, ServerTransform transform) throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException { if (content == null) { throw new IllegalArgumentException("no content to write"); } Class<?> as = content.getClass(); W writeHandle = null; if (AbstractWriteHandle.class.isAssignableFrom(as)) { AbstractWriteHandle handle = (AbstractWriteHandle) content; writeHandle = castAbstractWriteHandle(null, handle); } else { ContentHandle<?> handle = getHandleRegistry().makeHandle(as); Utilities.setHandleContent(handle, content); writeHandle = castAbstractWriteHandle(as, handle); } write(uri, metadataHandle, writeHandle, transform); } W castAbstractWriteHandle(Class<?> as, AbstractWriteHandle handle) {
@Override public void writeAs(String uri, DocumentMetadataWriteHandle metadataHandle, Object content, ServerTransform transform) throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException { if (content == null) { throw new IllegalArgumentException("no content to write"); } Class<?> as = content.getClass(); W writeHandle = null; if (AbstractWriteHandle.class.isAssignableFrom(as)) { AbstractWriteHandle handle = (AbstractWriteHandle) content; writeHandle = castAbstractWriteHandle(null, handle); } else { ContentHandle<?> handle = getHandleRegistry().makeHandle(as); Utilities.setHandleContent(handle, content); writeHandle = castAbstractWriteHandle(as, handle); } write(uri, metadataHandle, writeHandle, transform); }
@Override public DocumentDescriptor createAs(DocumentUriTemplate template, DocumentMetadataWriteHandle metadataHandle, Object content, ServerTransform transform) throws ForbiddenUserException, FailedRequestException { Class<?> as = content.getClass(); W writeHandle = null; if (AbstractWriteHandle.class.isAssignableFrom(as)) { AbstractWriteHandle handle = (AbstractWriteHandle) content; writeHandle = castAbstractWriteHandle(null, handle); } else { ContentHandle<?> handle = getHandleRegistry().makeHandle(as); Utilities.setHandleContent(handle, content); writeHandle = castAbstractWriteHandle(as, handle); } return create(template, metadataHandle, writeHandle, transform); }
@Override public <T> T readAs(String uri, DocumentMetadataReadHandle metadataHandle, Class<T> as, ServerTransform transform) throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException { ContentHandle<T> handle = getHandleRegistry().makeHandle(as); if (null == read(uri, metadataHandle, castAbstractReadHandle(as, handle), transform)) { return null; } return handle.get(); }
@Override public <T> T readAs(String uri, DocumentMetadataReadHandle metadataHandle, Class<T> as, ServerTransform transform) throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException { ContentHandle<T> handle = getHandleRegistry().makeHandle(as); if (null == read(uri, metadataHandle, castAbstractReadHandle(as, handle), transform)) { return null; } return handle.get(); } R castAbstractReadHandle(Class<?> as, AbstractReadHandle handle) {
@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; }
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); }