diff options
Diffstat (limited to 'common-parameters/src/main/java/org/onap/policy/common/parameters/BeanValidationResult.java')
-rw-r--r-- | common-parameters/src/main/java/org/onap/policy/common/parameters/BeanValidationResult.java | 56 |
1 files changed, 50 insertions, 6 deletions
diff --git a/common-parameters/src/main/java/org/onap/policy/common/parameters/BeanValidationResult.java b/common-parameters/src/main/java/org/onap/policy/common/parameters/BeanValidationResult.java index f8eebcf1..e1620530 100644 --- a/common-parameters/src/main/java/org/onap/policy/common/parameters/BeanValidationResult.java +++ b/common-parameters/src/main/java/org/onap/policy/common/parameters/BeanValidationResult.java @@ -1,6 +1,6 @@ -/* +/*- * ============LICENSE_START======================================================= - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,6 +23,9 @@ package org.onap.policy.common.parameters; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.function.BiConsumer; import java.util.function.Function; /** @@ -65,6 +68,19 @@ public class BeanValidationResult extends ValidationResultImpl { } /** + * Adds a result to this result. + * @param name name of the object of this result + * @param object object being validated + * @param status status of the new result + * @param message new result message + * @return {@code true} if the status is {@code null} or valid, {@code false} if the + * status is invalid + */ + public boolean addResult(String name, Object object, ValidationStatus status, String message) { + return addResult(new ObjectValidationResult(name, object, status, message)); + } + + /** * Validates that a sub-object within the bean is not {@code null}. * * @param subName name of the sub-object @@ -72,7 +88,7 @@ public class BeanValidationResult extends ValidationResultImpl { * @return {@code true} if the value is not null, {@code false} otherwise */ public boolean validateNotNull(String subName, Object subObject) { - ObjectValidationResult result = new ObjectValidationResult(subName, subObject); + var result = new ObjectValidationResult(subName, subObject); if (result.validateNotNull()) { return true; @@ -110,10 +126,10 @@ public class BeanValidationResult extends ValidationResultImpl { return true; } - BeanValidationResult result = new BeanValidationResult(listName, null); + var result = new BeanValidationResult(listName, null); for (T item : list) { if (item == null) { - result.addResult(new ObjectValidationResult("item", item, ValidationStatus.INVALID, "null")); + result.addResult("item", item, ValidationStatus.INVALID, "null"); } else { result.addResult(itemValidator.apply(item)); } @@ -129,6 +145,34 @@ public class BeanValidationResult extends ValidationResultImpl { } /** + * Validates the entries in a map. + * + * @param mapName name of the list + * @param map map whose entries are to be validated, or {@code null} + * @param entryValidator function to validate an entry in the map + * @return {@code true} if all entries in the map are valid, {@code false} otherwise + */ + public <V> boolean validateMap(String mapName, Map<String, V> map, + BiConsumer<BeanValidationResult, Entry<String, V>> entryValidator) { + if (map == null) { + return true; + } + + var result = new BeanValidationResult(mapName, null); + for (Entry<String, V> ent : map.entrySet()) { + entryValidator.accept(result, ent); + } + + if (result.isValid()) { + return true; + + } else { + addResult(result); + return false; + } + } + + /** * Gets the validation result. * * @param initialIndentation the indentation to use on the main result output @@ -142,7 +186,7 @@ public class BeanValidationResult extends ValidationResultImpl { return null; } - StringBuilder builder = new StringBuilder(); + var builder = new StringBuilder(); builder.append(initialIndentation); builder.append('"'); |