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