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/ExportToJson.java |  242 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 242 insertions(+), 0 deletions(-)

diff --git a/fdx_convert/src/main/java/com/megatim/fdxconvert/util/ExportToJson.java b/fdx_convert/src/main/java/com/megatim/fdxconvert/util/ExportToJson.java
new file mode 100644
index 0000000..ec72875
--- /dev/null
+++ b/fdx_convert/src/main/java/com/megatim/fdxconvert/util/ExportToJson.java
@@ -0,0 +1,242 @@
+/*
+ * 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.utilities.ParserUtils;
+import static com.megatim.typefichier.validator.utilities.Utilities.getCharset;
+import com.megatim.fdxconvert.pojo.FileToValidateDescription;
+import com.megatim.fdxconvert.pojo.ColumnDefinition;
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.nio.charset.Charset;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.StandardOpenOption;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.apache.commons.csv.CSVFormat;
+import org.apache.commons.csv.CSVParser;
+import org.apache.commons.csv.CSVRecord;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+
+/**
+ *
+ * @author ASUS
+ */
+public class ExportToJson {
+
+    public static void parseFileByColumnLength(FileToValidateDescription fileDesc, File outputFile, List<ColumnDefinition> colDefs) throws Exception {
+        final int nbElts = Count.countEltsOfTextFile(fileDesc, false);
+        int index = 1;
+        Collections.sort(colDefs, (c1, c2) -> Integer.valueOf(c1.getPosition()).compareTo(c2.getPosition()));
+
+        if (fileDesc != null) {
+
+            Charset charset = getCharset(fileDesc.getFile());
+
+            //Lecture des lignes du fichier et chargement dans une liste
+            try ( FileInputStream fis = new FileInputStream(fileDesc.getFile());  InputStreamReader isr = new InputStreamReader(fis, charset);  BufferedReader reader = new BufferedReader(isr)) {
+                if (outputFile.exists()) {
+                    outputFile.delete();
+                }
+                //Initialisation du writer pour ecrire chaque objet json
+                try ( BufferedWriter bufferWriter = Files.newBufferedWriter(outputFile.toPath(), charset, StandardOpenOption.APPEND, StandardOpenOption.CREATE, StandardOpenOption.SYNC);) {
+                    bufferWriter.write("[");
+                    String line;
+
+                    while ((line = reader.readLine()) != null) {
+                        String json = createJson(colDefs, line);
+                        bufferWriter.write(json);
+
+                        if (index < nbElts) {
+                            bufferWriter.write(",");
+                            index++;
+                        }
+                    }
+                    bufferWriter.write("]");
+                }
+            }
+        }
+    }
+
+    public static void parseCsvFile(FileToValidateDescription fileDesc, File outputFile, List<ColumnDefinition> colDefs, boolean headerPresent) throws Exception {
+        final int nbElts = Count.countEltsOfCsvFile(fileDesc, headerPresent);
+        int index = 0;
+
+        if (fileDesc != null) {
+            Charset charset = getCharset(fileDesc.getFile());
+            AtomicBoolean withHeader = new AtomicBoolean(headerPresent);
+
+            if (outputFile.exists()) {
+                outputFile.delete();
+            }
+
+            try ( FileInputStream fis = new FileInputStream(fileDesc.getFile());  InputStreamReader isr = new InputStreamReader(fis, charset);  BufferedReader reader = new BufferedReader(isr)) {
+                //Initialisation du writer pour ecrire chaque objet json
+                try ( BufferedWriter bufferWriter = Files.newBufferedWriter(outputFile.toPath(), charset, StandardOpenOption.APPEND, StandardOpenOption.CREATE, StandardOpenOption.SYNC)) {
+                    CSVParser parser = new CSVParser(reader, CSVFormat.DEFAULT.builder()
+                            .setSkipHeaderRecord(headerPresent)
+                            .setIgnoreSurroundingSpaces(true)
+                            .setTrim(true)
+                            .setDelimiter(fileDesc.getColumnDelimiter())
+                            .setRecordSeparator(fileDesc.getRowDelimiter())
+                            .build());
+
+                    bufferWriter.write("[");
+
+                    for (CSVRecord record : parser) {
+                        String[] columnsTableLine = new String[colDefs.size()];
+                        AtomicInteger i = new AtomicInteger(0);
+
+                        if (!withHeader.get()) {
+                            record.forEach(column -> {
+                                columnsTableLine[i.getAndIncrement()] = column != null ? column.replaceAll(" {2,}", " ").replaceAll("\r", "").replaceAll("\n", "").replaceAll("\t", "") : "";
+                            });
+                            String json = createJson(colDefs, columnsTableLine);
+                            bufferWriter.write(json);
+
+                            if (index < nbElts) {
+                                bufferWriter.write(",");
+                                index++;
+                            }
+                        } else {
+                            withHeader.set(false);
+                        }
+                    }
+                    bufferWriter.write("]");
+                }
+            } catch (Exception e) {
+                Logger.getLogger(ImportData.class.getName()).log(Level.SEVERE, e.getMessage(), e);
+            }
+        }
+    }
+
+    public static void parseXlsFile(FileToValidateDescription fileDesc, File outputFile, List<ColumnDefinition> colDefs, boolean headerPresent) throws Exception {
+        try ( InputStream is = new FileInputStream(fileDesc.getFile());  Workbook wb = new HSSFWorkbook(is)) {
+            parseExcelFile(fileDesc, wb, outputFile, colDefs, headerPresent);
+        }
+    }
+
+    public static void parseXlsxFile(FileToValidateDescription fileDesc, File outputFile, List<ColumnDefinition> colDefs, boolean headerPresent) throws Exception {
+        try ( InputStream is = new FileInputStream(fileDesc.getFile());  Workbook wb = new XSSFWorkbook(is)) {
+            parseExcelFile(fileDesc, wb, outputFile, colDefs, headerPresent);
+        }
+    }
+
+    private static Path filePath(File file, int sheetNumber) {
+        int extensionIndex = file.getName().lastIndexOf(".");
+        return Paths.get(file.getParent(),
+                file.getName().substring(0, extensionIndex) + sheetNumber + file.getName().substring(extensionIndex + 1));
+    }
+
+    private static void parseExcelFile(FileToValidateDescription fileDesc, Workbook wb, File outputFile, List<ColumnDefinition> colDefs, boolean headerPresent) throws IOException, Exception {
+        Charset charset = getCharset(fileDesc.getFile());
+        AtomicBoolean withHeader = new AtomicBoolean(headerPresent);
+
+        for (int i = 0; i < wb.getNumberOfSheets(); i++) {
+            Sheet sheet = wb.getSheetAt(i);
+            final int nbElts = Count.countEltsOfXlsFile(fileDesc.getFile(), i, headerPresent);
+            AtomicInteger position = new AtomicInteger(1);
+
+            if (outputFile.exists()) {
+                outputFile.delete();
+            }
+
+            //Initialisation du writer pour ecrire chaque objet json
+            try ( BufferedWriter bufferWriter = Files.newBufferedWriter(filePath(outputFile, i), charset, StandardOpenOption.APPEND, StandardOpenOption.CREATE, StandardOpenOption.SYNC);) {
+                bufferWriter.write("[");
+                for (org.apache.poi.ss.usermodel.Row r : sheet) {
+                    if (!withHeader.get()) {
+                        //Représente les colonnes extraites de chaque ligne du  fichier
+                        String[] columnsTableLine = new String[colDefs.size()];
+                        AtomicInteger index = new AtomicInteger(0);
+
+                        r.forEach(c -> {
+                            columnsTableLine[index.get()] = ParserUtils.getXlxsCellValue(c,
+                                    wb,
+                                    colDefs.get(index.get()).getTypeDonnee(),
+                                    colDefs.get(index.get()).getFormatDate(),
+                                    colDefs.get(index.get()).getSeparateurDate(),
+                                    colDefs.get(index.get()).getName()
+                            );
+                            index.incrementAndGet();
+                        });
+                        String json = createJson(colDefs, columnsTableLine);
+                        bufferWriter.write(json);
+
+                        if (position.get() < nbElts) {
+                            bufferWriter.write(",");
+                            position.incrementAndGet();
+                        }
+                    } else {
+                        withHeader.set(false);
+                    }
+                }
+                bufferWriter.write("]");
+            }
+
+        }
+    }
+
+    private static String createJson(List<ColumnDefinition> colDefs, String[] columnsTableLine) throws Exception {
+        StringBuilder json = new StringBuilder();
+        System.out.println("----------------- colDefs.size() = " + colDefs.size());
+        System.out.println("---------------- columnsTableLine.length = " + columnsTableLine.length);
+        if (colDefs.size() != columnsTableLine.length) {
+            throw new Exception("Existence des lignes mal formattées");
+        }
+
+        json.append("\t{\n");
+        int i = 0;
+
+        for (ColumnDefinition c : colDefs) {
+            String str = "\"" + c.getName() + "\" : " + "\"" + columnsTableLine[i].trim() + "\"";
+
+            if (i < colDefs.size() - 1) {
+                str += ",";
+            } else {
+                str += "\n";
+            }
+            json.append(str);
+            i++;
+        }
+        json.append("\t}\n");
+        return json.toString();
+    }
+
+    private static String createJson(List<ColumnDefinition> colDefs, String line) {
+        StringBuilder json = new StringBuilder();
+        json.append("\t{");
+        int i = 0;
+        int count = 0;
+
+        for (ColumnDefinition c : colDefs) {
+            String str = "\"" + c.getName() + "\" : " + "\"" + line.substring(i, i + c.getTaille()).trim() + "\"";
+
+            if (count < colDefs.size() - 1) {
+                str += ",";
+            }
+            json.append(str);
+            i += c.getTaille();
+            count++;
+        }
+        json.append("\t}\n");
+        return json.toString();
+    }
+
+}

--
Gitblit v1.10.0