@Override public <C> ContentHandle<C> newHandle(Class<C> type) { if ( ! isHandled(type) ) return null; JacksonDatabindHandle<C> handle = new JacksonDatabindHandle<>(type); if ( mapper != null ) handle.setMapper(mapper); return handle; } }
@Override public void saveJob(Job job, Transaction transaction) { JacksonDatabindHandle<Job> contentHandle = new JacksonDatabindHandle<>(job); contentHandle.setMapper(objectMapper); DocumentMetadataHandle metadataHandle = new DocumentMetadataHandle(); metadataHandle = metadataHandle.withCollections("job"); DocumentWriteSet writeSet = docMgr.newWriteSet(); writeSet.add("/jobs/" + job.getJobId() + ".json", metadataHandle, contentHandle); docMgr.write(writeSet, transaction); }
@Override public void write(T entity, Transaction transaction, String... collections) { if ( entity == null ) return; JacksonDatabindHandle<T> contentHandle = new JacksonDatabindHandle<>(entity); contentHandle.setMapper(objectMapper); DocumentMetadataHandle metadataHandle = new DocumentMetadataHandle(); metadataHandle = metadataHandle.withCollections(entityClass.getName()); if ( collections != null && collections.length > 0 ) { metadataHandle = metadataHandle.withCollections(collections); } DocumentWriteSet writeSet = docMgr.newWriteSet(); writeSet.add(getDocumentUri(entity), metadataHandle, contentHandle); try { docMgr.write(writeSet, transaction); } catch(MarkLogicIOException e) { checkForEmptyBeans(e); throw e; } }
@Override public void addCity(City city) { if ( numCities >= MAX_TO_WRITE ) return; JacksonDatabindHandle handle = new JacksonDatabindHandle(city); // NOTICE: We've set the mapper to an XmlMapper, showing the versitility of Jackson handle.setMapper(mapper); handle.setFormat(Format.XML); writeSet.add(DIRECTORY + "/xmlCities/" + city.getGeoNameId() + ".xml", handle); numCities++; } @Override