Merge "Fixed deserialization of IdentityRefs in Restconf URI."
[controller.git] / opendaylight / config / yang-jmx-generator-plugin / src / main / resources / freeMarker / factory_abs_template.ftl
index adfbcebd0be6f6caa505fc8b0b74f80a65cdb0a1..a331e4e0c1ad95245f838ebee17192e2a7c61c81 100644 (file)
@@ -17,23 +17,28 @@ package ${packageName};
 
     @Override
     public final boolean isModuleImplementingServiceInterface(Class<? extends ${abstractServiceInterfaceType}> serviceInterface) {
-        return serviceIfcs.contains(serviceInterface);
+        for (Class<?> ifc: serviceIfcs) {
+            if (serviceInterface.isAssignableFrom(ifc)){
+                return true;
+            }
+        }
+        return false;
     }
 
     @Override
-    public ${moduleType} createModule(String instanceName, ${dependencyResolverType} dependencyResolver) {
-        return instantiateModule(instanceName, dependencyResolver);
+    public ${moduleType} createModule(String instanceName, ${dependencyResolverType} dependencyResolver, ${bundleContextType} bundleContext) {
+        return instantiateModule(instanceName, dependencyResolver, bundleContext);
     }
 
     @Override
-    public ${moduleType} createModule(String instanceName, ${dependencyResolverType} dependencyResolver, ${dynamicMBeanWithInstanceType} old) throws Exception {
+    public ${moduleType} createModule(String instanceName, ${dependencyResolverType} dependencyResolver, ${dynamicMBeanWithInstanceType} old, ${bundleContextType} bundleContext) throws Exception {
         ${moduleInstanceType} oldModule = null;
         try {
             oldModule = (${moduleInstanceType}) old.getModule();
         } catch(Exception e) {
             return handleChangedClass(old);
         }
-        ${moduleInstanceType} module = instantiateModule(instanceName, dependencyResolver, oldModule, old.getInstance());
+        ${moduleInstanceType} module = instantiateModule(instanceName, dependencyResolver, oldModule, old.getInstance(), bundleContext);
 
         <#list fields as attr>
         module.set${attr.name}(oldModule.get${attr.name}());
@@ -42,11 +47,11 @@ package ${packageName};
         return module;
     }
 
-    public ${moduleInstanceType} instantiateModule(String instanceName, ${dependencyResolverType} dependencyResolver, ${moduleInstanceType} oldModule, ${instanceType} oldInstance) {
+    public ${moduleInstanceType} instantiateModule(String instanceName, ${dependencyResolverType} dependencyResolver, ${moduleInstanceType} oldModule, ${instanceType} oldInstance, ${bundleContextType} bundleContext) {
         return new ${moduleInstanceType}(new ${moduleNameType}(NAME, instanceName), dependencyResolver, oldModule, oldInstance);
     }
 
-    public ${moduleInstanceType} instantiateModule(String instanceName, ${dependencyResolverType} dependencyResolver) {
+    public ${moduleInstanceType} instantiateModule(String instanceName, ${dependencyResolverType} dependencyResolver, ${bundleContextType} bundleContext) {
         return new ${moduleInstanceType}(new ${moduleNameType}(NAME, instanceName), dependencyResolver);
     }
 
@@ -60,4 +65,9 @@ package ${packageName};
         throw new UnsupportedOperationException("Class reloading is not supported");
     }
 
+    @Override
+    public java.util.Set<${moduleInstanceType}> getDefaultModules(org.opendaylight.controller.config.api.DependencyResolverFactory dependencyResolverFactory, ${bundleContextType} bundleContext) {
+        return new java.util.HashSet<${moduleInstanceType}>();
+    }
+
 }