Consolidate PolicyRestAdapter setup
[policy/engine.git] / POLICY-SDK-APP / src / main / java / org / onap / policy / controller / CreateBRMSRawController.java
index 9974292..487165b 100644 (file)
@@ -36,7 +36,6 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionsType;
 import oasis.names.tc.xacml._3_0.core.schema.wd_17.AllOfType;
 import oasis.names.tc.xacml._3_0.core.schema.wd_17.AnyOfType;
 import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeAssignmentExpressionType;
-import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeDesignatorType;
 import oasis.names.tc.xacml._3_0.core.schema.wd_17.AttributeValueType;
 import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType;
 import oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType;
@@ -53,39 +52,45 @@ public class CreateBRMSRawController {
 
     protected PolicyRestAdapter policyAdapter = null;
 
-    @SuppressWarnings("unchecked")
+    /**
+     * prePopulateBRMSRawPolicyData.
+     *
+     * @param policyAdapter PolicyRestAdapter
+     * @param entity PolicyEntity
+     */
     public void prePopulateBRMSRawPolicyData(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
 
-        if (policyAdapter.getPolicyData() instanceof PolicyType) {
-            PolicyType policy = (PolicyType) policyAdapter.getPolicyData();
-            policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
-
-            // Set PolicyAdapter name value
-            setPolicyAdapterNameValue(policyAdapter);
+        if (! (policyAdapter.getPolicyData() instanceof PolicyType)) {
+            return;
+        }
+        PolicyType policy = (PolicyType) policyAdapter.getPolicyData();
+        policyAdapter.setOldPolicyFileName(policyAdapter.getPolicyName());
 
-            // Set PolicyAdapter description.
-            setPolicyAdapterDescription(policyAdapter, policy);
+        // Set PolicyAdapter name value
+        setPolicyAdapterNameValue(policyAdapter);
 
-            // Set PolicyAdapter attributes.
-            setPolicyAdapterAttributes(policyAdapter, policy);
+        // Set PolicyAdapter description.
+        setPolicyAdapterDescription(policyAdapter, policy);
 
-            // Set PolicyAdapter configBodyData
-            policyAdapter.setConfigBodyData(entity.getConfigurationData().getConfigBody());
+        // Set PolicyAdapter attributes.
+        setPolicyAdapterAttributes(policyAdapter, policy);
 
-            // Get the target data under policy.
-            TargetType target = policy.getTarget();
-            if (target == null) {
-                return;
-            }
-            // Under target we have AnyOFType
-            List<AnyOfType> anyOfList = target.getAnyOf();
-            if (anyOfList == null) {
-                return;
-            }
+        // Set PolicyAdapter configBodyData
+        policyAdapter.setConfigBodyData(entity.getConfigurationData().getConfigBody());
 
-            // Set PolicyAdapter riskType, riskLevel, guard, ttlDate from match attributes
-            setPolicyAdapterMatchAttributes(policyAdapter, policy.getTarget().getAnyOf());
+        // Get the target data under policy.
+        TargetType target = policy.getTarget();
+        if (target == null) {
+            return;
+        }
+        // Under target we have AnyOFType
+        List<AnyOfType> anyOfList = target.getAnyOf();
+        if (anyOfList == null) {
+            return;
         }
+
+        // Set PolicyAdapter riskType, riskLevel, guard, ttlDate from match attributes
+        setPolicyAdapterMatchAttributes(policyAdapter, policy.getTarget().getAnyOf());
     }
 
     private void setPolicyAdapterMatchAttributes(PolicyRestAdapter policyAdapter, List<AnyOfType> anyOfList) {
@@ -97,21 +102,8 @@ public class CreateBRMSRawController {
                         .forEach(match -> {
                             // Under the match we have attribute value and
                             // attributeDesignator. So,finally down to the actual attribute.
-                            AttributeValueType attributeValue = match.getAttributeValue();
-                            String value = (String) attributeValue.getContent().get(0);
-                            AttributeDesignatorType designator = match.getAttributeDesignator();
-                            String attributeId = designator.getAttributeId();
-                            if ("RiskType".equals(attributeId)) {
-                                policyAdapter.setRiskType(value);
-                            } else if ("RiskLevel".equals(attributeId)) {
-                                policyAdapter.setRiskLevel(value);
-                            } else if ("guard".equals(attributeId)) {
-                                policyAdapter.setGuard(value);
-                            } else if ("TTLDate".equals(attributeId) && !value.contains("NA")) {
-                                PolicyController controller = new PolicyController();
-                                String newDate = controller.convertDate(value);
-                                policyAdapter.setTtlDate(newDate);
-                            }
+                            policyAdapter.setupUsingAttribute(match.getAttributeDesignator().getAttributeId(),
+                                    (String) match.getAttributeValue().getContent().get(0));
                         }));
     }
 
@@ -136,6 +128,7 @@ public class CreateBRMSRawController {
         policyAdapter.setPolicyDescription(description);
     }
 
+    @SuppressWarnings("unchecked")
     private void setPolicyAdapterAttributes(final PolicyRestAdapter policyAdapter, final PolicyType policy) {
         ArrayList<Object> attributeList = new ArrayList<>();
         AdviceExpressionsType expressionTypes =