@Override public long count(String documentCollection) { Objects.requireNonNull(documentCollection, "document collection is required"); String aql = "RETURN LENGTH(" + documentCollection + ")"; ArangoCursor<Object> query = arangoDB.db(database).query(aql, Collections.emptyMap(), null, Object.class); return StreamSupport.stream(query.spliterator(), false).findFirst().map(Long.class::cast).orElse(0L); }
@Override public List<DocumentEntity> aql(String query, Map<String, Object> values) throws NullPointerException { requireNonNull(query, "query is required"); requireNonNull(values, "values is required"); ArangoCursor<BaseDocument> result = arangoDB.db(database).query(query, values, null, BaseDocument.class); return StreamSupport.stream(result.spliterator(), false) .map(ArangoDBUtil::toEntity) .collect(toList()); }
@Override public List<DocumentEntity> select(DocumentQuery query) throws NullPointerException { requireNonNull(query, "query is required"); AQLQueryResult result = QueryAQLConverter.select(query); ArangoCursor<BaseDocument> documents = arangoDB.db(database).query(result.getQuery(), result.getValues(), null, BaseDocument.class); return StreamSupport.stream(documents.spliterator(), false) .map(ArangoDBUtil::toEntity) .collect(toList()); }