This is an automated email from the ASF dual-hosted git repository.

shuber pushed a commit to branch unomi-3-dev
in repository https://gitbox.apache.org/repos/asf/unomi.git


The following commit(s) were added to refs/heads/unomi-3-dev by this push:
     new be23c0e4b Refactor `integerPropertyCondition` into 
`numberPropertyCondition` to support multiple numeric types and update relevant 
method calls.
be23c0e4b is described below

commit be23c0e4b2ad7767591cd0161140f84d2cac93e9
Author: Serge Huber <[email protected]>
AuthorDate: Thu Jan 1 16:13:57 2026 +0100

    Refactor `integerPropertyCondition` into `numberPropertyCondition` to 
support multiple numeric types and update relevant method calls.
---
 .../condition/factories/ConditionFactory.java      | 22 ++++++++++++++--------
 .../factories/ProfileConditionFactory.java         |  8 ++------
 2 files changed, 16 insertions(+), 14 deletions(-)

diff --git 
a/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/condition/factories/ConditionFactory.java
 
b/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/condition/factories/ConditionFactory.java
index cf55531d8..87a6384b6 100644
--- 
a/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/condition/factories/ConditionFactory.java
+++ 
b/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/condition/factories/ConditionFactory.java
@@ -86,33 +86,39 @@ public class ConditionFactory {
         return propertyCondition(propertyName, operator, "propertyValue", 
propertyValue);
     }
 
-    public Condition integerPropertyCondition(final String propertyName, final 
Object propertyValue) {
-        return integerPropertyCondition(propertyName, "equals", propertyValue);
+    public Condition numberPropertyCondition(final String propertyName, final 
Object propertyValue) {
+        return numberPropertyCondition(propertyName, "equals", propertyValue);
     }
 
-    public Condition integerPropertyCondition(final String propertyName, final 
String operator, final Object propertyValue) {
-        return propertyCondition(propertyName, operator, 
"propertyValueInteger", propertyValue);
+    public Condition numberPropertyCondition(final String propertyName, final 
String operator, final Object propertyValue) {
+        if (propertyValue instanceof Integer || propertyValue instanceof Long) 
{
+            return propertyCondition(propertyName, operator, 
"propertyValueInteger", propertyValue);
+        } else if (propertyValue instanceof Double) {
+            return propertyCondition(propertyName, operator, 
"propertyValueDouble", propertyValue);
+        } else {
+            return propertyCondition(propertyName, operator, propertyValue);
+        }
     }
 
     public Condition datePropertyCondition(final String propertyName, final 
String operator, final Object propertyValue) {
         Object processedValue = propertyValue;
-        
+
         if (propertyValue != null) {
             if (propertyValue instanceof OffsetDateTime) {
                 // Convert OffsetDateTime to Date
                 processedValue = DateUtils.toDate((OffsetDateTime) 
propertyValue);
-                LOGGER.debug("Converted OffsetDateTime to Date for property 
{}: {} -> {}", 
+                LOGGER.debug("Converted OffsetDateTime to Date for property 
{}: {} -> {}",
                     propertyName, propertyValue, processedValue);
             } else if (propertyValue instanceof Date) {
                 // Already a Date object, use as is
                 LOGGER.debug("Using Date object as is for property {}: {}", 
propertyName, propertyValue);
             } else {
                 // Invalid value type, log warning
-                LOGGER.warn("Invalid value type for date property condition. 
Property: {}, Value: {}, Type: {}. Expected OffsetDateTime or Date.", 
+                LOGGER.warn("Invalid value type for date property condition. 
Property: {}, Value: {}, Type: {}. Expected OffsetDateTime or Date.",
                     propertyName, propertyValue, 
propertyValue.getClass().getSimpleName());
             }
         }
-        
+
         return propertyCondition(propertyName, operator, "propertyValueDate", 
processedValue);
     }
 
diff --git 
a/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/condition/factories/ProfileConditionFactory.java
 
b/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/condition/factories/ProfileConditionFactory.java
index a26fc87bf..7fd7666ae 100644
--- 
a/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/condition/factories/ProfileConditionFactory.java
+++ 
b/graphql/cxs-impl/src/main/java/org/apache/unomi/graphql/condition/factories/ProfileConditionFactory.java
@@ -26,11 +26,7 @@ import 
org.apache.unomi.graphql.schema.ComparisonConditionTranslator;
 import org.apache.unomi.graphql.schema.PropertyNameTranslator;
 import org.apache.unomi.graphql.schema.PropertyValueTypeHelper;
 import org.apache.unomi.graphql.services.ServiceManager;
-import org.apache.unomi.graphql.types.input.CDPInterestFilterInput;
-import org.apache.unomi.graphql.types.input.CDPProfileEventsFilterInput;
-import org.apache.unomi.graphql.types.input.CDPProfileFilterInput;
-import org.apache.unomi.graphql.types.input.CDPProfilePropertiesFilterInput;
-import org.apache.unomi.graphql.types.input.CDPSegmentFilterInput;
+import org.apache.unomi.graphql.types.input.*;
 import org.apache.unomi.graphql.utils.ConditionBuilder;
 import org.apache.unomi.graphql.utils.StringUtils;
 
@@ -154,7 +150,7 @@ public class ProfileConditionFactory extends 
ConditionFactory {
     }
 
     private Condition buildConditionInterestValue(Double interestValue, String 
operator) {
-        return integerPropertyCondition("properties.interests.value", 
operator, interestValue);
+        return numberPropertyCondition("properties.interests.value", operator, 
interestValue);
     }
 
     private Condition interestFilterInputCondition(final 
CDPInterestFilterInput filterInput) {

Reply via email to