Bugfix generated method in Abstract ModuleFactory template. 28/2828/2
authorTomas Olvecky <tolvecky@cisco.com>
Mon, 18 Nov 2013 14:53:04 +0000 (15:53 +0100)
committerTomas Olvecky <tolvecky@cisco.com>
Mon, 18 Nov 2013 15:25:43 +0000 (16:25 +0100)
Fix generated ModuleFactory#isModuleImplementingServiceInterface: Use isAssignableFrom instead of equality check when
testing if possibly super class provided as a parameter can be used instead of possibly more concrete class of implemented
service interface.

Change-Id: Iee32402facd8ea3fb7ff4a030ca3bdb51d810af0
Signed-off-by: Tomas Olvecky <tolvecky@cisco.com>
opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/factory_abs_template.ftl
opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/JMXGeneratorTest.java

index 00f2581ae14ff82ecd6ab29e9a51c72120ad8eef..a331e4e0c1ad95245f838ebee17192e2a7c61c81 100644 (file)
@@ -17,7 +17,12 @@ package ${packageName};
 
     @Override
     public final boolean isModuleImplementingServiceInterface(Class<? extends ${abstractServiceInterfaceType}> serviceInterface) {
 
     @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
     }
 
     @Override
index 282dff0ec621a50e46ba107d73627ca4152e7aba..556abad7af2b9b80f4623cca42c4411f7191e974 100644 (file)
@@ -748,8 +748,10 @@ public class JMXGeneratorTest extends AbstractGeneratorTest {
                 // available if source level is 5.0
                 if (c.getID() == 1610613329)
                     continue;
                 // available if source level is 5.0
                 if (c.getID() == 1610613329)
                     continue;
+                if (c.getID() == 1610613328) // 'for each' statements are only available if source level is 5.0
+                    continue;
                 fail("Error in generated source code " + file + ":"
                 fail("Error in generated source code " + file + ":"
-                        + c.getSourceLineNumber() + " " + c.toString());
+                        + c.getSourceLineNumber() + " id: " + c.getID() + " message:"  + c.toString());
             }
 
             ASTVisitor visitor = verifiers.get(file.getName());
             }
 
             ASTVisitor visitor = verifiers.get(file.getName());