SEBA-991-A new API needed to remove specific sources from a McastRoute

Change-Id: Ia7e6cf6939c517743d5adc6bc3869decdf64609f
diff --git a/apps/mcast/api/src/main/java/org/onosproject/mcast/api/McastRouteData.java b/apps/mcast/api/src/main/java/org/onosproject/mcast/api/McastRouteData.java
index ce81ea9..a343c39 100644
--- a/apps/mcast/api/src/main/java/org/onosproject/mcast/api/McastRouteData.java
+++ b/apps/mcast/api/src/main/java/org/onosproject/mcast/api/McastRouteData.java
@@ -121,8 +121,8 @@
      * Adds sources for a given host Id. If the Host Id is {@link HostId#NONE} the sources are intended to be
      * used at all times independently of the attached host.
      *
-     * @param hostId the host
-     * @param sources  the sources
+     * @param hostId  the host
+     * @param sources the sources
      */
     public void addSources(HostId hostId, Set<ConnectPoint> sources) {
         checkNotNull(hostId);
diff --git a/apps/mcast/api/src/main/java/org/onosproject/mcast/api/McastStore.java b/apps/mcast/api/src/main/java/org/onosproject/mcast/api/McastStore.java
index 484f32ec..5e2c1e6 100644
--- a/apps/mcast/api/src/main/java/org/onosproject/mcast/api/McastStore.java
+++ b/apps/mcast/api/src/main/java/org/onosproject/mcast/api/McastStore.java
@@ -57,7 +57,7 @@
      * The source stored with this method are not tied with any host.
      * Traffic will be sent from all of them.
      *
-     * @param route a Multicast route
+     * @param route   a Multicast route
      * @param sources set of specific connect points
      */
     void storeSources(McastRoute route, Set<ConnectPoint> sources);
@@ -78,6 +78,15 @@
     void removeSource(McastRoute route, HostId source);
 
     /**
+     * Removes a set of source connect points for a given route.
+     * This method is not tied with any host.
+     *
+     * @param route   a Multicast route
+     * @param sources set of specific connect points
+     */
+    void removeSources(McastRoute route, Set<ConnectPoint> sources);
+
+    /**
      * Removes a set of source connect points for a given host the route.
      *
      * @param route         the multicast route
diff --git a/apps/mcast/api/src/main/java/org/onosproject/mcast/api/MulticastRouteService.java b/apps/mcast/api/src/main/java/org/onosproject/mcast/api/MulticastRouteService.java
index bd32363..2e34a4b 100644
--- a/apps/mcast/api/src/main/java/org/onosproject/mcast/api/MulticastRouteService.java
+++ b/apps/mcast/api/src/main/java/org/onosproject/mcast/api/MulticastRouteService.java
@@ -86,7 +86,7 @@
      * used as different sources for that Mcast Tree. For dual-homed sources
      * please use {@link #addSource(McastRoute route, HostId hostId) addSource}.
      *
-     * @param route a Multicast route
+     * @param route   a Multicast route
      * @param sources a set of source connect points
      */
     void addSources(McastRoute route, Set<ConnectPoint> sources);
@@ -107,6 +107,26 @@
     void removeSource(McastRoute route, HostId source);
 
     /**
+     * Removes a set of sources from the route.
+     * If this method is used the connect points will all be
+     * used as different sources for that Mcast Tree. For dual-homed sources
+     * please use {@link #removeSource(McastRoute, HostId)}.
+     *
+     * @param route   the multicast route
+     * @param sources set of sources
+     */
+    void removeSources(McastRoute route, Set<ConnectPoint> sources);
+
+    /**
+     * Removes a set of source connect points for a given host source from the route.
+     *
+     * @param route         a multicast route
+     * @param hostId        a source host
+     * @param connectPoints the source for the specific connect points
+     */
+    void removeSources(McastRoute route, HostId hostId, Set<ConnectPoint> connectPoints);
+
+    /**
      * Adds a sink to the route to which a data stream should be
      * sent to.
      *