From 3de9d979247c190819070c86a6fcbb8ff6e2243a Mon Sep 17 00:00:00 2001 From: jonmv Date: Mon, 18 Dec 2023 13:30:22 +0100 Subject: Move dev-validation-override to validator, and keep all failures and changes --- .../com/yahoo/config/application/api/ValidationOverrides.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'config-model-api/src') diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/ValidationOverrides.java b/config-model-api/src/main/java/com/yahoo/config/application/api/ValidationOverrides.java index 1edddb63e52..7b52d825473 100644 --- a/config-model-api/src/main/java/com/yahoo/config/application/api/ValidationOverrides.java +++ b/config-model-api/src/main/java/com/yahoo/config/application/api/ValidationOverrides.java @@ -15,6 +15,7 @@ import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Optional; @@ -36,7 +37,7 @@ public class ValidationOverrides { private final String xmlForm; - /** Creates a validation overrides which does not have an xml form */ + /** Creates a validation overrides which does not have an XML form */ public ValidationOverrides(List overrides) { this(overrides, null); } @@ -163,10 +164,13 @@ public class ValidationOverrides { */ public static class ValidationException extends IllegalArgumentException { + private final Map> messagesById = new LinkedHashMap<>(); + static final long serialVersionUID = 789984668; private ValidationException(ValidationId validationId, String message) { super(validationId + ": " + message + ". " + toAllowMessage(validationId)); + messagesById.put(validationId, List.of(message)); } private ValidationException(Map> messagesById) { @@ -175,8 +179,11 @@ public class ValidationOverrides { String.join("\n\t", messages.getValue()) + "\n" + toAllowMessage(messages.getKey())) .collect(Collectors.joining("\n"))); + messagesById.forEach((id, messages) -> this.messagesById.put(id, List.copyOf(messages))); } + public Map> messagesById() { return Map.copyOf(messagesById); } + } } -- cgit v1.2.3