[ONOS-5090] YANG notification handler implementation

Change-Id: I8e161757b9f39e7beb2c54ebac8dae9ee6b4907f
~
diff --git a/apps/yms/app/src/main/java/org/onosproject/yms/app/ysr/DefaultYangSchemaRegistry.java b/apps/yms/app/src/main/java/org/onosproject/yms/app/ysr/DefaultYangSchemaRegistry.java
index 370e9cc..ce123e1 100644
--- a/apps/yms/app/src/main/java/org/onosproject/yms/app/ysr/DefaultYangSchemaRegistry.java
+++ b/apps/yms/app/src/main/java/org/onosproject/yms/app/ysr/DefaultYangSchemaRegistry.java
@@ -16,7 +16,6 @@
 
 package org.onosproject.yms.app.ysr;
 
-import org.onosproject.event.ListenerService;
 import org.onosproject.yangutils.datamodel.RpcNotificationContainer;
 import org.onosproject.yangutils.datamodel.YangInclude;
 import org.onosproject.yangutils.datamodel.YangModule;
@@ -24,7 +23,6 @@
 import org.onosproject.yangutils.datamodel.YangSchemaNode;
 import org.onosproject.yangutils.datamodel.YangSubModule;
 import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
-import org.onosproject.yms.app.ynh.YangNotificationExtendedService;
 import org.onosproject.yms.ysr.YangModuleIdentifier;
 import org.onosproject.yms.ysr.YangModuleInformation;
 import org.onosproject.yms.ysr.YangModuleLibrary;
@@ -79,72 +77,21 @@
     private static final String DATE_FORMAT = "yyyy-mm-dd";
     private static final Logger log =
             LoggerFactory.getLogger(DefaultYangSchemaRegistry.class);
-
-    /*
-     * Map for storing app objects.
-     */
     private final ConcurrentMap<String, YsrAppContext> appObjectStore;
-
-    /*
-     * Map for storing YANG schema nodes.
-     */
     private final ConcurrentMap<String, YsrAppContext> yangSchemaStore;
-
-    /*
-     * Map for storing YANG schema nodes with respect to root's generated
-     * interface file name.
-     */
     private final ConcurrentMap<String, YsrAppContext>
             yangSchemaStoreForRootInterface;
-
-    /*
-     * Map for storing YANG schema nodes root's generated op param file name.
-     */
     private final ConcurrentMap<String, YsrAppContext>
             yangSchemaStoreForRootOpParam;
-
-    /*
-     * Map for storing YANG schema nodes with respect to notifications.
-     */
     private final ConcurrentMap<String, YsrAppContext>
             yangRootSchemaStoreForNotification;
-
-    /*
-     * Map for storing registered classes.
-     */
     private final ConcurrentMap<String, Class<?>> registerClassStore;
-
-    /*
-     * Map for storing YANG file details.
-     */
     private final ConcurrentMap<YangModuleIdentifier, String> yangFileStore;
-
-    /*
-     * Context of application which is registering with YMS.
-     */
-    private YsrAppContext ysrAppContext;
-
-    /*
-     * Context of application which is registering with YMS with multiple
-     * revision.
-     */
-    private YsrAppContext ysrContextForSchemaStore;
-
-    /*
-     * Context of application which is registering with YMS with multiple
-     * manager object.
-     */
-    private YsrAppContext ysrContextForAppStore;
-
-    /*
-     * Class loader of service application.
-     */
-    private ClassLoader classLoader;
-
-    /**
-     * YANG module library.
-     */
     private final YangModuleLibrary library;
+    private YsrAppContext ysrAppContext;
+    private YsrAppContext ysrContextForSchemaStore;
+    private YsrAppContext ysrContextForAppStore;
+    private ClassLoader classLoader;
 
     /**
      * Creates an instance of default YANG schema registry.
@@ -164,20 +111,14 @@
 
 
     @Override
-    public void registerApplication(Object appObject, Class<?> serviceClass,
-                                    YangNotificationExtendedService
-                                            notificationExtendedService) {
+    public void registerApplication(Object appObject, Class<?> serviceClass) {
 
         BundleContext bundleContext = getBundle(serviceClass)
                 .getBundleContext();
         String jarPath = getJarPathFromBundleLocation(
                 bundleContext.getBundle().getLocation(),
                 bundleContext.getProperty(USER_DIRECTORY));
-        // process application registration.
         processRegistration(serviceClass, appObject, jarPath);
-        //process notification registration.
-        processNotificationRegistration(serviceClass, appObject,
-                                        notificationExtendedService);
     }
 
     /**
@@ -588,7 +529,6 @@
         }
         log.info("successfully registered this application {}{}", appName,
                  SERVICE);
-
     }
 
     /**
@@ -773,7 +713,7 @@
      * @return true if the manager object is already registered with
      * notification handler
      */
-    boolean verifyNotificationObject(Class<?> serviceClass) {
+    public boolean verifyNotificationObject(Class<?> serviceClass) {
         YangSchemaNode schemaNode = null;
         String serviceName = serviceClass.getName();
         if (appObjectStore.containsKey(serviceName)) {
@@ -1016,25 +956,6 @@
     }
 
     /**
-     * Process notification registration for manager class object.
-     *
-     * @param yangService yang service
-     * @param yangManager yang manager
-     * @param ynhService  notification extended service
-     */
-    private void processNotificationRegistration(
-            Class<?> yangService, Object yangManager,
-            YangNotificationExtendedService ynhService) {
-
-        if (yangManager != null && yangManager instanceof ListenerService) {
-            if (verifyNotificationObject(yangService)) {
-                ynhService.registerAsListener(
-                        (ListenerService) yangManager);
-            }
-        }
-    }
-
-    /**
      * Clears database for YSR.
      */
     public void flushYsrData() {
@@ -1112,5 +1033,4 @@
     public YangModuleLibrary getLibrary() {
         return library;
     }
-
 }
diff --git a/apps/yms/app/src/main/java/org/onosproject/yms/app/ysr/YangSchemaRegistry.java b/apps/yms/app/src/main/java/org/onosproject/yms/app/ysr/YangSchemaRegistry.java
index 1812f04..8098188 100644
--- a/apps/yms/app/src/main/java/org/onosproject/yms/app/ysr/YangSchemaRegistry.java
+++ b/apps/yms/app/src/main/java/org/onosproject/yms/app/ysr/YangSchemaRegistry.java
@@ -17,7 +17,6 @@
 package org.onosproject.yms.app.ysr;
 
 import org.onosproject.yangutils.datamodel.YangSchemaNode;
-import org.onosproject.yms.app.ynh.YangNotificationExtendedService;
 
 /**
  * Abstraction of entity which provides interfaces to YANG schema registry.
@@ -27,15 +26,10 @@
     /**
      * Registers applications to YMS.
      *
-     * @param managerObject               application's object
-     * @param serviceClass                service class which needs to be
-     *                                    registered
-     * @param notificationExtendedService notification extended service to
-     *                                    register application object with YNH
+     * @param managerObject application's object
+     * @param serviceClass  service class to be registered
      */
-    void registerApplication(Object managerObject, Class<?> serviceClass,
-                             YangNotificationExtendedService
-                                     notificationExtendedService);
+    void registerApplication(Object managerObject, Class<?> serviceClass);
 
     /**
      * Unregisters applications to YMS.