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