From 1eed12dac205c6a6e801ab89c98944dcdfb1265d Mon Sep 17 00:00:00 2001 From: Emmanuel Bruno <emmanuel.bruno@univ-tln.fr> Date: Tue, 2 Mar 2021 10:24:32 +0100 Subject: [PATCH] moves sort before filter. --- .../bruno/samples/jaxrs/model/BiblioModel.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main/java/fr/univtln/bruno/samples/jaxrs/model/BiblioModel.java b/src/main/java/fr/univtln/bruno/samples/jaxrs/model/BiblioModel.java index 9876f7e..84d030b 100644 --- a/src/main/java/fr/univtln/bruno/samples/jaxrs/model/BiblioModel.java +++ b/src/main/java/fr/univtln/bruno/samples/jaxrs/model/BiblioModel.java @@ -64,7 +64,12 @@ public class BiblioModel { } public List<Auteur> getWithFilter(PaginationInfo paginationInfo) { - Stream<Auteur> auteurStream = auteurs.stream(); + Stream<Auteur> auteurStream = auteurs.stream() + .sorted(Comparator.comparing(auteur -> switch (valueOf(paginationInfo.getSortKey().toUpperCase())) { + case NOM -> auteur.getNom(); + case PRENOM -> auteur.getPrenom(); + default -> throw new InvalidParameterException(); + })); if (paginationInfo.getNom() != null) auteurStream = auteurStream.filter(auteur -> auteur.getNom().equalsIgnoreCase(paginationInfo.getNom())); if (paginationInfo.getPrenom() != null) @@ -77,11 +82,7 @@ public class BiblioModel { .limit(paginationInfo.getPageSize()); } - return auteurStream.sorted(Comparator.comparing(auteur -> switch (valueOf(paginationInfo.getSortKey().toUpperCase())) { - case NOM -> auteur.getNom(); - case PRENOM -> auteur.getPrenom(); - default -> throw new InvalidParameterException(); - })).collect(Collectors.toList()); + return auteurStream.collect(Collectors.toList()); } public void supprimerAuteurs() { -- GitLab