import java.util.Map.Entry;
import javax.ws.rs.core.Response;
import lombok.NonNull;
+import org.onap.policy.common.parameters.BeanValidationResult;
import org.onap.policy.models.base.PfConceptContainer;
import org.onap.policy.models.base.PfConceptKey;
import org.onap.policy.models.base.PfModelRuntimeException;
-import org.onap.policy.models.base.PfValidationMessage;
-import org.onap.policy.models.base.PfValidationResult;
-import org.onap.policy.models.base.PfValidationResult.ValidationResult;
+import org.onap.policy.models.base.Validated;
import org.onap.policy.models.tosca.authorative.concepts.ToscaEntity;
import org.onap.policy.models.tosca.simple.concepts.JpaToscaEntityType;
import org.onap.policy.models.tosca.simple.concepts.JpaToscaServiceTemplate;
*/
public static JpaToscaServiceTemplate addFragment(@NonNull final JpaToscaServiceTemplate originalTemplate,
@NonNull final JpaToscaServiceTemplate fragmentTemplate) {
- PfValidationResult result = new PfValidationResult();
+
+ BeanValidationResult result = new BeanValidationResult("incoming fragment", fragmentTemplate);
if (originalTemplate.compareToWithoutEntities(fragmentTemplate) != 0) {
- result.addValidationMessage(new PfValidationMessage(originalTemplate.getKey(),
- ToscaServiceTemplateUtils.class, ValidationResult.INVALID,
- "service template in incoming fragment does not equal existing service template"));
+ Validated.addResult(result, "service template",
+ originalTemplate.getKey(),
+ "does not equal existing service template");
}
JpaToscaServiceTemplate compositeTemplate = new JpaToscaServiceTemplate(originalTemplate);
.setPolicies(addFragmentEntitites(compositeTemplate.getTopologyTemplate().getPolicies(),
fragmentTemplate.getTopologyTemplate().getPolicies(), result));
} else {
- result.addValidationMessage(new PfValidationMessage(originalTemplate.getTopologyTemplate().getKey(),
- ToscaServiceTemplateUtils.class, ValidationResult.INVALID,
- "topology template in incoming fragment does not equal existing topology template"));
+ Validated.addResult(result, "topology template",
+ originalTemplate.getTopologyTemplate().getKey(),
+ "does not equal existing topology template");
}
} else if (fragmentTemplate.getTopologyTemplate() != null) {
compositeTemplate.setTopologyTemplate(new JpaToscaTopologyTemplate(fragmentTemplate.getTopologyTemplate()));
}
if (result.isValid()) {
- result = compositeTemplate.validate(result);
+ result.addResult(compositeTemplate.validate("composite template"));
}
if (!result.isValid()) {
- String message = result.toString();
+ String message = result.getResult();
throw new PfModelRuntimeException(Response.Status.NOT_ACCEPTABLE, message);
}
private static
<S extends PfConceptContainer<? extends JpaToscaEntityType<? extends ToscaEntity>, ? extends ToscaEntity>>
S addFragmentEntitites(final S compositeContainer, final S fragmentContainer,
- final PfValidationResult result) {
+ final BeanValidationResult result) {
if (compositeContainer == null) {
return fragmentContainer;
return compositeContainer;
}
+ BeanValidationResult result2 = new BeanValidationResult("incoming fragment", fragmentContainer);
+
for (Entry<PfConceptKey, ? extends JpaToscaEntityType<? extends ToscaEntity>> fragmentEntry : fragmentContainer
.getConceptMap().entrySet()) {
JpaToscaEntityType<? extends ToscaEntity> containerEntity =
compositeContainer.getConceptMap().get(fragmentEntry.getKey());
if (containerEntity != null && containerEntity.compareTo(fragmentEntry.getValue()) != 0) {
- result.addValidationMessage(new PfValidationMessage(fragmentEntry.getKey(),
- ToscaServiceTemplateUtils.class,
- ValidationResult.INVALID, "entity in incoming fragment does not equal existing entity"));
+ Validated.addResult(result, "entity", fragmentEntry.getKey(),
+ "does not equal existing entity");
}
}
+ if (!result2.isClean()) {
+ result.addResult(result2);
+ }
+
// This use of a generic map is required to get around typing errors in directly adding the fragment map to the
// original map
@SuppressWarnings("rawtypes")