private void checkContentFormat(Object contentHandle) { checkContentFormat(HandleAccessor.checkHandle(contentHandle, "content")); } @SuppressWarnings("rawtypes")
private void checkContentFormat(Object contentHandle) { checkContentFormat(HandleAccessor.checkHandle(contentHandle, "content")); }
@Override public void patchDocument(RequestLogger reqlog, DocumentDescriptor desc, String transactionId, Set<Metadata> categories, boolean isOnContent, DocumentPatchHandle patchHandle) throws ResourceNotFoundException, ResourceNotResendableException, ForbiddenUserException, FailedRequestException { HandleImplementation patchBase = HandleAccessor.checkHandle( patchHandle, "patch"); putPostDocumentImpl(reqlog, "patch", desc, transactionId, categories, isOnContent, null, patchBase.getMimetype(), patchHandle); }
public static List<XMLEvent> importFromHandle(AbstractWriteHandle writeHandle) { if (writeHandle == null) { return null; } @SuppressWarnings("rawtypes") HandleImplementation baseHandle = HandleAccessor.checkHandle(writeHandle, "import"); return objectToEvents(baseHandle.sendContent()); } static public List<XMLEvent> objectToEvents(Object content) {
public static List<XMLEvent> importFromHandle(AbstractWriteHandle writeHandle) { if (writeHandle == null) { return null; } @SuppressWarnings("rawtypes") HandleImplementation baseHandle = HandleAccessor.checkHandle(writeHandle, "import"); return objectToEvents(baseHandle.sendContent()); } static public List<XMLEvent> objectToEvents(Object content) {
private <T extends AbstractReadHandle> T readTransform( String transformName, String sourceMimetype, T sourceHandle) throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException { if (transformName == null) throw new IllegalArgumentException("Reading transform with null name"); if (logger.isInfoEnabled()) logger.info("Reading transform source for {}", transformName); HandleImplementation sourceBase = HandleAccessor.checkHandle(sourceHandle, "transform"); sourceBase.receiveContent( services.getValue(requestLogger, "config/transforms", transformName, true, sourceMimetype, sourceBase.receiveAs()) ); return sourceHandle; }
@Override public <T extends TextReadHandle> T readServices(String resourceName, T sourceHandle) { if (resourceName == null) throw new IllegalArgumentException("Reading resource services source with null name"); if (logger.isInfoEnabled()) logger.info("Reading resource services source for {}", resourceName); HandleImplementation sourceBase = HandleAccessor.checkHandle(sourceHandle, "resource"); sourceBase.receiveContent( services.getValue(requestLogger, "config/resources", resourceName, true, "application/xquery", sourceBase.receiveAs()) ); return sourceHandle; }
@SuppressWarnings("unchecked") @Override public String[] suggest(SuggestDefinition suggestDef) { DOMHandle handle = new DOMHandle(); @SuppressWarnings("rawtypes") HandleImplementation suggestBase = HandleAccessor.checkHandle(handle, "suggest"); suggestBase.receiveContent(services.suggest(suggestBase.receiveAs(), suggestDef)); Document doc = handle.get(); NodeList nodeList = doc.getDocumentElement().getChildNodes(); List<String> suggestions = new ArrayList<String>(); for (int i=0; i <nodeList.getLength(); i++) { suggestions.add(nodeList.item(i).getTextContent()); } return suggestions.toArray(new String[suggestions.size()]); }
@SuppressWarnings("unchecked") @Override public String[] suggest(SuggestDefinition suggestDef) { DOMHandle handle = new DOMHandle(); @SuppressWarnings("rawtypes") HandleImplementation suggestBase = HandleAccessor.checkHandle(handle, "suggest"); suggestBase.receiveContent(services.suggest(suggestBase.receiveAs(), suggestDef)); Document doc = handle.get(); NodeList nodeList = doc.getDocumentElement().getChildNodes(); List<String> suggestions = new ArrayList<>(); for (int i=0; i <nodeList.getLength(); i++) { suggestions.add(nodeList.item(i).getTextContent()); } return suggestions.toArray(new String[suggestions.size()]); }
private <T extends AbstractReadHandle> T readTransform( String transformName, String sourceMimetype, T sourceHandle) throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException { if (transformName == null) throw new IllegalArgumentException("Reading transform with null name"); if (logger.isInfoEnabled()) logger.info("Reading transform source for {}", transformName); HandleImplementation sourceBase = HandleAccessor.checkHandle(sourceHandle, "transform"); sourceBase.receiveContent( services.getValue(requestLogger, "config/transforms", transformName, true, sourceMimetype, sourceBase.receiveAs()) ); return sourceHandle; }
@Override public <T extends TextReadHandle> T readServices(String resourceName, T sourceHandle) { if (resourceName == null) throw new IllegalArgumentException("Reading resource services source with null name"); if (logger.isInfoEnabled()) logger.info("Reading resource services source for {}", resourceName); HandleImplementation sourceBase = HandleAccessor.checkHandle(sourceHandle, "resource"); sourceBase.receiveContent( services.getValue(requestLogger, "config/resources", resourceName, true, sourceBase.getMimetype(), sourceBase.receiveAs()) ); return sourceHandle; }
@SuppressWarnings("unchecked") public static <T extends AbstractReadHandle> T exportToHandle( List<XMLEvent> events, T handle ) { if (handle == null) { return null; } @SuppressWarnings("rawtypes") HandleImplementation baseHandle = HandleAccessor.checkHandle(handle, "export"); baseHandle.receiveContent( eventsToObject(events, baseHandle.receiveAs()) ); return handle; } public static Object eventsToObject(List<XMLEvent> events, Class<?> as) {
@SuppressWarnings("unchecked") public static <T extends AbstractReadHandle> T exportTextToHandle( List<XMLEvent> events, T handle ) { if (handle == null) { return null; } @SuppressWarnings("rawtypes") HandleImplementation baseHandle = HandleAccessor.checkHandle(handle, "export"); baseHandle.receiveContent( eventTextToObject(events, baseHandle.receiveAs()) ); return handle; } public static Object eventTextToObject(List<XMLEvent> events, Class<?> as) {
@SuppressWarnings("unchecked") public static <T extends AbstractReadHandle> T exportTextToHandle( List<XMLEvent> events, T handle ) { if (handle == null) { return null; } @SuppressWarnings("rawtypes") HandleImplementation baseHandle = HandleAccessor.checkHandle(handle, "export"); baseHandle.receiveContent( eventTextToObject(events, baseHandle.receiveAs()) ); return handle; } public static Object eventTextToObject(List<XMLEvent> events, Class<?> as) {
@SuppressWarnings("unchecked") public static <T extends AbstractReadHandle> T exportToHandle( List<XMLEvent> events, T handle ) { if (handle == null) { return null; } @SuppressWarnings("rawtypes") HandleImplementation baseHandle = HandleAccessor.checkHandle(handle, "export"); baseHandle.receiveContent( eventsToObject(events, baseHandle.receiveAs()) ); return handle; } public static Object eventsToObject(List<XMLEvent> events, Class<?> as) {
@SuppressWarnings("rawtypes") @Override public <T extends RuleListReadHandle> T match(StructureWriteHandle document, String[] candidateRules, T ruleListHandle, ServerTransform transform) { HandleImplementation searchBase = HandleAccessor.checkHandle(document, "match"); 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 queries can filter for rule matches."); } String mimeType = searchFormat.getDefaultMimetype(); HandleAccessor.receiveContent(ruleListHandle, services.match(document, candidateRules, mimeType, transform)); return ruleListHandle; }
@Override public void patchDocument(RequestLogger reqlog, DocumentDescriptor desc, Transaction transaction, Set<Metadata> categories, boolean isOnContent, RequestParameters extraParams, String sourceDocumentURI, DocumentPatchHandle patchHandle) throws ResourceNotFoundException, ResourceNotResendableException, ForbiddenUserException, FailedRequestException { HandleImplementation patchBase = HandleAccessor.checkHandle(patchHandle, "patch"); if(sourceDocumentURI != null) extraParams.add("source-document", sourceDocumentURI); putPostDocumentImpl(reqlog, "patch", desc, transaction, categories, isOnContent, extraParams, patchBase.getMimetype(), patchHandle); }
@Override @SuppressWarnings({ "rawtypes", "unchecked" }) public <T extends StructureReadHandle> T readStatus(T handle) throws ForbiddenUserException, FailedRequestException { if (handle == null) throw new IllegalArgumentException("reading transaction status with null handle"); HandleImplementation handleBase = HandleAccessor.checkHandle(handle, "structure"); handleBase.receiveContent( services.getValue( null, "transactions", getTransactionId(), false, handleBase.getMimetype(), handleBase.receiveAs() ) ); return handle; }
@SuppressWarnings({ "unchecked", "rawtypes" }) @Override public <T extends QueryOptionsListReadHandle> T optionsList(T optionsHandle) throws ForbiddenUserException, FailedRequestException { HandleImplementation optionsBase = HandleAccessor.checkHandle(optionsHandle, "optionslist"); Format optionsFormat = optionsBase.getFormat(); switch(optionsFormat) { case UNKNOWN: optionsFormat = Format.XML; break; case JSON: case XML: break; default: throw new UnsupportedOperationException("Only XML and JSON options list results are possible."); } String mimetype = optionsFormat.getDefaultMimetype(); optionsBase.receiveContent(services.optionsList(optionsBase.receiveAs(), mimetype, null)); return optionsHandle; } }
@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; }