diff options
Diffstat (limited to 'tosca-controlloop/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ControlLoopHandler.java')
-rw-r--r-- | tosca-controlloop/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ControlLoopHandler.java | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tosca-controlloop/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ControlLoopHandler.java b/tosca-controlloop/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ControlLoopHandler.java index f27be961b..6f8bfffc3 100644 --- a/tosca-controlloop/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ControlLoopHandler.java +++ b/tosca-controlloop/participant/participant-intermediary/src/main/java/org/onap/policy/clamp/controlloop/participant/intermediary/handler/ControlLoopHandler.java @@ -23,8 +23,10 @@ package org.onap.policy.clamp.controlloop.participant.intermediary.handler; import java.io.Closeable; import java.util.ArrayList; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import java.util.UUID; +import lombok.Getter; import org.apache.commons.collections4.CollectionUtils; import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ClElementStatistics; import org.onap.policy.clamp.controlloop.models.controlloop.concepts.ControlLoop; @@ -36,8 +38,10 @@ import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.Parti import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantControlLoopUpdate; import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantResponseDetails; import org.onap.policy.clamp.controlloop.models.messages.dmaap.participant.ParticipantResponseStatus; +import org.onap.policy.clamp.controlloop.participant.intermediary.api.ControlLoopElementListener; import org.onap.policy.clamp.controlloop.participant.intermediary.comm.MessageSender; import org.onap.policy.clamp.controlloop.participant.intermediary.parameters.ParticipantIntermediaryParameters; +import org.onap.policy.models.base.PfModelException; import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -54,6 +58,9 @@ public class ControlLoopHandler implements Closeable { private final Map<ToscaConceptIdentifier, ControlLoop> controlLoopMap = new LinkedHashMap<>(); private final Map<UUID, ControlLoopElement> elementsOnThisParticipant = new LinkedHashMap<>(); + @Getter + private List<ControlLoopElementListener> listeners = new ArrayList<>(); + public ControlLoopHandler() { } @@ -73,6 +80,10 @@ public class ControlLoopHandler implements Closeable { // No explicit action on this class } + public void registerControlLoopElementListener(ControlLoopElementListener listener) { + listeners.add(listener); + } + /** * Handle a control loop element state change message. * @@ -207,6 +218,14 @@ public class ControlLoopHandler implements Closeable { elementsOnThisParticipant.put(element.getId(), element); } + for (ControlLoopElementListener clElementListener : listeners) { + try { + clElementListener.controlLoopElementUpdate(null, updateMsg.getControlLoopDefinition()); + } catch (PfModelException e) { + LOGGER.debug("Control loop element update failed {}", updateMsg.getControlLoopId()); + } + } + response.setResponseStatus(ParticipantResponseStatus.SUCCESS); response.setResponseMessage( "Control loop " + updateMsg.getControlLoopId() + " defined on participant " + participantId); |