From a97ffef20792fee66990343703a2c7686901e91a Mon Sep 17 00:00:00 2001 From: JornC Date: Thu, 25 Sep 2025 19:01:14 +0200 Subject: [PATCH 1/2] Implement heat content validation in OPSSourceCharacteristics class Added a new method to validate heat content based on its type, ensuring that for non-forced heat content types, the heat content is present and falls within the defined limits. Removed the previous min/max annotations from the getHeatContent method to streamline validation logic. --- .../OPSSourceCharacteristics.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/source/imaer-shared/src/main/java/nl/overheid/aerius/shared/domain/v2/characteristics/OPSSourceCharacteristics.java b/source/imaer-shared/src/main/java/nl/overheid/aerius/shared/domain/v2/characteristics/OPSSourceCharacteristics.java index 03955653..792764e2 100644 --- a/source/imaer-shared/src/main/java/nl/overheid/aerius/shared/domain/v2/characteristics/OPSSourceCharacteristics.java +++ b/source/imaer-shared/src/main/java/nl/overheid/aerius/shared/domain/v2/characteristics/OPSSourceCharacteristics.java @@ -19,6 +19,7 @@ import jakarta.validation.constraints.Max; import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.AssertTrue; import com.fasterxml.jackson.annotation.JsonIgnore; @@ -96,8 +97,6 @@ public void setHeatContentType(final HeatContentType heatContentType) { this.heatContentType = heatContentType; } - @Min(value = OPSLimits.SOURCE_HEAT_CONTENT_MINIMUM, message = "ops heat_content > " + OPSLimits.SOURCE_HEAT_CONTENT_MINIMUM) - @Max(value = OPSLimits.SOURCE_HEAT_CONTENT_MAXIMUM, message = "ops heat_content < " + OPSLimits.SOURCE_HEAT_CONTENT_MAXIMUM) public Double getHeatContent() { return heatContent; } @@ -106,6 +105,21 @@ public void setHeatContent(final Double heatContent) { this.heatContent = heatContent; } + @JsonIgnore + @AssertTrue(message = "for NOT_FORCED heat content types, ops heat_content must be present and between " + + OPSLimits.SOURCE_HEAT_CONTENT_MINIMUM + " and " + OPSLimits.SOURCE_HEAT_CONTENT_MAXIMUM) + public boolean isHeatContentValid() { + if (heatContentType == HeatContentType.FORCED) { + return true; + } + if (heatContent == null) { + return false; + } + final boolean withinMinimum = heatContent >= OPSLimits.SOURCE_HEAT_CONTENT_MINIMUM; + final boolean withinMaximum = heatContent <= OPSLimits.SOURCE_HEAT_CONTENT_MAXIMUM; + return withinMinimum && withinMaximum; + } + public Double getEmissionTemperature() { return emissionTemperature; } From db1674a62e93c7283c2e7f919969f15150218912 Mon Sep 17 00:00:00 2001 From: JornC Date: Thu, 25 Sep 2025 19:08:08 +0200 Subject: [PATCH 2/2] Make comment more specific --- .../domain/v2/characteristics/OPSSourceCharacteristics.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/imaer-shared/src/main/java/nl/overheid/aerius/shared/domain/v2/characteristics/OPSSourceCharacteristics.java b/source/imaer-shared/src/main/java/nl/overheid/aerius/shared/domain/v2/characteristics/OPSSourceCharacteristics.java index 792764e2..a5090613 100644 --- a/source/imaer-shared/src/main/java/nl/overheid/aerius/shared/domain/v2/characteristics/OPSSourceCharacteristics.java +++ b/source/imaer-shared/src/main/java/nl/overheid/aerius/shared/domain/v2/characteristics/OPSSourceCharacteristics.java @@ -107,7 +107,7 @@ public void setHeatContent(final Double heatContent) { @JsonIgnore @AssertTrue(message = "for NOT_FORCED heat content types, ops heat_content must be present and between " - + OPSLimits.SOURCE_HEAT_CONTENT_MINIMUM + " and " + OPSLimits.SOURCE_HEAT_CONTENT_MAXIMUM) + + OPSLimits.SOURCE_HEAT_CONTENT_MINIMUM + " and " + OPSLimits.SOURCE_HEAT_CONTENT_MAXIMUM + " (both inclusive)") public boolean isHeatContentValid() { if (heatContentType == HeatContentType.FORCED) { return true;