protected Optional buildCriteria()

in src/main/java/org/apache/skywalking/banyandb/v1/client/AbstractQuery.java [122:142]


    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));
    }