Add collaboration feature
[sdc.git] / openecomp-be / lib / openecomp-sdc-notification-lib / openecomp-sdc-notification-core / src / main / java / org / openecomp / sdc / destinationprovider / impl / MulticastDestination.java
1 package org.openecomp.sdc.destinationprovider.impl;
2
3 import org.apache.commons.lang3.ArrayUtils;
4 import org.openecomp.sdc.destinationprovider.DestinationProvider;
5 import org.openecomp.sdc.notification.services.SubscriptionService;
6
7 import java.util.ArrayList;
8 import java.util.Arrays;
9 import java.util.Collections;
10 import java.util.List;
11
12 /**
13  * @author avrahamg
14  * @since July 09, 2017
15  */
16 public class MulticastDestination implements DestinationProvider {
17
18     private String entityId;
19     private SubscriptionService subscriptionService;
20     private String[] excludedSubscribers;
21
22     public MulticastDestination(String entityId, SubscriptionService subscriptionService,
23                                 String... excludedSubscribers) {
24         this.entityId = entityId;
25         this.excludedSubscribers = excludedSubscribers;
26         this.subscriptionService = subscriptionService;
27     }
28
29     public List<String> getSubscribers() {
30         ArrayList<String> subscribers = new ArrayList<>(subscriptionService.getSubscribers(entityId));
31         if (ArrayUtils.isNotEmpty(excludedSubscribers)) {
32             subscribers.removeAll(Arrays.asList(excludedSubscribers));
33         }
34         return Collections.unmodifiableList(subscribers);
35     }
36
37     public String getEntityId() {
38         return entityId;
39     }
40
41     public void setEntityId(String entityId) {
42         this.entityId = entityId;
43     }
44 }