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

---
 fdx-commons/fdxcommons-tools/src/main/java/com/megatim/fdxcommons/tools/database/tables/FdxTableColumns.java |   54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 54 insertions(+), 0 deletions(-)

diff --git a/fdx-commons/fdxcommons-tools/src/main/java/com/megatim/fdxcommons/tools/database/tables/FdxTableColumns.java b/fdx-commons/fdxcommons-tools/src/main/java/com/megatim/fdxcommons/tools/database/tables/FdxTableColumns.java
new file mode 100644
index 0000000..516480a
--- /dev/null
+++ b/fdx-commons/fdxcommons-tools/src/main/java/com/megatim/fdxcommons/tools/database/tables/FdxTableColumns.java
@@ -0,0 +1,54 @@
+package com.megatim.fdxcommons.tools.database.tables;
+
+import com.megatim.fdxcommons.tools.exceptions.FdxColumnNotFoundException;
+import com.megatim.fdxcommons.tools.database.contrat.TableName;
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import javax.naming.NamingException;
+
+/**
+ *
+ * @author Gabuntu
+ */
+public class FdxTableColumns {
+
+    private final TableName tableName;
+    private final Connection connection;
+    private final List<FdxTableColumn> fdxTableColumns = new ArrayList<>();
+
+    public FdxTableColumns(TableName tableName, Connection connection) {
+        this.tableName = tableName;
+        this.connection = connection;
+    }
+
+    public List<FdxTableColumn> columns() throws SQLException, NamingException {
+        if (fdxTableColumns.isEmpty()) {
+            DatabaseMetaData metaData = connection.getMetaData();
+            ResultSet columns = metaData.getColumns(null, null, tableName.name(connection), null);
+            while (columns.next()) {
+                String name = columns.getString("COLUMN_NAME");
+                int type = columns.getInt("DATA_TYPE");
+                int position = columns.getInt("ORDINAL_POSITION");
+                int size = columns.getInt("COLUMN_SIZE");
+                fdxTableColumns.add(new FdxTableColumn(name, type, position, size));
+            }
+
+            Collections.sort(fdxTableColumns, (c1, c2) -> Integer.valueOf(c1.getPosition()).compareTo(c2.getPosition()));
+        }
+        return fdxTableColumns;
+    }
+
+    public FdxTableColumn column(String name) throws FdxColumnNotFoundException, SQLException, NamingException {
+        return columns()
+                .stream()
+                .filter(c -> c.getName().equals(name))
+                .findFirst()
+                .orElseThrow(() -> new FdxColumnNotFoundException("Colonne introuvable dans la table"));
+    }
+
+}

--
Gitblit v1.10.0