Skip to content

Commit

Permalink
FEAT ITEM-269-back-modifier-lordre-de-tri-du-fichier
Browse files Browse the repository at this point in the history
     - déplacement de la méthode sortFichierCorrespondance() de Utilitaires.java vers FichierPrepare.java
     - renommage de la méthode sortFichierCorrespondance() en sortOnFile()
  • Loading branch information
EryneKL committed Oct 16, 2024
1 parent 3cf9452 commit e8bcd1b
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 42 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -89,7 +89,6 @@ public void alimenterEpn(String input, String listeppn, String rcr) {
} catch (IOException ex) {
log.error(Constant.ERROR_UNABLE_TO_CREATE_FILE);
}

}

/**
Expand All @@ -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<String> 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<String> 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);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
33 changes: 0 additions & 33 deletions core/src/main/java/fr/abes/item/core/utilitaire/Utilitaires.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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<String> 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<String> correspondanceSortList = new ArrayList<>(correspondanceUnsortList);
return result + correspondanceSortList.toString().replaceAll(", ","").replaceAll("\\[", "").replaceAll("\\[", "").replaceAll("\\]", "").replaceAll("\\]", "");
}
}

0 comments on commit e8bcd1b

Please sign in to comment.