Use ValidationResult for models v2.0
[policy/models.git] / models-tosca / src / main / java / org / onap / policy / models / tosca / utils / ToscaServiceTemplateUtils.java
index 7bf4d29..fe52993 100644 (file)
@@ -25,12 +25,11 @@ import java.util.Map;
 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;
@@ -57,12 +56,13 @@ public class ToscaServiceTemplateUtils {
      */
     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);
@@ -79,20 +79,20 @@ public class ToscaServiceTemplateUtils {
                         .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);
         }
 
@@ -113,7 +113,7 @@ public class ToscaServiceTemplateUtils {
     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;
@@ -123,17 +123,22 @@ public class ToscaServiceTemplateUtils {
             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")