From 23a46b4be35277e06ec89f48730eeb694e686be8 Mon Sep 17 00:00:00 2001
From: Kenmegne <stephanie.kenmegne@gmail.com>
Date: Thu, 18 Jun 2026 15:40:06 +0000
Subject: [PATCH] add fdx-commons and fdx-consultation

---
 apifdxweb/api/apifdxweb-core-impl/src/main/java/com/megatim/apifdxweb/core/impl/helper/FileDataReaderImpl.java |   68 ++++++++++++++++++++++++++++++++++
 1 files changed, 68 insertions(+), 0 deletions(-)

diff --git a/apifdxweb/api/apifdxweb-core-impl/src/main/java/com/megatim/apifdxweb/core/impl/helper/FileDataReaderImpl.java b/apifdxweb/api/apifdxweb-core-impl/src/main/java/com/megatim/apifdxweb/core/impl/helper/FileDataReaderImpl.java
new file mode 100644
index 0000000..a4dbebb
--- /dev/null
+++ b/apifdxweb/api/apifdxweb-core-impl/src/main/java/com/megatim/apifdxweb/core/impl/helper/FileDataReaderImpl.java
@@ -0,0 +1,68 @@
+package com.megatim.apifdxweb.core.impl.helper;
+
+import com.megatim.apifdxweb.core.ifaces.helper.FileDataReader;
+import com.megatim.apifdxweb.core.ifaces.integration.ColumnDefinitionManager;
+import com.megatim.fdxcommons.core.impl.tools.CommonUtilities;
+import com.megatim.fdxcommons.model.integration.ColumnDefinition;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import javax.enterprise.context.Dependent;
+import javax.inject.Inject;
+import java.nio.charset.Charset;
+import java.util.LinkedHashMap;
+
+/**
+ *
+ * @author lenovo
+ */
+@Dependent
+public class FileDataReaderImpl implements FileDataReader {
+
+    @Inject
+    private ColumnDefinitionManager columnDefinitionManager;
+
+    @Override
+    public List<LinkedHashMap<String, Object>> getDatas(String referentielVersion, String codeTypeFichier, File dataFile) throws Exception {
+        List<LinkedHashMap<String, Object>> datas = new ArrayList<>();
+        List<ColumnDefinition> columnsDefinition = columnDefinitionManager.findByReferentielAndTypeFichier(referentielVersion, codeTypeFichier);
+
+        //Ranger les olonnes par ordre croissant de position
+        Collections.sort(columnsDefinition, (ColumnDefinition c1, ColumnDefinition c2) -> Integer.valueOf(c1.getPosition()).compareTo(c2.getPosition()));
+
+        //On détermine l'encodage du fichier
+        Charset charset = CommonUtilities.getCharset(dataFile);
+
+        try ( FileInputStream fis = new FileInputStream(dataFile);  InputStreamReader isr = new InputStreamReader(fis, charset);  BufferedReader reader = new BufferedReader(isr)) {
+            String line;
+            while ((line = reader.readLine()) != null) {
+                LinkedHashMap<String, Object> dataLine = getLine(line, columnsDefinition);
+                datas.add(dataLine);
+            }
+        }
+
+        return datas;
+    }
+
+    private LinkedHashMap<String, Object> getLine(final String line, final List<ColumnDefinition> columnsDefinition) {
+        LinkedHashMap<String, Object> dataLine = new LinkedHashMap<>();
+        int index = 0;
+
+        for (ColumnDefinition c : columnsDefinition) {
+
+            //traitement des colonnes du type fichier
+            String data = line.substring(index, index + c.getTaille());
+            dataLine.put(c.getName(), data);
+
+            index += c.getTaille();
+        }
+
+        return dataLine;
+
+    }
+
+}

--
Gitblit v1.10.0