X-Git-Url: https://gerrit.onap.org/r/gitweb?p=policy%2Fengine.git;a=blobdiff_plain;f=POLICY-SDK-APP%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fcontroller%2FCreateBRMSRawController.java;h=487165b56ef73b049736a1fd530f2b041c2a8078;hp=93ca2819065b8caa9603d97dc80f8a508d7bf006;hb=1e61676b77dd09659027b8984f050df7e8538526;hpb=9beb01fafe35a819d85bc66668b499f25aa0857a diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSRawController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSRawController.java index 93ca28190..487165b56 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSRawController.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSRawController.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP Policy Engine * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * Modifications Copyright (C) 2019 Bell Canada * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -27,8 +27,8 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; - import java.util.Objects; + import javax.xml.bind.JAXBElement; import oasis.names.tc.xacml._3_0.core.schema.wd_17.AdviceExpressionType; @@ -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,74 +52,65 @@ 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 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 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 anyOfList) { anyOfList.stream() - //Extract nonNull list of AllOfType objs from each AnyOfType obj - .map(AnyOfType::getAllOf).filter(Objects::nonNull) - .forEach(allOfList -> - //Extract nonNull list of MatchType objs from each AllOFType obj - allOfList.stream().map(AllOfType::getMatch).filter(Objects::nonNull) - .flatMap(Collection::stream) - .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); - } - })); + // Extract nonNull list of AllOfType objs from each AnyOfType obj + .map(AnyOfType::getAllOf).filter(Objects::nonNull).forEach(allOfList -> + // Extract nonNull list of MatchType objs from each AllOFType obj + allOfList.stream().map(AllOfType::getMatch).filter(Objects::nonNull).flatMap(Collection::stream) + .forEach(match -> { + // Under the match we have attribute value and + // attributeDesignator. So,finally down to the actual attribute. + policyAdapter.setupUsingAttribute(match.getAttributeDesignator().getAttributeId(), + (String) match.getAttributeValue().getContent().get(0)); + })); } private void setPolicyAdapterNameValue(final PolicyRestAdapter policyAdapter) { // policy name value is the policy name without any prefix and extensions. - String policyNameValue = policyAdapter.getPolicyName() - .substring(policyAdapter.getPolicyName().indexOf("BRMS_Raw_") + 9); + String policyNameValue = + policyAdapter.getPolicyName().substring(policyAdapter.getPolicyName().indexOf("BRMS_Raw_") + 9); if (logger.isDebugEnabled()) { logger.debug("Prepopulating form data for BRMS RAW Policy selected:" + policyAdapter.getPolicyName()); } @@ -138,30 +128,31 @@ public class CreateBRMSRawController { policyAdapter.setPolicyDescription(description); } + @SuppressWarnings("unchecked") private void setPolicyAdapterAttributes(final PolicyRestAdapter policyAdapter, final PolicyType policy) { ArrayList attributeList = new ArrayList<>(); - AdviceExpressionsType expressionTypes = ((RuleType) policy - .getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().get(0)).getAdviceExpressions(); + AdviceExpressionsType expressionTypes = + ((RuleType) policy.getCombinerParametersOrRuleCombinerParametersOrVariableDefinition().get(0)) + .getAdviceExpressions(); for (AdviceExpressionType adviceExpression : expressionTypes.getAdviceExpression()) { for (AttributeAssignmentExpressionType attributeAssignment : adviceExpression - .getAttributeAssignmentExpression()) { + .getAttributeAssignmentExpression()) { if (attributeAssignment.getAttributeId().startsWith("key:")) { Map attribute = new HashMap<>(); String key = attributeAssignment.getAttributeId().replace("key:", ""); attribute.put("key", key); - JAXBElement attributeValue = (JAXBElement) attributeAssignment - .getExpression(); + JAXBElement attributeValue = + (JAXBElement) attributeAssignment.getExpression(); String value = (String) attributeValue.getValue().getContent().get(0); attribute.put("value", value); attributeList.add(attribute); } else if (attributeAssignment.getAttributeId().startsWith("dependencies:")) { ArrayList dependencies = new ArrayList<>(Arrays - .asList(attributeAssignment.getAttributeId().replace("dependencies:", "").split(","))); + .asList(attributeAssignment.getAttributeId().replace("dependencies:", "").split(","))); dependencies.remove(""); policyAdapter.setBrmsDependency(dependencies); } else if (attributeAssignment.getAttributeId().startsWith("controller:")) { - policyAdapter - .setBrmsController(attributeAssignment.getAttributeId().replace("controller:", "")); + policyAdapter.setBrmsController(attributeAssignment.getAttributeId().replace("controller:", "")); } } policyAdapter.setAttributes(attributeList);