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) {