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/queries/metadata/jpql/JpqlWhereQueryParameters.java |   97 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 97 insertions(+), 0 deletions(-)

diff --git a/fdx-commons/fdxcommons-tools/src/main/java/com/megatim/fdxcommons/tools/database/queries/metadata/jpql/JpqlWhereQueryParameters.java b/fdx-commons/fdxcommons-tools/src/main/java/com/megatim/fdxcommons/tools/database/queries/metadata/jpql/JpqlWhereQueryParameters.java
new file mode 100644
index 0000000..11a7786
--- /dev/null
+++ b/fdx-commons/fdxcommons-tools/src/main/java/com/megatim/fdxcommons/tools/database/queries/metadata/jpql/JpqlWhereQueryParameters.java
@@ -0,0 +1,97 @@
+package com.megatim.fdxcommons.tools.database.queries.metadata.jpql;
+
+import static com.megatim.fdxcommons.model.enumeration.Operateur.BETWEEN;
+import static com.megatim.fdxcommons.model.enumeration.Operateur.EQUALS;
+import static com.megatim.fdxcommons.model.enumeration.Operateur.GREATER_OR_EQUALS_THAN;
+import static com.megatim.fdxcommons.model.enumeration.Operateur.GREATER_THAN;
+import static com.megatim.fdxcommons.model.enumeration.Operateur.IN;
+import static com.megatim.fdxcommons.model.enumeration.Operateur.IS_NOT_NULL;
+import static com.megatim.fdxcommons.model.enumeration.Operateur.IS_NULL;
+import static com.megatim.fdxcommons.model.enumeration.Operateur.LIKE;
+import static com.megatim.fdxcommons.model.enumeration.Operateur.LOWER_OR_EQUALS_THAN;
+import static com.megatim.fdxcommons.model.enumeration.Operateur.LOWER_THAN;
+import static com.megatim.fdxcommons.model.enumeration.Operateur.NOT_BETWEEN;
+import static com.megatim.fdxcommons.model.enumeration.Operateur.NOT_EQUALS;
+import static com.megatim.fdxcommons.model.enumeration.Operateur.NOT_IN;
+import com.megatim.fdxcommons.model.pojo.BetweenOperatorValues;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *
+ * @author Gabuntu
+ */
+public class JpqlWhereQueryParameters {
+
+    private final JpqlQueryCriterion queryCriterion;
+
+    public JpqlWhereQueryParameters(JpqlQueryCriterion queryCriterion) {
+        this.queryCriterion = queryCriterion;
+    }
+
+    public List<JpqlQueryParam> parameters() {
+        return buildedParameters(queryCriterion);
+    }
+
+    private List<JpqlQueryParam> buildedParameters(JpqlQueryCriterion criterion) {
+
+        List<JpqlQueryParam> params = new ArrayList<>();
+
+        if (criterion == null) {
+            return params;
+        }
+
+        if (criterion.getSubCriteria().isEmpty()) {
+
+            switch (criterion.getOperateur()) {
+
+                case EQUALS:
+                case NOT_EQUALS:
+                case LIKE:
+                case GREATER_OR_EQUALS_THAN:
+                case GREATER_THAN:
+                case LOWER_OR_EQUALS_THAN:
+                case LOWER_THAN:
+                    params.add(new JpqlQueryParam(criterion.getNomColonne(), getParameterValue(criterion)));
+                    break;
+
+                case BETWEEN:
+                case NOT_BETWEEN:
+                    BetweenOperatorValues betweenOperatorValues = (BetweenOperatorValues) criterion.getCriteriaValue();
+                    params.add(new JpqlQueryParam(criterion.getNomColonne(), betweenOperatorValues.getLowerBound()));
+                    params.add(new JpqlQueryParam(criterion.getNomColonne(), betweenOperatorValues.getUpperBound()));
+                    break;
+
+                case NOT_IN:
+                case IN:
+                    List<?> values = (List<?>) criterion.getCriteriaValue();
+                    for (Object value : values) {
+                        params.add(new JpqlQueryParam(criterion.getNomColonne(), value));
+                    }
+                    break;
+
+                case IS_NOT_NULL:
+                case IS_NULL:
+                    break;
+            }
+
+        } else {
+
+            for (JpqlQueryCriterion c : criterion.getSubCriteria()) {
+                params.addAll(buildedParameters(c));
+            }
+
+        }
+
+        return params;
+    }
+
+    private Object getParameterValue(JpqlQueryCriterion criterion) {
+        switch (criterion.getOperateur()) {
+            case LIKE:
+                return "%" + criterion.getCriteriaValue() + "%";
+        }
+        return criterion.getCriteriaValue();
+    }
+
+}

--
Gitblit v1.10.0