/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2019 Nordix Foundation.
- * Modifications Copyright (C) 2019 AT&T Intellectual Property.
+ * Copyright (C) 2019-2020,2023 Nordix Foundation.
+ * Modifications Copyright (C) 2019, 2021 AT&T Intellectual Property.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
package org.onap.policy.models.pdp.concepts;
-import com.fasterxml.jackson.annotation.JsonIgnore;
+import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.stream.Collectors;
import lombok.Data;
import lombok.NoArgsConstructor;
+import org.onap.policy.common.gson.annotation.GsonJsonIgnore;
import org.onap.policy.common.parameters.BeanValidationResult;
-import org.onap.policy.common.parameters.ObjectValidationResult;
import org.onap.policy.common.parameters.ValidationResult;
import org.onap.policy.common.parameters.ValidationStatus;
import org.onap.policy.models.base.PfKey;
this.description = source.description;
this.pdpGroupState = source.pdpGroupState;
this.properties = (source.properties == null ? null : new LinkedHashMap<>(source.properties));
- this.pdpSubgroups = PfUtils.mapList(source.pdpSubgroups, PdpSubGroup::new);
+ this.pdpSubgroups = PfUtils.mapList(source.pdpSubgroups, PdpSubGroup::new, new ArrayList<>(0));
}
@Override
/**
* Validates that appropriate fields are populated for an incoming call to the PAP REST API.
*
+ * @param updateGroupFlow if the operation is pdp group update
* @return the validation result
*/
- public ValidationResult validatePapRest() {
- BeanValidationResult result = new BeanValidationResult("group", this);
+ public ValidationResult validatePapRest(boolean updateGroupFlow) {
+ var result = new BeanValidationResult("group", this);
/*
* Don't care about state, because we override it. Ok if description is null.
*/
result.validateNotNull("name", name);
- result.validateNotNullList(SUBGROUP_FIELD, pdpSubgroups, PdpSubGroup::validatePapRest);
+ result.validateNotNullList(SUBGROUP_FIELD, pdpSubgroups,
+ (PdpSubGroup pdpSubGroup) -> pdpSubGroup.validatePapRest(updateGroupFlow));
if (pdpSubgroups != null && pdpSubgroups.isEmpty()) {
- result.addResult(new ObjectValidationResult(SUBGROUP_FIELD, pdpSubgroups, ValidationStatus.INVALID,
- "is empty"));
+ result.addResult(SUBGROUP_FIELD, pdpSubgroups, ValidationStatus.INVALID, "is empty");
}
checkDuplicateSubgroups(result);
}
// different sizes implies duplicates
- result.addResult(new ObjectValidationResult(SUBGROUP_FIELD, pdpTypes, ValidationStatus.INVALID,
- "duplicate subgroups"));
+ result.addResult(SUBGROUP_FIELD, pdpTypes, ValidationStatus.INVALID, "duplicate subgroups");
}
@Override
- @JsonIgnore
+ @GsonJsonIgnore
public String getVersion() {
// We need to pass a version for keying in the database
return PfKey.NULL_KEY_VERSION;
}
@Override
- @JsonIgnore
+ @GsonJsonIgnore
public void setVersion(String version) {
// Just ignore any version that is set
}