[ONOS-3111] port-pair-group manager modification

Change-Id: I37df58e8589147624393a84efdf28e0bb8dfa29c
diff --git a/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/portpairgroup/impl/PortPairGroupManager.java b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/portpairgroup/impl/PortPairGroupManager.java
index 5f80ef6..fd38cd9 100644
--- a/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/portpairgroup/impl/PortPairGroupManager.java
+++ b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/portpairgroup/impl/PortPairGroupManager.java
@@ -19,7 +19,6 @@
 import static org.slf4j.LoggerFactory.getLogger;
 
 import java.util.Collections;
-import java.util.Set;
 
 import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
@@ -28,6 +27,7 @@
 import org.apache.felix.scr.annotations.ReferenceCardinality;
 import org.apache.felix.scr.annotations.Service;
 import org.onlab.util.KryoNamespace;
+import org.onosproject.event.AbstractListenerManager;
 import org.onosproject.store.serializers.KryoNamespaces;
 import org.onosproject.store.service.EventuallyConsistentMap;
 import org.onosproject.store.service.MultiValuedTimestamp;
@@ -35,25 +35,25 @@
 import org.onosproject.store.service.WallClockTimestamp;
 import org.onosproject.vtnrsc.PortPairGroup;
 import org.onosproject.vtnrsc.PortPairGroupId;
+import org.onosproject.vtnrsc.portpairgroup.PortPairGroupEvent;
 import org.onosproject.vtnrsc.portpairgroup.PortPairGroupListener;
 import org.onosproject.vtnrsc.portpairgroup.PortPairGroupService;
 import org.slf4j.Logger;
 
-import com.google.common.collect.Sets;
-
 /**
  * Provides implementation of the portPairGroupService.
  */
 @Component(immediate = true)
 @Service
-public class PortPairGroupManager implements PortPairGroupService {
+public class PortPairGroupManager extends AbstractListenerManager<PortPairGroupEvent, PortPairGroupListener> implements
+        PortPairGroupService {
 
     private static final String PORT_PAIR_GROUP_ID_NULL = "PortPairGroup ID cannot be null";
     private static final String PORT_PAIR_GROUP_NULL = "PortPairGroup cannot be null";
     private static final String LISTENER_NOT_NULL = "Listener cannot be null";
 
     private final Logger log = getLogger(getClass());
-    private final Set<PortPairGroupListener> listeners = Sets.newCopyOnWriteArraySet();
+
     private EventuallyConsistentMap<PortPairGroupId, PortPairGroup> portPairGroupStore;
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
@@ -78,7 +78,6 @@
     @Deactivate
     public void deactivate() {
         portPairGroupStore.destroy();
-        listeners.clear();
         log.info("Stopped");
     }
 
@@ -111,7 +110,7 @@
         portPairGroupStore.put(portPairGroup.portPairGroupId(), portPairGroup);
         if (!portPairGroupStore.containsKey(portPairGroup.portPairGroupId())) {
             log.debug("The portPairGroup is created failed which identifier was {}", portPairGroup.portPairGroupId()
-                      .toString());
+                    .toString());
             return false;
         }
         return true;
@@ -149,16 +148,4 @@
         }
         return true;
     }
-
-    @Override
-    public void addListener(PortPairGroupListener listener) {
-        checkNotNull(listener, LISTENER_NOT_NULL);
-        listeners.add(listener);
-    }
-
-    @Override
-    public void removeListener(PortPairGroupListener listener) {
-        checkNotNull(listener, LISTENER_NOT_NULL);
-        listeners.remove(listener);
-    }
 }