diff options
author | jrh3 <jrh3@att.com> | 2019-06-14 10:31:40 -0400 |
---|---|---|
committer | jrh3 <jrh3@att.com> | 2019-06-14 10:36:34 -0400 |
commit | 82cc7e0ccf799e0ea5d9afd033a3cff88468b6bf (patch) | |
tree | eb10d3d9278656866b1323d7a50d650ce0e98b33 /main/src/main/java/org/onap/policy/pap/main/comm/PdpStatusMessageHandler.java | |
parent | a240d7a4020d0346040fe4d86682a6ab8fcd757a (diff) |
Fix sonar issues in PAP
Replace string concatenation with "{}" place-holders in logging
statements.
Refactored PdpStatusMessageHandler and PdpGroupStateChangeProvider
to extract common/duplicate code block into PdpMessageGenerator.
Refactored selectPdpGroupsForRegistration() to reduce "cyclomatic complexity";
extracted selectPdpSubGroupsForRegistration from it.
Issue-ID: POLICY-1791
Signed-off-by: jrh3 <jrh3@att.com>
Change-Id: Ia0ebc1cf41cd2fa288130b4a58614a4983f47f8b
Signed-off-by: jrh3 <jrh3@att.com>
Diffstat (limited to 'main/src/main/java/org/onap/policy/pap/main/comm/PdpStatusMessageHandler.java')
-rw-r--r-- | main/src/main/java/org/onap/policy/pap/main/comm/PdpStatusMessageHandler.java | 98 |
1 files changed, 17 insertions, 81 deletions
diff --git a/main/src/main/java/org/onap/policy/pap/main/comm/PdpStatusMessageHandler.java b/main/src/main/java/org/onap/policy/pap/main/comm/PdpStatusMessageHandler.java index f5184c93..6998140f 100644 --- a/main/src/main/java/org/onap/policy/pap/main/comm/PdpStatusMessageHandler.java +++ b/main/src/main/java/org/onap/policy/pap/main/comm/PdpStatusMessageHandler.java @@ -21,14 +21,11 @@ package org.onap.policy.pap.main.comm; -import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.TreeMap; - import org.apache.commons.lang3.builder.EqualsBuilder; -import org.onap.policy.common.parameters.ParameterService; import org.onap.policy.common.utils.services.Registry; import org.onap.policy.models.base.PfModelException; import org.onap.policy.models.pdp.concepts.Pdp; @@ -40,12 +37,8 @@ import org.onap.policy.models.pdp.concepts.PdpSubGroup; import org.onap.policy.models.pdp.concepts.PdpUpdate; import org.onap.policy.models.pdp.enums.PdpState; import org.onap.policy.models.provider.PolicyModelsProvider; -import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy; -import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyIdentifier; import org.onap.policy.pap.main.PapConstants; -import org.onap.policy.pap.main.PolicyModelsProviderFactoryWrapper; import org.onap.policy.pap.main.PolicyPapException; -import org.onap.policy.pap.main.parameters.PapParameterGroup; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -55,41 +48,14 @@ import org.slf4j.LoggerFactory; * * @author Ram Krishna Verma (ram.krishna.verma@est.tech) */ -public class PdpStatusMessageHandler { +public class PdpStatusMessageHandler extends PdpMessageGenerator { private static final Logger LOGGER = LoggerFactory.getLogger(PdpStatusMessageHandler.class); - private static final String PAP_GROUP_PARAMS_NAME = "PapGroup"; - - /** - * Lock used when updating PDPs. - */ - private final Object updateLock; - - /** - * Used to send UPDATE and STATE-CHANGE requests to the PDPs. - */ - private final PdpModifyRequestMap requestMap; - - /** - * Factory for PAP DAO. - */ - private final PolicyModelsProviderFactoryWrapper modelProviderWrapper; - - /** - * Heart beat interval, in milliseconds, to pass to PDPs. - */ - private final long heartBeatMs; - /** * Constructs the object. */ public PdpStatusMessageHandler() { - modelProviderWrapper = Registry.get(PapConstants.REG_PAP_DAO_FACTORY, PolicyModelsProviderFactoryWrapper.class); - updateLock = Registry.get(PapConstants.REG_PDP_MODIFY_LOCK, Object.class); - requestMap = Registry.get(PapConstants.REG_PDP_MODIFY_MAP, PdpModifyRequestMap.class); - - PapParameterGroup params = ParameterService.get(PAP_GROUP_PARAMS_NAME); - heartBeatMs = params.getPdpParameters().getHeartBeatMs(); + super(true); } /** @@ -154,15 +120,21 @@ public class PdpStatusMessageHandler { final Map<Integer, PdpGroup> selectedPdpGroups, final List<PdpGroup> pdpGroups) { PdpGroup emptyPdpGroup = null; for (final PdpGroup pdpGroup : pdpGroups) { - for (final PdpSubGroup pdpSubGroup : pdpGroup.getPdpSubgroups()) { - if (message.getSupportedPolicyTypes().containsAll(pdpSubGroup.getSupportedPolicyTypes())) { - if (pdpSubGroup.getCurrentInstanceCount() == 0) { - emptyPdpGroup = pdpGroup; - } else { - selectedPdpGroups.put( - pdpSubGroup.getDesiredInstanceCount() - pdpSubGroup.getCurrentInstanceCount(), - pdpGroup); - } + emptyPdpGroup = selectPdpSubGroupsForRegistration(message, selectedPdpGroups, pdpGroup, emptyPdpGroup); + } + return emptyPdpGroup; + } + + private PdpGroup selectPdpSubGroupsForRegistration(final PdpStatus message, + final Map<Integer, PdpGroup> selectedPdpGroups, final PdpGroup pdpGroup, PdpGroup emptyPdpGroup) { + for (final PdpSubGroup pdpSubGroup : pdpGroup.getPdpSubgroups()) { + if (message.getSupportedPolicyTypes().containsAll(pdpSubGroup.getSupportedPolicyTypes())) { + if (pdpSubGroup.getCurrentInstanceCount() == 0) { + emptyPdpGroup = pdpGroup; + } else { + selectedPdpGroups.put( + pdpSubGroup.getDesiredInstanceCount() - pdpSubGroup.getCurrentInstanceCount(), + pdpGroup); } } } @@ -308,40 +280,4 @@ public class PdpStatusMessageHandler { LOGGER.debug("Sent PdpUpdate message - {}", pdpUpdatemessage); LOGGER.debug("Sent PdpStateChange message - {}", pdpStateChangeMessage); } - - private PdpUpdate createPdpUpdateMessage(final String pdpGroupName, final PdpSubGroup subGroup, - final String pdpInstanceId, final PolicyModelsProvider databaseProvider) throws PfModelException { - - final PdpUpdate update = new PdpUpdate(); - update.setName(pdpInstanceId); - update.setPdpGroup(pdpGroupName); - update.setPdpSubgroup(subGroup.getPdpType()); - update.setPolicies(getToscaPolicies(subGroup, databaseProvider)); - update.setPdpHeartbeatIntervalMs(heartBeatMs); - - LOGGER.debug("Created PdpUpdate message - {}", update); - return update; - } - - private List<ToscaPolicy> getToscaPolicies(final PdpSubGroup subGroup, final PolicyModelsProvider databaseProvider) - throws PfModelException { - final List<ToscaPolicy> policies = new ArrayList<>(); - for (final ToscaPolicyIdentifier policyIdentifier : subGroup.getPolicies()) { - policies.addAll(databaseProvider.getPolicyList(policyIdentifier.getName(), policyIdentifier.getVersion())); - } - LOGGER.debug("Created ToscaPolicy list - {}", policies); - return policies; - } - - private PdpStateChange createPdpStateChangeMessage(final String pdpGroupName, final PdpSubGroup subGroup, - final String pdpInstanceId, final PdpState pdpState) { - - final PdpStateChange stateChange = new PdpStateChange(); - stateChange.setName(pdpInstanceId); - stateChange.setPdpGroup(pdpGroupName); - stateChange.setPdpSubgroup(subGroup.getPdpType()); - stateChange.setState(pdpState == null ? PdpState.ACTIVE : pdpState); - LOGGER.debug("Created PdpStateChange message - {}", stateChange); - return stateChange; - } } |