From b3d0580439b9a00c7eb918085de1694151066004 Mon Sep 17 00:00:00 2001
From: Kenmegne <stephanie.kenmegne@gmail.com>
Date: Thu, 18 Jun 2026 16:02:49 +0000
Subject: [PATCH] rename packages
---
fdx_convert/src/main/java/com/megatim/fdxconvert/util/ParserUtils.java | 246 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 246 insertions(+), 0 deletions(-)
diff --git a/fdx_convert/src/main/java/com/megatim/fdxconvert/util/ParserUtils.java b/fdx_convert/src/main/java/com/megatim/fdxconvert/util/ParserUtils.java
new file mode 100644
index 0000000..43f660e
--- /dev/null
+++ b/fdx_convert/src/main/java/com/megatim/fdxconvert/util/ParserUtils.java
@@ -0,0 +1,246 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.fdxconvert.util;
+
+import com.megatim.typefichier.validator.model.enums.FileExtension;
+import com.megatim.typefichier.validator.utilities.Constantes;
+import com.megatim.fdxconvert.exceptions.ValidatorException;
+import com.megatim.fdxconvert.model.Validateur;
+import java.io.BufferedWriter;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.Charset;
+import java.util.Map;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import org.w3c.dom.Document;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.NodeList;
+
+/**
+ *
+ * @author ASUS
+ */
+public class ParserUtils {
+
+ private ParserUtils() {
+
+ }
+
+ public static boolean isConvertDataBeforeValidation(File file) throws Exception {
+ String extension = null;
+ boolean result = true;
+ Document doc = intialize(file);
+ NodeList entityList = doc.getElementsByTagName("entity"); //Liste des noeud <entity>
+
+ //Le validateur XML doit avoir au moins deux balises <entity> pour être conforme
+ if (entityList.getLength() >= 2) {
+ NamedNodeMap attributes = entityList.item(1).getAttributes();
+
+ for (int i = 0; i < attributes.getLength(); i++) {
+ String assertionAttributeName = attributes.item(i).getNodeName();
+ String assertionAttributeValue = attributes.item(i).getNodeValue();
+
+ if (assertionAttributeName.equalsIgnoreCase(Constantes.EXTENSION)) {
+ extension = assertionAttributeValue;
+
+ if (extension != null
+ && (extension.equalsIgnoreCase(FileExtension.CSV.name())
+ || extension.equalsIgnoreCase(FileExtension.XLS.name())
+ || extension.equalsIgnoreCase(FileExtension.XLSX.name()))) {
+ result = false;
+ break;
+ }
+ }
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Méthode qui extrait les informations de validation d'un fichier xml et
+ * les renvoie dans une map
+ *
+ * @param validateur : Validateur dont on veut extraire les infos
+ * @return : retourne une map de la forme
+ * <position_colonne_dans_une_ligne_de_donnee, informations_sur_la_colonne>
+ * @throws Exception
+ */
+ public static Map<Integer, Map> getValidateurElements(Validateur validateur) throws Exception {
+ return com.megatim.typefichier.validator.utilities.ParserUtils.getValidateurElements(validateur.getContent());
+ }
+
+ /**
+ * Méthode qui retire le caractère retour charriot dans une chaîne
+ *
+ * @param str
+ * @return
+ */
+// public static String removeReturnCharriot(String str) {
+// String result = str;
+//
+// if (str != null && !str.isEmpty()) {
+// String[] tab = str.split("\n");
+// result = "";
+//
+// for (String s : tab) {
+// result += s;
+// }
+// }
+// return result;
+// }
+ /**
+ * Méthode utilitaire pour extraire les données dans un fichier xml
+ *
+ * @param array
+ * @return
+ * @throws Exception
+ */
+ private static Document intialize(byte[] array) throws Exception {
+
+ /**
+ * Défini un factory qui aide à obtenir un parseur qui produit un arbre
+ * d'objets DOM à partir d'un docuent XML.
+ */
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+
+ /**
+ * création d'un objet du builder pour parser le fichier XML.
+ */
+ DocumentBuilder db = dbf.newDocumentBuilder();
+
+ Document doc = db.parse(new ByteArrayInputStream(array));
+
+ doc.getDocumentElement().normalize();
+
+ return doc;
+ }
+
+ private static Document intialize(File file) throws Exception {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ Document doc = db.parse(file);
+ doc.getDocumentElement().normalize();
+
+ return doc;
+ }
+
+ /**
+ * Méthode pour obtenir l'objet de typr char correspondant à chaque
+ * délimiteur
+ *
+ * @param delimiteur
+ * @return
+ */
+ public static char characterOfDelimiteur(String delimiteur) {
+ char character;
+
+ switch (delimiteur) {
+ case "\\t":
+ character = '\t';
+ break;
+ case "\\n":
+ character = '\n';
+ break;
+ case "":
+ character = '\0';
+ break;
+ default:
+ character = delimiteur.charAt(0);
+ }
+
+ return character;
+ }
+
+ /**
+ * Méthode permettant d'encoder une chaîne de caractères
+ *
+ * @param datas : tableau de String à encoder
+ * @param charset : encodage à utiliser
+ * @return
+ */
+ public static String[] encodeStrings(String[] datas, Charset charset) {
+ String[] encodedStrings = new String[datas.length];
+
+ for (int i = 0; i < encodedStrings.length; i++) {
+ byte[] bytesOfString = datas[i].getBytes();
+ encodedStrings[i] = new String(bytesOfString, charset);
+
+ }
+ return encodedStrings;
+ }
+
+ /**
+ * Méthode qui extrait une sous-chaîne dans une chaîne de caractères en
+ * utilisant un délimiteur
+ *
+ * @param line : chaîne mère à séparer
+ * @param character : délimiteur de chaîne
+ * @return : retourne un tableau contenant les châines extraites
+ */
+ public static String[] splitIntoColumns(String line, char character) {
+
+ int count = 0;
+
+ for (int i = 0; i < line.length(); i++) {
+
+ if (line.charAt(i) == character) {
+ count++;
+ }
+
+ }
+
+ String[] columns = new String[count + 1];
+
+ StringBuilder builder = new StringBuilder(0);
+
+ count = 0;
+
+ for (int i = 0; i < line.length(); i++) {
+
+ if (line.charAt(i) == character) {
+
+ columns[count] = builder.toString();
+
+ builder = new StringBuilder(0);
+
+ count++;
+
+ } else {
+
+ builder.append(line.charAt(i));
+ }
+
+ }
+
+ columns[count] = builder.toString();
+
+ return columns;
+ }
+
+ /**
+ * Méthode qui écrit dans un fichier
+ *
+ * @param finalColumnsTableLine : liste des châines à écrire dans le fichier
+ * @param bufferWriter : ressource permettant d'écrire dans le fichier
+ */
+ public static void writeToFile(String[] finalColumnsTableLine, final BufferedWriter bufferWriter) throws IOException {
+
+ //Ecriture dans le fichier output
+ StringBuilder safeLineBuilder = new StringBuilder(0);
+
+ for (String s : finalColumnsTableLine) {
+ safeLineBuilder.append(s);
+ }
+
+ String safeLine = safeLineBuilder.toString();
+
+ if (safeLine.length() > 0) {
+ bufferWriter.write(safeLine + System.lineSeparator());
+
+ }
+ }
+}
--
Gitblit v1.10.0