private String mapToJson(Map<String, ByteIterator> values) { VPackBuilder builder = new VPackBuilder().add(ValueType.OBJECT); for (Map.Entry<String, ByteIterator> entry : values.entrySet()) { builder.add(entry.getKey(), byteIteratorToString(entry.getValue())); } builder.close(); return arangoDB.util().deserialize(builder.slice(), String.class); }
recordcount, constructReturnForAQL(fields, "target")); Map<String, Object> bindVars = new MapBuilder().put("key", startkey).get(); cursor = arangoDB.db(databaseName).query(aqlQuery, bindVars, null, VPackSlice.class); while (cursor.hasNext()) {
@Override public VPackSlice serialize(final Object entity) throws ArangoDBException { return serializer.serialize(entity); }
protected Request importDocumentsRequest(final Collection<?> values, final DocumentImportOptions options) { return importDocumentsRequest(options).putQueryParam("type", ImportType.list).setBody(util(Serializer.CUSTOM) .serialize(values, new ArangoSerializer.Options().serializeNullValues(false).stringAsJson(true))); }
protected Request queryRequest( final String query, final Map<String, Object> bindVars, final AqlQueryOptions options) { final AqlQueryOptions opt = options != null ? options : new AqlQueryOptions(); final Request request = request(name, RequestType.POST, PATH_API_CURSOR).setBody( util().serialize(OptionsBuilder.build(opt, query, bindVars != null ? util().serialize(bindVars, new ArangoSerializer.Options().serializeNullValues(true)) : null))); if (opt.getAllowDirtyRead() == Boolean.TRUE) { RequestUtils.allowDirtyRead(request); } return request; }
@Override public VPackSlice serialize(final Object entity) throws ArangoDBException { return serialize(entity, new ArangoSerializer.Options()); }
protected Request setLogLevelRequest(final LogLevelEntity entity) { return request(ArangoRequestParam.SYSTEM, RequestType.PUT, PATH_API_ADMIN_LOG_LEVEL) .setBody(util().serialize(entity)); }
@Override public <T> T deserialize(final VPackSlice vpack, final Type type) throws ArangoDBException { return deserializer.deserialize(vpack, type); }
private <T> ArangoCursor<T> createCursor( final CursorEntity result, final Class<T> type, final AqlQueryOptions options, final HostHandle hostHandle) { final ArangoCursorExecute execute = new ArangoCursorExecute() { @Override public CursorEntity next(final String id) { return executor.execute(queryNextRequest(id, options), CursorEntity.class, hostHandle); } @Override public void close(final String id) { executor.execute(queryCloseRequest(id, options), Void.class, hostHandle); } }; return cursorInitializer != null ? cursorInitializer.createInstance(this, execute, type, result) : new ArangoCursorImpl<T>(this, execute, type, result); }
@Override public <T> Iterable<T> findAll(final Class<T> entityClass) throws DataAccessException { final String query = "FOR entity IN @@col RETURN entity"; final Map<String, Object> bindVars = new MapBuilder().put("@col", entityClass).get(); return new Iterable<T>() { @Override public Iterator<T> iterator() { return query(query, bindVars, null, entityClass); } }; }
protected <T> Request insertDocumentsRequest(final Collection<T> values, final DocumentCreateOptions params) { final Request request = request(db.name(), RequestType.POST, PATH_API_DOCUMENT, name); request.putQueryParam(ArangoRequestParam.WAIT_FOR_SYNC, params.getWaitForSync()); request.putQueryParam(RETURN_NEW, params.getReturnNew()); request.putQueryParam(RETURN_OLD, params.getReturnOld()); request.putQueryParam(SILENT, params.getSilent()); request.putQueryParam(OVERWRITE, params.getOverwrite()); request.setBody(util(Serializer.CUSTOM).serialize(values, new ArangoSerializer.Options().serializeNullValues(false).stringAsJson(true))); return request; }
protected <R> R deserialize(final VPackSlice result, final Class<R> type) { return db.util(Serializer.CUSTOM).deserialize(result, type); }
protected <T> Request updateVertexRequest(final String key, final T value, final VertexUpdateOptions options) { final Request request; request = request(graph.db().name(), RequestType.PATCH, PATH_API_GHARIAL, graph.name(), VERTEX, DocumentUtil.createDocumentHandle(name, key)); final VertexUpdateOptions params = (options != null ? options : new VertexUpdateOptions()); request.putQueryParam(ArangoRequestParam.KEEP_NULL, params.getKeepNull()); request.putQueryParam(ArangoRequestParam.WAIT_FOR_SYNC, params.getWaitForSync()); request.putHeaderParam(ArangoRequestParam.IF_MATCH, params.getIfMatch()); request.setBody( util(Serializer.CUSTOM).serialize(value, new ArangoSerializer.Options().serializeNullValues(true))); return request; }
@Override public VPackSlice serialize(final Object entity) throws ArangoDBException { return serialize(entity, new ArangoSerializer.Options()); }
@Override public VPackSlice serialize(final Object entity, final Options options) throws ArangoDBException { return serializer.serialize(entity, options); }
protected Request setQueryTrackingPropertiesRequest(final QueryTrackingPropertiesEntity properties) { return request(name, RequestType.PUT, PATH_API_QUERY_PROPERTIES).setBody(util().serialize(properties)); }
@Override public <T> Iterable<T> findAll(final Class<T> entityClass) throws DataAccessException { final String query = "FOR entity IN @@col RETURN entity"; final Map<String, Object> bindVars = new MapBuilder().put("@col", entityClass).get(); return new Iterable<T>() { @Override public Iterator<T> iterator() { return query(query, bindVars, null, entityClass); } }; }
protected <T> Request replaceDocumentsRequest(final Collection<T> values, final DocumentReplaceOptions params) { final Request request = request(db.name(), RequestType.PUT, PATH_API_DOCUMENT, name); request.putHeaderParam(ArangoRequestParam.IF_MATCH, params.getIfMatch()); request.putQueryParam(ArangoRequestParam.WAIT_FOR_SYNC, params.getWaitForSync()); request.putQueryParam(IGNORE_REVS, params.getIgnoreRevs()); request.putQueryParam(RETURN_NEW, params.getReturnNew()); request.putQueryParam(RETURN_OLD, params.getReturnOld()); request.putQueryParam(SILENT, params.getSilent()); request.setBody(util(Serializer.CUSTOM).serialize(values, new ArangoSerializer.Options().serializeNullValues(false).stringAsJson(true))); return request; }
@SuppressWarnings("unchecked") protected <T> T createResult(final Type type, final Response response) { return (T) ((type != Void.class && response.getBody() != null) ? util.deserialize(response.getBody(), type) : null); }
protected Response createResponse(final Message message) throws VPackParserException { final Response response = util.deserialize(message.getHead(), Response.class); if (message.getBody() != null) { response.setBody(message.getBody()); } return response; }