Merge "Improvements to Parameter Srvice"
diff --git a/common-parameters/src/main/java/org/onap/policy/common/parameters/GroupMapValidationResult.java b/common-parameters/src/main/java/org/onap/policy/common/parameters/GroupMapValidationResult.java
index e607ff9..3baacb1 100644
--- a/common-parameters/src/main/java/org/onap/policy/common/parameters/GroupMapValidationResult.java
+++ b/common-parameters/src/main/java/org/onap/policy/common/parameters/GroupMapValidationResult.java
@@ -89,7 +89,7 @@
* @param message The validation message explaining the validation status
*/
@Override
- public void setResult(ValidationStatus status, String message) {
+ public void setResult(final ValidationStatus status, final String message) {
setResult(status);
this.message = message;
}
@@ -112,9 +112,28 @@
* Set the validation result on a parameter map entry.
*
* @param entryName The name of the parameter map entry
+ * @param status The validation status for the entry
+ * @param message The validation message for the entry
+ */
+ public void setResult(final String entryName, final ValidationStatus status, final String message) {
+ ValidationResult validationResult = validationResultMap.get(entryName);
+ if (validationResult == null) {
+ throw new ParameterRuntimeException("no entry with name \"" + entryName + "\" exists");
+ }
+
+ // Set the status of the parameter group and replace the field result
+ validationResult.setResult(status, message);
+ this.setResult(status);
+ }
+
+
+ /**
+ * Set the validation result on a parameter map entry.
+ *
+ * @param entryName The name of the parameter map entry
* @param mapEntryValidationResult The validation result for the entry
*/
- public void setResult(String entryName, ValidationResult mapEntryValidationResult) {
+ public void setResult(final String entryName, final ValidationResult mapEntryValidationResult) {
ValidationResult validationResult = validationResultMap.get(entryName);
if (validationResult == null) {
throw new ParameterRuntimeException("no entry with name \"" + entryName + "\" exists");
diff --git a/common-parameters/src/main/java/org/onap/policy/common/parameters/GroupValidationResult.java b/common-parameters/src/main/java/org/onap/policy/common/parameters/GroupValidationResult.java
index ac9dc7b..fc2f6ca 100644
--- a/common-parameters/src/main/java/org/onap/policy/common/parameters/GroupValidationResult.java
+++ b/common-parameters/src/main/java/org/onap/policy/common/parameters/GroupValidationResult.java
@@ -48,6 +48,11 @@
public GroupValidationResult(final ParameterGroup parameterGroup) {
this.parameterGroup = parameterGroup;
+ // Parameter group definitions may be optional
+ if (parameterGroup == null) {
+ return;
+ }
+
// Add a validation result per field
for (Field field : parameterGroup.getClass().getDeclaredFields()) {
// Exclude system fields
@@ -86,15 +91,15 @@
// Nested parameter groups are allowed
if (ParameterGroup.class.isAssignableFrom(fieldType)) {
- return new GroupValidationResult((ParameterGroup) field.get(parameterGroup));
+ return new GroupValidationResult((ParameterGroup) fieldObject);
}
-
+
// Nested maps of parameter groups are allowed
if (Map.class.isAssignableFrom(field.getType())) {
checkMapIsParameterGroupMap(fieldName, fieldObject);
return new GroupMapValidationResult(field, fieldObject);
}
-
+
// Collections of parameter groups are not allowed
if (Collection.class.isAssignableFrom(field.getType())) {
checkCollection4ParameterGroups(fieldName, fieldObject);
@@ -115,7 +120,7 @@
if (mapObject == null) {
throw new ParameterRuntimeException("map parameter \"" + fieldName + "\" is null");
}
-
+
Map<?, ?> incomingMap = (Map<?, ?>) mapObject;
for (Entry<?, ?> mapEntry : incomingMap.entrySet()) {
@@ -184,7 +189,7 @@
}
/**
- * Set the validation result on on a parameter group.
+ * Set the validation result on a parameter group.
*
* @param status The validation status the parameter group is receiving
* @param message The validation message explaining the validation status
@@ -196,9 +201,8 @@
}
/**
- * Set the validation result on on a parameter group.
- * On a sequence of calls, the most serious validation status is recorded, assuming the status enum ordinal increase
- * in order of severity
+ * Set the validation result on a parameter group. On a sequence of calls, the most serious validation status is
+ * recorded, assuming the status enum ordinal increase in order of severity
*
* @param status The validation status the parameter group is receiving
*/
@@ -211,27 +215,23 @@
}
/**
- * Set the validation result on a parameter group.
+ * Set the validation result on a parameter in a parameter group.
*
- * @param parameterGroupName The name of the parameter group
+ * @param parameterName The name of the parameter
* @param status The validation status the field is receiving
* @param message The validation message explaining the validation status
*/
- public void setResult(final String parameterGroupName, final ValidationStatus status, final String message) {
- ParameterValidationResult parameterValidationResult;
- try {
- parameterValidationResult = (ParameterValidationResult) validationResultMap.get(parameterGroupName);
- } catch (ClassCastException e) {
- throw new ParameterRuntimeException("parameter not a regular parameter: " + parameterGroupName, e);
+ public void setResult(final String parameterName, final ValidationStatus status, final String message) {
+ ValidationResult validationResult = validationResultMap.get(parameterName);
+
+ if (validationResult == null) {
+ throw new ParameterRuntimeException("no parameter field exists for parameter: " + parameterName);
}
- if (parameterValidationResult == null) {
- throw new ParameterRuntimeException(
- "no regular parameter field exists for parameter: " + parameterGroupName);
- }
+ // Set the status and the message on the result irrespective of validation result type
+ validationResult.setResult(status, message);
- // Set the status of the parameter group and the field
- parameterValidationResult.setResult(status, message);
+ // Set the status of this result
this.setResult(status);
}
@@ -241,7 +241,7 @@
* @param parameterName The name of the parameter field
* @param nestedValidationResult The validation result from a nested field
*/
- public void setResult(String parameterName, ValidationResult nestedValidationResult) {
+ public void setResult(final String parameterName, final ValidationResult nestedValidationResult) {
GroupValidationResult groupValidationResult;
try {
groupValidationResult = (GroupValidationResult) validationResultMap.get(parameterName);
@@ -284,6 +284,32 @@
}
/**
+ * Set the validation status on a group map entry.
+ *
+ * @param parameterName The name of the parameter field
+ * @param key The key of the map entry
+ * @param status The validation status of the entry
+ * @param message The message for the parameter group
+ */
+ public void setResult(final String parameterName, final String key, final ValidationStatus status,
+ final String message) {
+ GroupMapValidationResult groupMapValidationResult;
+ try {
+ groupMapValidationResult = (GroupMapValidationResult) validationResultMap.get(parameterName);
+ } catch (ClassCastException e) {
+ throw new ParameterRuntimeException("parameter is not a nested group map parameter: " + parameterName, e);
+ }
+
+ if (groupMapValidationResult == null) {
+ throw new ParameterRuntimeException("no group map parameter field exists for parameter: " + parameterName);
+ }
+
+ // Set the status of the parameter group and the field
+ groupMapValidationResult.setResult(key, status, message);
+ this.setResult(status);
+ }
+
+ /**
* Gets the validation result.
*
* @param initialIndentation the indentation to use on the main result output
@@ -301,9 +327,15 @@
validationResultBuilder.append(initialIndentation);
validationResultBuilder.append("parameter group \"");
- validationResultBuilder.append(parameterGroup.getName());
- validationResultBuilder.append("\" type \"");
- validationResultBuilder.append(parameterGroup.getClass().getCanonicalName());
+
+ if (parameterGroup != null) {
+ validationResultBuilder.append(parameterGroup.getName());
+ validationResultBuilder.append("\" type \"");
+ validationResultBuilder.append(parameterGroup.getClass().getCanonicalName());
+ }
+ else {
+ validationResultBuilder.append("UNDEFINED");
+ }
validationResultBuilder.append("\" ");
validationResultBuilder.append(status);
validationResultBuilder.append(", ");
diff --git a/common-parameters/src/main/java/org/onap/policy/common/parameters/ParameterException.java b/common-parameters/src/main/java/org/onap/policy/common/parameters/ParameterException.java
index 3a6e17e..0b29a4e 100644
--- a/common-parameters/src/main/java/org/onap/policy/common/parameters/ParameterException.java
+++ b/common-parameters/src/main/java/org/onap/policy/common/parameters/ParameterException.java
@@ -88,7 +88,7 @@
* @param throwable the top level exception
* @return cascaded message string
*/
- public static String buildCascadedMessage(Throwable throwable) {
+ public static String buildCascadedMessage(final Throwable throwable) {
final StringBuilder builder = new StringBuilder();
builder.append(throwable.getMessage());
diff --git a/common-parameters/src/main/java/org/onap/policy/common/parameters/ParameterGroup.java b/common-parameters/src/main/java/org/onap/policy/common/parameters/ParameterGroup.java
index 48e8379..8bfa183 100644
--- a/common-parameters/src/main/java/org/onap/policy/common/parameters/ParameterGroup.java
+++ b/common-parameters/src/main/java/org/onap/policy/common/parameters/ParameterGroup.java
@@ -35,6 +35,13 @@
public String getName();
/**
+ * Set the group name.
+ *
+ * @param name the group name
+ */
+ public void setName(final String name);
+
+ /**
* Validate parameters.
*
* @return the result of the parameter validation
diff --git a/common-parameters/src/main/java/org/onap/policy/common/parameters/ParameterService.java b/common-parameters/src/main/java/org/onap/policy/common/parameters/ParameterService.java
index db6995c..358e553 100644
--- a/common-parameters/src/main/java/org/onap/policy/common/parameters/ParameterService.java
+++ b/common-parameters/src/main/java/org/onap/policy/common/parameters/ParameterService.java
@@ -61,6 +61,20 @@
}
/**
+ * Register a parameter group with the parameter service.
+ *
+ * @param parameterGroup the parameter group
+ * @param overwrite if true, overwrite the current value if set
+ */
+ public static void register(final ParameterGroup parameterGroup, final boolean overwrite) {
+ if (overwrite && parameterGroupMap.containsKey(parameterGroup.getName())) {
+ deregister(parameterGroup);
+ }
+
+ register(parameterGroup);
+ }
+
+ /**
* Remove a parameter group from the parameter service.
*
* @param parameterGroupName the name of the parameter group
@@ -74,13 +88,23 @@
}
/**
+ * Remove a parameter group from the parameter service.
+ *
+ * @param parameterGroup the parameter group
+ */
+ public static void deregister(final ParameterGroup parameterGroup) {
+ deregister(parameterGroup.getName());
+ }
+
+ /**
* Get a parameter group from the parameter service.
*
* @param parameterGroupName the name of the parameter group
* @return The parameter group
*/
- public static ParameterGroup get(final String parameterGroupName) {
- final ParameterGroup parameterGroup = parameterGroupMap.get(parameterGroupName);
+ public static <T extends ParameterGroup> T get(final String parameterGroupName) {
+ @SuppressWarnings("unchecked")
+ final T parameterGroup = (T) parameterGroupMap.get(parameterGroupName);
if (parameterGroup == null) {
throw new ParameterRuntimeException("\"" + parameterGroupName + "\" not found in parameter service");
diff --git a/common-parameters/src/main/java/org/onap/policy/common/parameters/ValidationResult.java b/common-parameters/src/main/java/org/onap/policy/common/parameters/ValidationResult.java
index b97ccda..309fd00 100644
--- a/common-parameters/src/main/java/org/onap/policy/common/parameters/ValidationResult.java
+++ b/common-parameters/src/main/java/org/onap/policy/common/parameters/ValidationResult.java
@@ -48,6 +48,15 @@
}
/**
+ * Checks if the result is clean.
+ *
+ * @return true, if is clean
+ */
+ default boolean isClean() {
+ return getStatus().isClean();
+ }
+
+ /**
* Gets the validation result.
*
* @return the full validation result
diff --git a/common-parameters/src/main/java/org/onap/policy/common/parameters/ValidationStatus.java b/common-parameters/src/main/java/org/onap/policy/common/parameters/ValidationStatus.java
index ff453a1..8692506 100644
--- a/common-parameters/src/main/java/org/onap/policy/common/parameters/ValidationStatus.java
+++ b/common-parameters/src/main/java/org/onap/policy/common/parameters/ValidationStatus.java
@@ -33,4 +33,12 @@
public boolean isValid() {
return !this.equals(INVALID);
}
+
+ /**
+ * Check if the validation was clean.
+ * @return true if the validation is clean
+ */
+ public boolean isClean() {
+ return this.equals(CLEAN);
+ }
}
diff --git a/common-parameters/src/test/java/org/onap/policy/common/parameters/TestParameterService.java b/common-parameters/src/test/java/org/onap/policy/common/parameters/TestParameterService.java
index 0b7e46c..2dad428 100644
--- a/common-parameters/src/test/java/org/onap/policy/common/parameters/TestParameterService.java
+++ b/common-parameters/src/test/java/org/onap/policy/common/parameters/TestParameterService.java
@@ -57,9 +57,34 @@
assertEquals("\"Empty Group\" already registered in parameter service", e.getMessage());
}
+ try {
+ ParameterService.register(new EmptyParameterGroup("Empty Group"), false);
+ fail("this test should throw an exception");
+ }
+ catch (ParameterRuntimeException e) {
+ assertEquals("\"Empty Group\" already registered in parameter service", e.getMessage());
+ }
+
+ ParameterService.register(new EmptyParameterGroup("Empty Group"), true);
+ assertTrue(ParameterService.contains("Empty Group"));
+
ParameterService.deregister("Empty Group");
assertFalse(ParameterService.contains("Empty Group"));
+ ParameterService.register(new EmptyParameterGroup("Empty Group"), true);
+ assertTrue(ParameterService.contains("Empty Group"));
+
+ ParameterService.deregister("Empty Group");
+ assertFalse(ParameterService.contains("Empty Group"));
+
+ EmptyParameterGroup epg = new EmptyParameterGroup("Empty Group");
+ ParameterService.register(epg);
+ assertTrue(ParameterService.contains("Empty Group"));
+ assertNotNull(ParameterService.get("Empty Group"));
+
+ ParameterService.deregister(epg);
+ assertFalse(ParameterService.contains("Empty Group"));
+
try {
ParameterService.deregister("Empty Group");
fail("this test should throw an exception");
diff --git a/common-parameters/src/test/java/org/onap/policy/common/parameters/TestValidation.java b/common-parameters/src/test/java/org/onap/policy/common/parameters/TestValidation.java
index 2ca24a0..fe750b2 100644
--- a/common-parameters/src/test/java/org/onap/policy/common/parameters/TestValidation.java
+++ b/common-parameters/src/test/java/org/onap/policy/common/parameters/TestValidation.java
@@ -39,6 +39,7 @@
GroupValidationResult validationResult = l0Parameters.validate();
assertTrue(validationResult.isValid());
+ assertTrue(validationResult.isClean());
assertNull(validationResult.getResult());
assertEquals(l0Parameters, validationResult.getParameterGroup());
assertEquals(l0Parameters.getName(), validationResult.getName());
@@ -61,6 +62,7 @@
GroupValidationResult validationResult = l0Parameters.validate();
assertTrue(validationResult.isValid());
+ assertFalse(validationResult.isClean());
assertEquals(expectedResult, validationResult.getResult().replaceAll("\\s+", ""));
l0Parameters.triggerValidationStatus(ValidationStatus.CLEAN, 3);
diff --git a/common-parameters/src/test/java/org/onap/policy/common/parameters/TestValidationErrors.java b/common-parameters/src/test/java/org/onap/policy/common/parameters/TestValidationErrors.java
index 6b78147..a489cc3 100644
--- a/common-parameters/src/test/java/org/onap/policy/common/parameters/TestValidationErrors.java
+++ b/common-parameters/src/test/java/org/onap/policy/common/parameters/TestValidationErrors.java
@@ -21,6 +21,7 @@
package org.onap.policy.common.parameters;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -31,6 +32,7 @@
import org.onap.policy.common.parameters.testclasses.ParameterGroupWithIllegalMapValue;
import org.onap.policy.common.parameters.testclasses.ParameterGroupWithNullCollection;
import org.onap.policy.common.parameters.testclasses.ParameterGroupWithNullMapValue;
+import org.onap.policy.common.parameters.testclasses.ParameterGroupWithNullSubGroup;
import org.onap.policy.common.parameters.testclasses.ParameterGroupWithParameterGroupCollection;
public class TestValidationErrors {
@@ -69,6 +71,14 @@
}
@Test
+ public void testMapNullSubGroupValidation() {
+ ParameterGroupWithNullSubGroup nullSub = new ParameterGroupWithNullSubGroup("Null sub group value");
+
+ nullSub.isValid();
+ assertNull(nullSub.getSubGroup());
+ }
+
+ @Test
public void testMapNullValueValidation() {
ParameterGroupWithNullMapValue nullMap = new ParameterGroupWithNullMapValue("Null Map value");
try {
diff --git a/common-parameters/src/test/java/org/onap/policy/common/parameters/TestValidationResults.java b/common-parameters/src/test/java/org/onap/policy/common/parameters/TestValidationResults.java
index 8f22765..f745105 100644
--- a/common-parameters/src/test/java/org/onap/policy/common/parameters/TestValidationResults.java
+++ b/common-parameters/src/test/java/org/onap/policy/common/parameters/TestValidationResults.java
@@ -103,15 +103,11 @@
result.setResult("nonExistantParameter", ValidationStatus.OBSERVATION, "Something was observed");
fail("test shold throw an exception here");
} catch (Exception e) {
- assertEquals("no regular parameter field exists for parameter: nonExistantParameter", e.getMessage());
+ assertEquals("no parameter field exists for parameter: nonExistantParameter", e.getMessage());
}
- try {
- result.setResult("l10LGenericNestedMap", ValidationStatus.OBSERVATION, "Something was observed");
- fail("test shold throw an exception here");
- } catch (Exception e) {
- assertEquals("parameter not a regular parameter: l10LGenericNestedMap", e.getMessage());
- }
+ result.setResult("l10IntField", ValidationStatus.OBSERVATION, "Something was observed");
+ assertTrue(result.isValid());
try {
result.setResult("nonExistantParameter", new GroupValidationResult(pg));
@@ -143,5 +139,33 @@
} catch (Exception e) {
assertEquals("parameter is not a nested group map parameter: l10IntField", e.getMessage());
}
+
+ result.setResult("l10LGenericNestedMap", "l10LGenericNestedMapVal0", ValidationStatus.INVALID,
+ "This value is invalid");
+ assertEquals(ValidationStatus.INVALID, result.getStatus());
+
+ try {
+ result.setResult("l10IntField", "l10LGenericNestedMapVal0", ValidationStatus.INVALID,
+ "This value is invalid");
+ fail("test shold throw an exception here");
+ } catch (Exception e) {
+ assertEquals("parameter is not a nested group map parameter: l10IntField", e.getMessage());
+ }
+
+ try {
+ result.setResult("nonExistantParameter", "l10LGenericNestedMapVal0", ValidationStatus.INVALID,
+ "This value is invalid");
+ fail("test shold throw an exception here");
+ } catch (Exception e) {
+ assertEquals("no group map parameter field exists for parameter: nonExistantParameter", e.getMessage());
+ }
+
+ try {
+ result.setResult("l10LGenericNestedMap", "NonExistantKey", ValidationStatus.INVALID,
+ "This value is invalid");
+ fail("test shold throw an exception here");
+ } catch (Exception e) {
+ assertEquals("no entry with name \"NonExistantKey\" exists", e.getMessage());
+ }
}
}
diff --git a/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/EmptyParameterGroup.java b/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/EmptyParameterGroup.java
index 681eb69..505b2ce 100644
--- a/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/EmptyParameterGroup.java
+++ b/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/EmptyParameterGroup.java
@@ -36,6 +36,11 @@
}
@Override
+ public void setName(final String name) {
+ this.name = name;
+ }
+
+ @Override
public GroupValidationResult validate() {
return new GroupValidationResult(this);
}
diff --git a/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithArray.java b/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithArray.java
index fcb2bb1..c448cea 100644
--- a/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithArray.java
+++ b/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithArray.java
@@ -34,12 +34,17 @@
public int[] getIntArray() {
return intArray;
}
-
+
@Override
public String getName() {
return name;
}
-
+
+ @Override
+ public void setName(final String name) {
+ this.name = name;
+ }
+
@Override
public GroupValidationResult validate() {
return new GroupValidationResult(this);
diff --git a/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithCollection.java b/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithCollection.java
index 75ae45b..7f2c0ab 100644
--- a/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithCollection.java
+++ b/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithCollection.java
@@ -53,6 +53,11 @@
}
@Override
+ public void setName(final String name) {
+ this.name = name;
+ }
+
+ @Override
public GroupValidationResult validate() {
return new GroupValidationResult(this);
}
diff --git a/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithIllegalMapKey.java b/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithIllegalMapKey.java
index ca44106..57a5a11 100644
--- a/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithIllegalMapKey.java
+++ b/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithIllegalMapKey.java
@@ -52,6 +52,11 @@
}
@Override
+ public void setName(final String name) {
+ this.name = name;
+ }
+
+ @Override
public GroupValidationResult validate() {
return new GroupValidationResult(this);
}
diff --git a/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithIllegalMapValue.java b/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithIllegalMapValue.java
index 9253f15..39e35d9 100644
--- a/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithIllegalMapValue.java
+++ b/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithIllegalMapValue.java
@@ -52,6 +52,11 @@
}
@Override
+ public void setName(final String name) {
+ this.name = name;
+ }
+
+ @Override
public GroupValidationResult validate() {
return new GroupValidationResult(this);
}
diff --git a/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithNullCollection.java b/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithNullCollection.java
index 0d113dc..9b661bd 100644
--- a/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithNullCollection.java
+++ b/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithNullCollection.java
@@ -40,12 +40,17 @@
public List<Integer> getNullList() {
return nullList;
}
-
+
@Override
public String getName() {
return name;
}
-
+
+ @Override
+ public void setName(final String name) {
+ this.name = name;
+ }
+
@Override
public GroupValidationResult validate() {
return new GroupValidationResult(this);
diff --git a/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithNullMapValue.java b/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithNullMapValue.java
index 9e1601c..ac863a4 100644
--- a/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithNullMapValue.java
+++ b/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithNullMapValue.java
@@ -40,12 +40,17 @@
public Map<String, Integer> getNullMap() {
return nullMap;
}
-
+
@Override
public String getName() {
return name;
}
-
+
+ @Override
+ public void setName(final String name) {
+ this.name = name;
+ }
+
@Override
public GroupValidationResult validate() {
return new GroupValidationResult(this);
diff --git a/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithNullSubGroup.java b/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithNullSubGroup.java
new file mode 100644
index 0000000..830c811
--- /dev/null
+++ b/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithNullSubGroup.java
@@ -0,0 +1,56 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2018 Ericsson. 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.common.parameters.testclasses;
+
+import org.onap.policy.common.parameters.GroupValidationResult;
+import org.onap.policy.common.parameters.ParameterGroup;
+
+public class ParameterGroupWithNullSubGroup implements ParameterGroup {
+ private String name;
+ private ParameterGroup subGroup = null;
+
+ /**
+ * Create a test parameter group.
+ * @param name the parameter group name
+ */
+ public ParameterGroupWithNullSubGroup(final String name) {
+ this.name = name;
+ }
+
+ public ParameterGroup getSubGroup() {
+ return subGroup;
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ @Override
+ public void setName(final String name) {
+ this.name = name;
+ }
+
+ @Override
+ public GroupValidationResult validate() {
+ return new GroupValidationResult(this);
+ }
+}
diff --git a/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithParameterGroupCollection.java b/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithParameterGroupCollection.java
index 5ece07b..dadf727 100644
--- a/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithParameterGroupCollection.java
+++ b/common-parameters/src/test/java/org/onap/policy/common/parameters/testclasses/ParameterGroupWithParameterGroupCollection.java
@@ -52,6 +52,11 @@
}
@Override
+ public void setName(final String name) {
+ this.name = name;
+ }
+
+ @Override
public GroupValidationResult validate() {
return new GroupValidationResult(this);
}