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/WhereQueryParameters.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/WhereQueryParameters.java b/fdx-commons/fdxcommons-tools/src/main/java/com/megatim/fdxcommons/tools/database/queries/metadata/WhereQueryParameters.java
new file mode 100644
index 0000000..8aeab25
--- /dev/null
+++ b/fdx-commons/fdxcommons-tools/src/main/java/com/megatim/fdxcommons/tools/database/queries/metadata/WhereQueryParameters.java
@@ -0,0 +1,97 @@
+package com.megatim.fdxcommons.tools.database.queries.metadata;
+
+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 WhereQueryParameters {
+
+ private final QueryCriterion queryCriterion;
+
+ public WhereQueryParameters(QueryCriterion queryCriterion) {
+ this.queryCriterion = queryCriterion;
+ }
+
+ public List<QueryParam> parameters() {
+ return buildedParameters(queryCriterion);
+ }
+
+ private List<QueryParam> buildedParameters(QueryCriterion criterion) {
+
+ List<QueryParam> 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 QueryParam(criterion.getNomColonne(), getParameterValue(criterion)));
+ break;
+
+ case BETWEEN:
+ case NOT_BETWEEN:
+ BetweenOperatorValues betweenOperatorValues = (BetweenOperatorValues) criterion.getCriteriaValue();
+ params.add(new QueryParam(criterion.getNomColonne(), betweenOperatorValues.getLowerBound()));
+ params.add(new QueryParam(criterion.getNomColonne(), betweenOperatorValues.getUpperBound()));
+ break;
+
+ case NOT_IN:
+ case IN:
+ List<?> values = (List<?>) criterion.getCriteriaValue();
+ for (Object value : values) {
+ params.add(new QueryParam(criterion.getNomColonne(), value));
+ }
+ break;
+
+ case IS_NOT_NULL:
+ case IS_NULL:
+ break;
+ }
+
+ } else {
+
+ for (QueryCriterion c : criterion.getSubCriteria()) {
+ params.addAll(buildedParameters(c));
+ }
+
+ }
+
+ return params;
+ }
+
+ private Object getParameterValue(QueryCriterion criterion) {
+ switch (criterion.getOperateur()) {
+ case LIKE:
+ return "%" + criterion.getCriteriaValue() + "%";
+ }
+ return criterion.getCriteriaValue();
+ }
+
+}
--
Gitblit v1.10.0