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