Skip to content

Commit

Permalink
chore(api): improve readability for Criteria
Browse files Browse the repository at this point in the history
  • Loading branch information
Marthym committed Dec 2, 2023
1 parent 5f0196d commit 2ee21a9
Showing 1 changed file with 15 additions and 11 deletions.
26 changes: 15 additions & 11 deletions juery-api/src/main/java/fr/ght1pc9kc/juery/api/Criteria.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
package fr.ght1pc9kc.juery.api;

import fr.ght1pc9kc.juery.api.filter.*;
import fr.ght1pc9kc.juery.api.filter.AndOperation;
import fr.ght1pc9kc.juery.api.filter.CriteriaVisitor;
import fr.ght1pc9kc.juery.api.filter.CriterionProperty;
import fr.ght1pc9kc.juery.api.filter.NoCriterion;
import fr.ght1pc9kc.juery.api.filter.NotOperation;
import fr.ght1pc9kc.juery.api.filter.OrOperation;

import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
* The main class to use <strong>Juery</strong>
*
* <p>
* Some examples:
*
* <pre>{@code
Expand All @@ -29,14 +33,14 @@ static Criteria and(Criteria... andCriteria) {
List<Criteria> filtered = Arrays.stream(andCriteria)
.filter(Predicate.not(Criteria::isEmpty))
.flatMap(a -> {
if (a instanceof AndOperation) {
return ((AndOperation) a).andCriteria.stream();
if (a instanceof AndOperation andOp) {
return andOp.andCriteria.stream();
} else {
return Stream.of(a);
}
})
.distinct()
.collect(Collectors.toUnmodifiableList());
.toList();
if (filtered.isEmpty()) {
return Criteria.none();
} else if (filtered.size() == 1) {
Expand All @@ -49,14 +53,14 @@ static Criteria or(Criteria... orCriteria) {
List<Criteria> filtered = Arrays.stream(orCriteria)
.filter(Predicate.not(Criteria::isEmpty))
.flatMap(a -> {
if (a instanceof OrOperation) {
return ((OrOperation) a).orCriteria.stream();
if (a instanceof OrOperation orOpe) {
return orOpe.orCriteria.stream();
} else {
return Stream.of(a);
}
})
.distinct()
.collect(Collectors.toUnmodifiableList());
.toList();
if (filtered.isEmpty()) {
return Criteria.none();
} else if (filtered.size() == 1) {
Expand All @@ -69,8 +73,8 @@ static Criteria not(Criteria criteria) {
if (criteria.isEmpty()) {
return criteria;
}
if (criteria instanceof NotOperation) {
return ((NotOperation) criteria).negative;
if (criteria instanceof NotOperation notOp) {
return notOp.negative;
}
return new NotOperation(criteria);
}
Expand Down

0 comments on commit 2ee21a9

Please sign in to comment.