From 7e5e7fb4bb035a49f3f004527e9a6bac5d83f499 Mon Sep 17 00:00:00 2001 From: EryneKL <97091460+EryneKL@users.noreply.github.com> Date: Tue, 15 Oct 2024 11:13:13 +0200 Subject: [PATCH 1/5] =?UTF-8?q?FEAT=20ITEM-269-back-modifier-lordre-de-tri?= =?UTF-8?q?-du-fichier=20=20=20=20=20=20-=20ajout=20d'une=20m=C3=A9thode?= =?UTF-8?q?=20de=20tri=20dans=20Utilitaires.java=20=20=20=20=20=20-=20ajou?= =?UTF-8?q?t=20d'un=20appel=20=C3=A0=20la=20m=C3=A9thode=20de=20tri=20dans?= =?UTF-8?q?=20DownloadFichierRestService.java?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/FichierSauvegardeSuppCsv.java | 4 +- .../item/core/utilitaire/Utilitaires.java | 41 +++++++++++++++++-- .../item/web/DownloadFichierRestService.java | 9 ++-- 3 files changed, 45 insertions(+), 9 deletions(-) diff --git a/core/src/main/java/fr/abes/item/core/components/FichierSauvegardeSuppCsv.java b/core/src/main/java/fr/abes/item/core/components/FichierSauvegardeSuppCsv.java index 7aa7a714..7210468e 100644 --- a/core/src/main/java/fr/abes/item/core/components/FichierSauvegardeSuppCsv.java +++ b/core/src/main/java/fr/abes/item/core/components/FichierSauvegardeSuppCsv.java @@ -42,7 +42,7 @@ public void writePpnInFile(String ppn, Exemplaire exemplaire) throws StorageExce // ajout de la ligne out.println(ppn + ";" + gererZones(listDeReference, exemplaire)); } catch (IOException ex) { - throw new StorageException("Impossible d'écrire dans le fichier de sauvegarde txt"); + throw new StorageException("Impossible d'écrire dans le fichier de sauvegarde csv"); } } @@ -115,7 +115,7 @@ public void writeHeader() { // ajout de la ligne out.println(String.join(";", this.referenceService.constructHeaderCsv())); } catch (IOException ex) { - throw new StorageException("Impossible d'écrire dans le fichier de sauvegarde txt"); + throw new StorageException("Impossible d'écrire dans le fichier de sauvegarde csv"); } } } diff --git a/core/src/main/java/fr/abes/item/core/utilitaire/Utilitaires.java b/core/src/main/java/fr/abes/item/core/utilitaire/Utilitaires.java index 42ac78a8..26d334d5 100644 --- a/core/src/main/java/fr/abes/item/core/utilitaire/Utilitaires.java +++ b/core/src/main/java/fr/abes/item/core/utilitaire/Utilitaires.java @@ -12,12 +12,13 @@ import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.springframework.core.io.ByteArrayResource; +import org.springframework.core.io.Resource; +import java.io.BufferedReader; +import java.io.FileReader; import java.io.IOException; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.PrimitiveIterator; +import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -369,4 +370,36 @@ public static String getLabelTypeDemande(TYPE_DEMANDE typeDemande) { case SUPP -> "suppression"; }; } + + /** + * Méthode qui permet de trier le contenu du fichier de correspondence + * @param file un fichier de type Resource + * @return un fichier de type Resource + * @throws IOException renvoi une exception si le fichier ne peut être lu + */ + public static Resource sortFichierCorrespondance(Resource file) throws IOException { + FileReader fileReader = new FileReader(String.valueOf(file.getURI()).substring(6)); + BufferedReader reader = new BufferedReader(fileReader); + List correspondenceUnsortList = new ArrayList<>(); + String result = null; + int i = 0; + for (String line = reader.readLine(); line != null; line = reader.readLine()) { + if (i == 0) { // stockage de la ligne d'en-tête + result = line + "\n"; + i++; + } else { + // stockage des lignes de correspondence + correspondenceUnsortList.add(line+"\n"); + } + } + reader.close(); + fileReader.close(); + // tri des lignes + Collections.sort(correspondenceUnsortList); + // assemblage de l'en-tête avec les lignes pour constituer le résultat final + List correspondenceSortList = new ArrayList<>(correspondenceUnsortList); + result = result + correspondenceSortList.toString().replaceAll(", ","").replaceAll("\\[", "").replaceAll("\\[", "").replaceAll("\\]", "").replaceAll("\\]", ""); + + return new ByteArrayResource(result.getBytes()); + } } diff --git a/web/src/main/java/fr/abes/item/web/DownloadFichierRestService.java b/web/src/main/java/fr/abes/item/web/DownloadFichierRestService.java index 22ad943c..73de34ad 100644 --- a/web/src/main/java/fr/abes/item/web/DownloadFichierRestService.java +++ b/web/src/main/java/fr/abes/item/web/DownloadFichierRestService.java @@ -4,6 +4,7 @@ import fr.abes.item.core.exception.ForbiddenException; import fr.abes.item.core.exception.UserExistException; import fr.abes.item.core.service.FileSystemStorageService; +import fr.abes.item.core.utilitaire.Utilitaires; import fr.abes.item.security.CheckAccessToServices; import io.swagger.v3.oas.annotations.Operation; import jakarta.servlet.http.HttpServletRequest; @@ -16,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.io.IOException; import java.nio.file.Paths; @RestController @@ -43,7 +45,7 @@ public DownloadFichierRestService(FileSystemStorageService storageService, Check @Operation(summary = "permet de récupérer les fichiers relatifs à une demande") public ResponseEntity downloadFile( @PathVariable("filename") String filename, @PathVariable("id") Integer numDemande, @PathVariable("type") TYPE_DEMANDE type, HttpServletRequest request - ) throws UserExistException, ForbiddenException { + ) throws UserExistException, ForbiddenException, IOException { checkAccessToServices.autoriserAccesDemandeParIln(numDemande, request.getAttribute("userNum").toString(), type); if (numDemande != null && numDemande != 0) { @@ -52,9 +54,10 @@ public ResponseEntity downloadFile( } Resource file = storageService.loadAsResource(filename); + Resource bodyFile = Utilitaires.sortFichierCorrespondance(file); + return ResponseEntity.ok() .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=\"" + file.getFilename() + "\"") - .body(file); - + .body(bodyFile); } } From 3cf94525b3e99c80ac3d858191c270e2154bfe71 Mon Sep 17 00:00:00 2001 From: EryneKL <97091460+EryneKL@users.noreply.github.com> Date: Wed, 16 Oct 2024 10:07:09 +0200 Subject: [PATCH 2/5] =?UTF-8?q?FEAT=20ITEM-269-back-modifier-lordre-de-tri?= =?UTF-8?q?-du-fichier=20=20=20=20=20=20-=20ajout=20d'une=20m=C3=A9thode?= =?UTF-8?q?=20de=20tri=20des=20correspondances=20dans=20Utilitaires.java?= =?UTF-8?q?=20=20=20=20=20=20-=20ajout=20d'une=20m=C3=A9thode=20d'inscript?= =?UTF-8?q?ion=20sur=20le=20fichier=20des=20correspondances=20tri=C3=A9es?= =?UTF-8?q?=20dans=20FichierPrepare.java=20=20=20=20=20=20-=20ajout=20d'un?= =?UTF-8?q?=20appel=20aux=20m=C3=A9thodes=20de=20tri=20des=20correspondanc?= =?UTF-8?q?es=20et=20d'=C3=A9criture=20sur=20le=20fichier=20dans=20Demande?= =?UTF-8?q?SuppService.java=20=20=20=20=20=20-=20ajout=20d'une=20constante?= =?UTF-8?q?=20en=20cas=20d'erreur=20d'inscription=20sur=20le=20fichier=20d?= =?UTF-8?q?es=20correspondances=20tri=C3=A9es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../item/core/components/FichierPrepare.java | 31 +++++++++++++------ .../fr/abes/item/core/constant/Constant.java | 1 + .../core/service/impl/DemandeSuppService.java | 1 + .../item/core/utilitaire/Utilitaires.java | 20 ++++++------ .../item/web/DownloadFichierRestService.java | 7 ++--- 5 files changed, 35 insertions(+), 25 deletions(-) diff --git a/core/src/main/java/fr/abes/item/core/components/FichierPrepare.java b/core/src/main/java/fr/abes/item/core/components/FichierPrepare.java index 4c767206..c40d94f5 100644 --- a/core/src/main/java/fr/abes/item/core/components/FichierPrepare.java +++ b/core/src/main/java/fr/abes/item/core/components/FichierPrepare.java @@ -19,12 +19,12 @@ @Slf4j @Component public class FichierPrepare extends AbstractFichier implements Fichier { - + @Autowired public FichierPrepare(@Value("") final String filename) { this.filename = filename; } - + @Override public String getFilename() { return this.filename; @@ -34,7 +34,7 @@ public String getFilename() { public void setFilename(String filename) { this.filename = filename; } - + @Override public int getType() { return Constant.ETATDEM_PREPAREE; @@ -53,7 +53,7 @@ public void checkFileContent(Demande demandeModif) { public void generateFileName(Demande demande) { this.filename = Constant.FIC_PREPARE_NAME + demande.getId() + Constant.EXTENSIONCSV; } - + /** * Méthode d'écriture de la première ligne dans le fichier */ @@ -64,9 +64,9 @@ public void ecrireEnTete() { out.println("PPN;RCR;EPN;"); } catch (IOException ex) { log.error(Constant.ERROR_UNABLE_TO_CREATE_FILE); - } + } } - + /** * Méthode permetant d'alimenter le fichier à partir d'une chaine correspondant à une liste d'epn * @param input résultat de l'appel à la fonction Oracle @@ -88,8 +88,8 @@ public void alimenterEpn(String input, String listeppn, String rcr) { } } catch (IOException ex) { log.error(Constant.ERROR_UNABLE_TO_CREATE_FILE); - } - + } + } /** @@ -116,6 +116,19 @@ public void alimenterPpn(String input, String listeEpn, String rcr) { } } - + + /** + * Méthode permettant d'écrire sur le fichier la liste des correspondances triées + * @param sortedResult String contenant la liste des correspondances triées + */ + public void writeSortedFileToDisk(String sortedResult) { + try (FileWriter fw = new FileWriter(path.resolve(filename).toString()); + BufferedWriter bw = new BufferedWriter(fw); + PrintWriter out = new PrintWriter(bw)) { + out.println(sortedResult); + } catch (IOException ex) { + log.error(Constant.ERROR_UNABLE_TO_CREATE_SORTED_FILE); + } + } } diff --git a/core/src/main/java/fr/abes/item/core/constant/Constant.java b/core/src/main/java/fr/abes/item/core/constant/Constant.java index bf8ce134..7d27722c 100644 --- a/core/src/main/java/fr/abes/item/core/constant/Constant.java +++ b/core/src/main/java/fr/abes/item/core/constant/Constant.java @@ -231,6 +231,7 @@ public class Constant implements Serializable { public static final String ERROR_MONTH_RANGE = "Le mois doit être compris entre 1 et 12"; public static final String ERROR_YEAR_RANGE = "L'année ne peut pas être inférieure à l'année courante"; public static final String ERROR_UNABLE_TO_CREATE_FILE = "impossible de créer le fichier ppn;rcr;epn"; + public static final String ERROR_UNABLE_TO_CREATE_SORTED_FILE = "impossible de créer le fichier de correspondance trié"; public static final String ERROR_UNKNOWN_REST_CONTROLLER = "unknown error caught in RESTController, {}"; public static final String REST_RESPONDING_WITH_STATUS = "Response REST avec statut {}"; public static final String ERROR_FIRST_LINE_OF_FILE_NULL = "la première ligne du fichier est nulle"; diff --git a/core/src/main/java/fr/abes/item/core/service/impl/DemandeSuppService.java b/core/src/main/java/fr/abes/item/core/service/impl/DemandeSuppService.java index c23101d9..693ab52d 100644 --- a/core/src/main/java/fr/abes/item/core/service/impl/DemandeSuppService.java +++ b/core/src/main/java/fr/abes/item/core/service/impl/DemandeSuppService.java @@ -181,6 +181,7 @@ private void preparerFichierEnPrep(DemandeSupp demande) throws IOException, Dema //Alimentation du fichier par appel à la procédure Oracle ppntoepn appelProcStockee(demande.getRcr(), demande.getTypeSuppression()); demande.setEtatDemande(new EtatDemande(Constant.ETATDEM_PREPAREE)); + fichierPrepare.writeSortedFileToDisk(Utilitaires.sortFichierCorrespondance(storageService.loadAsResource(fichierPrepare.getFilename()))); save(demande); checkEtatDemande(demande); } diff --git a/core/src/main/java/fr/abes/item/core/utilitaire/Utilitaires.java b/core/src/main/java/fr/abes/item/core/utilitaire/Utilitaires.java index 26d334d5..83f73707 100644 --- a/core/src/main/java/fr/abes/item/core/utilitaire/Utilitaires.java +++ b/core/src/main/java/fr/abes/item/core/utilitaire/Utilitaires.java @@ -372,15 +372,15 @@ public static String getLabelTypeDemande(TYPE_DEMANDE typeDemande) { } /** - * Méthode qui permet de trier le contenu du fichier de correspondence + * Méthode qui permet de trier le contenu du fichier de correspondance * @param file un fichier de type Resource - * @return un fichier de type Resource + * @return une String contenant les correspondances triées * @throws IOException renvoi une exception si le fichier ne peut être lu */ - public static Resource sortFichierCorrespondance(Resource file) throws IOException { + public static String sortFichierCorrespondance(Resource file) throws IOException { FileReader fileReader = new FileReader(String.valueOf(file.getURI()).substring(6)); BufferedReader reader = new BufferedReader(fileReader); - List correspondenceUnsortList = new ArrayList<>(); + List correspondanceUnsortList = new ArrayList<>(); String result = null; int i = 0; for (String line = reader.readLine(); line != null; line = reader.readLine()) { @@ -388,18 +388,16 @@ public static Resource sortFichierCorrespondance(Resource file) throws IOExcepti result = line + "\n"; i++; } else { - // stockage des lignes de correspondence - correspondenceUnsortList.add(line+"\n"); + // stockage des lignes de correspondance + correspondanceUnsortList.add(line+"\n"); } } reader.close(); fileReader.close(); // tri des lignes - Collections.sort(correspondenceUnsortList); + Collections.sort(correspondanceUnsortList); // assemblage de l'en-tête avec les lignes pour constituer le résultat final - List correspondenceSortList = new ArrayList<>(correspondenceUnsortList); - result = result + correspondenceSortList.toString().replaceAll(", ","").replaceAll("\\[", "").replaceAll("\\[", "").replaceAll("\\]", "").replaceAll("\\]", ""); - - return new ByteArrayResource(result.getBytes()); + List correspondanceSortList = new ArrayList<>(correspondanceUnsortList); + return result + correspondanceSortList.toString().replaceAll(", ","").replaceAll("\\[", "").replaceAll("\\[", "").replaceAll("\\]", "").replaceAll("\\]", ""); } } diff --git a/web/src/main/java/fr/abes/item/web/DownloadFichierRestService.java b/web/src/main/java/fr/abes/item/web/DownloadFichierRestService.java index 73de34ad..44c05d3c 100644 --- a/web/src/main/java/fr/abes/item/web/DownloadFichierRestService.java +++ b/web/src/main/java/fr/abes/item/web/DownloadFichierRestService.java @@ -4,7 +4,6 @@ import fr.abes.item.core.exception.ForbiddenException; import fr.abes.item.core.exception.UserExistException; import fr.abes.item.core.service.FileSystemStorageService; -import fr.abes.item.core.utilitaire.Utilitaires; import fr.abes.item.security.CheckAccessToServices; import io.swagger.v3.oas.annotations.Operation; import jakarta.servlet.http.HttpServletRequest; @@ -45,7 +44,7 @@ public DownloadFichierRestService(FileSystemStorageService storageService, Check @Operation(summary = "permet de récupérer les fichiers relatifs à une demande") public ResponseEntity downloadFile( @PathVariable("filename") String filename, @PathVariable("id") Integer numDemande, @PathVariable("type") TYPE_DEMANDE type, HttpServletRequest request - ) throws UserExistException, ForbiddenException, IOException { + ) throws UserExistException, ForbiddenException { checkAccessToServices.autoriserAccesDemandeParIln(numDemande, request.getAttribute("userNum").toString(), type); if (numDemande != null && numDemande != 0) { @@ -54,10 +53,8 @@ public ResponseEntity downloadFile( } Resource file = storageService.loadAsResource(filename); - Resource bodyFile = Utilitaires.sortFichierCorrespondance(file); - return ResponseEntity.ok() .header(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=\"" + file.getFilename() + "\"") - .body(bodyFile); + .body(file); } } From e8bcd1be6ab4e3dff1a34b0609475ae21dcdc04e Mon Sep 17 00:00:00 2001 From: EryneKL <97091460+EryneKL@users.noreply.github.com> Date: Wed, 16 Oct 2024 14:56:17 +0200 Subject: [PATCH 3/5] =?UTF-8?q?FEAT=20ITEM-269-back-modifier-lordre-de-tri?= =?UTF-8?q?-du-fichier=20=20=20=20=20=20-=20d=C3=A9placement=20de=20la=20m?= =?UTF-8?q?=C3=A9thode=20sortFichierCorrespondance()=20de=20Utilitaires.ja?= =?UTF-8?q?va=20vers=20FichierPrepare.java=20=20=20=20=20=20-=20renommage?= =?UTF-8?q?=20de=20la=20m=C3=A9thode=20sortFichierCorrespondance()=20en=20?= =?UTF-8?q?sortOnFile()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../item/core/components/FichierPrepare.java | 43 +++++++++++++++---- .../core/service/impl/DemandeSuppService.java | 2 +- .../item/core/utilitaire/Utilitaires.java | 33 -------------- 3 files changed, 36 insertions(+), 42 deletions(-) diff --git a/core/src/main/java/fr/abes/item/core/components/FichierPrepare.java b/core/src/main/java/fr/abes/item/core/components/FichierPrepare.java index c40d94f5..901561de 100644 --- a/core/src/main/java/fr/abes/item/core/components/FichierPrepare.java +++ b/core/src/main/java/fr/abes/item/core/components/FichierPrepare.java @@ -11,10 +11,10 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; -import java.io.BufferedWriter; -import java.io.FileWriter; -import java.io.IOException; -import java.io.PrintWriter; +import java.io.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; @Slf4j @Component @@ -89,7 +89,6 @@ public void alimenterEpn(String input, String listeppn, String rcr) { } catch (IOException ex) { log.error(Constant.ERROR_UNABLE_TO_CREATE_FILE); } - } /** @@ -114,18 +113,46 @@ public void alimenterPpn(String input, String listeEpn, String rcr) { } catch (IOException ex) { log.error(Constant.ERROR_UNABLE_TO_CREATE_FILE); } + } + /** + * Méthode qui permet de trier le contenu du fichier de correspondance + * @throws IOException renvoi une exception si le fichier ne peut être lu + */ + public void trierLignesDeCorrespondances() throws IOException { + FileReader fileReader = new FileReader(path.resolve(filename).toString()); + BufferedReader reader = new BufferedReader(fileReader); + List correspondanceUnsortList = new ArrayList<>(); + String result = null; + int i = 0; + for (String line = reader.readLine(); line != null; line = reader.readLine()) { + if (i == 0) { // stockage de la ligne d'en-tête + result = line + "\n"; + i++; + } else { + // stockage des lignes de correspondance + correspondanceUnsortList.add(line+"\n"); + } + } + reader.close(); + fileReader.close(); + // tri des lignes + Collections.sort(correspondanceUnsortList); + // assemblage de l'en-tête avec les lignes pour constituer le résultat final + List correspondanceSortList = new ArrayList<>(correspondanceUnsortList); + result = result + correspondanceSortList.toString().replaceAll(", ","").replaceAll("\\[", "").replaceAll("\\[", "").replaceAll("\\]", "").replaceAll("\\]", ""); + ecrireFichierTrie(result); } /** * Méthode permettant d'écrire sur le fichier la liste des correspondances triées - * @param sortedResult String contenant la liste des correspondances triées + * @param sortedLines String contenant la liste des correspondances triées */ - public void writeSortedFileToDisk(String sortedResult) { + public void ecrireFichierTrie(String sortedLines) { try (FileWriter fw = new FileWriter(path.resolve(filename).toString()); BufferedWriter bw = new BufferedWriter(fw); PrintWriter out = new PrintWriter(bw)) { - out.println(sortedResult); + out.println(sortedLines); } catch (IOException ex) { log.error(Constant.ERROR_UNABLE_TO_CREATE_SORTED_FILE); } diff --git a/core/src/main/java/fr/abes/item/core/service/impl/DemandeSuppService.java b/core/src/main/java/fr/abes/item/core/service/impl/DemandeSuppService.java index 693ab52d..6b0f8cf2 100644 --- a/core/src/main/java/fr/abes/item/core/service/impl/DemandeSuppService.java +++ b/core/src/main/java/fr/abes/item/core/service/impl/DemandeSuppService.java @@ -181,7 +181,7 @@ private void preparerFichierEnPrep(DemandeSupp demande) throws IOException, Dema //Alimentation du fichier par appel à la procédure Oracle ppntoepn appelProcStockee(demande.getRcr(), demande.getTypeSuppression()); demande.setEtatDemande(new EtatDemande(Constant.ETATDEM_PREPAREE)); - fichierPrepare.writeSortedFileToDisk(Utilitaires.sortFichierCorrespondance(storageService.loadAsResource(fichierPrepare.getFilename()))); + fichierPrepare.trierLignesDeCorrespondances(); save(demande); checkEtatDemande(demande); } diff --git a/core/src/main/java/fr/abes/item/core/utilitaire/Utilitaires.java b/core/src/main/java/fr/abes/item/core/utilitaire/Utilitaires.java index 83f73707..8d7c66a9 100644 --- a/core/src/main/java/fr/abes/item/core/utilitaire/Utilitaires.java +++ b/core/src/main/java/fr/abes/item/core/utilitaire/Utilitaires.java @@ -12,11 +12,7 @@ import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.springframework.core.io.ByteArrayResource; -import org.springframework.core.io.Resource; -import java.io.BufferedReader; -import java.io.FileReader; import java.io.IOException; import java.util.*; import java.util.regex.Matcher; @@ -371,33 +367,4 @@ public static String getLabelTypeDemande(TYPE_DEMANDE typeDemande) { }; } - /** - * Méthode qui permet de trier le contenu du fichier de correspondance - * @param file un fichier de type Resource - * @return une String contenant les correspondances triées - * @throws IOException renvoi une exception si le fichier ne peut être lu - */ - public static String sortFichierCorrespondance(Resource file) throws IOException { - FileReader fileReader = new FileReader(String.valueOf(file.getURI()).substring(6)); - BufferedReader reader = new BufferedReader(fileReader); - List correspondanceUnsortList = new ArrayList<>(); - String result = null; - int i = 0; - for (String line = reader.readLine(); line != null; line = reader.readLine()) { - if (i == 0) { // stockage de la ligne d'en-tête - result = line + "\n"; - i++; - } else { - // stockage des lignes de correspondance - correspondanceUnsortList.add(line+"\n"); - } - } - reader.close(); - fileReader.close(); - // tri des lignes - Collections.sort(correspondanceUnsortList); - // assemblage de l'en-tête avec les lignes pour constituer le résultat final - List correspondanceSortList = new ArrayList<>(correspondanceUnsortList); - return result + correspondanceSortList.toString().replaceAll(", ","").replaceAll("\\[", "").replaceAll("\\[", "").replaceAll("\\]", "").replaceAll("\\]", ""); - } } From 4b8769a34e07f0064080b51b17b35422e379a59e Mon Sep 17 00:00:00 2001 From: EryneKL <97091460+EryneKL@users.noreply.github.com> Date: Wed, 16 Oct 2024 15:20:53 +0200 Subject: [PATCH 4/5] =?UTF-8?q?FEAT=20ITEM-269-back-modifier-lordre-de-tri?= =?UTF-8?q?-du-fichier=20=20=20=20=20=20-=20passage=20de=20la=20m=C3=A9tho?= =?UTF-8?q?de=20ecrireFichierTrie()=20en=20private?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/fr/abes/item/core/components/FichierPrepare.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/fr/abes/item/core/components/FichierPrepare.java b/core/src/main/java/fr/abes/item/core/components/FichierPrepare.java index 901561de..16e60c74 100644 --- a/core/src/main/java/fr/abes/item/core/components/FichierPrepare.java +++ b/core/src/main/java/fr/abes/item/core/components/FichierPrepare.java @@ -148,7 +148,7 @@ public void trierLignesDeCorrespondances() throws IOException { * Méthode permettant d'écrire sur le fichier la liste des correspondances triées * @param sortedLines String contenant la liste des correspondances triées */ - public void ecrireFichierTrie(String sortedLines) { + private void ecrireFichierTrie(String sortedLines) { try (FileWriter fw = new FileWriter(path.resolve(filename).toString()); BufferedWriter bw = new BufferedWriter(fw); PrintWriter out = new PrintWriter(bw)) { From cb7d442c3316c4b617aed338b89967331cd38ea5 Mon Sep 17 00:00:00 2001 From: EryneKL <97091460+EryneKL@users.noreply.github.com> Date: Thu, 17 Oct 2024 08:59:42 +0200 Subject: [PATCH 5/5] =?UTF-8?q?FEAT=20ITEM-269-back-modifier-lordre-de-tri?= =?UTF-8?q?-du-fichier=20=20=20=20=20=20-=20simplification=20du=20code=20d?= =?UTF-8?q?e=20la=20m=C3=A9thode=20trierLignesDeCorrespondances()=20dans?= =?UTF-8?q?=20FichierPrepare.java?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../item/core/components/FichierPrepare.java | 25 ++++++------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/core/src/main/java/fr/abes/item/core/components/FichierPrepare.java b/core/src/main/java/fr/abes/item/core/components/FichierPrepare.java index 16e60c74..d152a7d2 100644 --- a/core/src/main/java/fr/abes/item/core/components/FichierPrepare.java +++ b/core/src/main/java/fr/abes/item/core/components/FichierPrepare.java @@ -122,25 +122,16 @@ public void alimenterPpn(String input, String listeEpn, String rcr) { public void trierLignesDeCorrespondances() throws IOException { FileReader fileReader = new FileReader(path.resolve(filename).toString()); BufferedReader reader = new BufferedReader(fileReader); - List correspondanceUnsortList = new ArrayList<>(); - String result = null; - int i = 0; - for (String line = reader.readLine(); line != null; line = reader.readLine()) { - if (i == 0) { // stockage de la ligne d'en-tête - result = line + "\n"; - i++; - } else { - // stockage des lignes de correspondance - correspondanceUnsortList.add(line+"\n"); - } - } + + List correspondanceSortList = new ArrayList<>(); + String header = reader.readLine();//cette ligne enleve le header et le stock + correspondanceSortList.add(header + "\n"); + reader.lines().sorted().forEach(line -> { + correspondanceSortList.add(line+"\n"); + }); reader.close(); fileReader.close(); - // tri des lignes - Collections.sort(correspondanceUnsortList); - // assemblage de l'en-tête avec les lignes pour constituer le résultat final - List correspondanceSortList = new ArrayList<>(correspondanceUnsortList); - result = result + correspondanceSortList.toString().replaceAll(", ","").replaceAll("\\[", "").replaceAll("\\[", "").replaceAll("\\]", "").replaceAll("\\]", ""); + String result = String.join("", correspondanceSortList); ecrireFichierTrie(result); }