in src/main/java/org/apache/skywalking/banyandb/v1/client/AbstractQuery.java [117:137]
protected Optional<BanyandbModel.Criteria> buildCriteria() {
if (criteria != null) {
return Optional.of(criteria.build());
}
if (conditions.isEmpty()) {
return Optional.empty();
}
if (conditions.size() == 1) {
return Optional.of(conditions.get(0).cond().build());
}
return Optional.of(conditions.stream()
.reduce(null, (criteria, logicalExpression) -> {
BanyandbModel.LogicalExpression.Builder b = BanyandbModel.LogicalExpression.newBuilder();
if (criteria != null) {
b.setRight(criteria);
}
return BanyandbModel.Criteria.newBuilder()
.setLe(b.setOp(logicalExpression.op())
.setLeft(logicalExpression.cond().build())).build();
}, (first, second) -> second));
}