Author: jm
Date: 2011-10-12 07:39:33 -0700 (Wed, 12 Oct 2011)
New Revision: 27139

Modified:
   
core3/api/trunk/service-api/src/main/java/org/cytoscape/service/util/internal/RegisterUtil.java
Log:
Fixed bug where superinterface hierarchy is ignored by getAllInterfaces

Modified: 
core3/api/trunk/service-api/src/main/java/org/cytoscape/service/util/internal/RegisterUtil.java
===================================================================
--- 
core3/api/trunk/service-api/src/main/java/org/cytoscape/service/util/internal/RegisterUtil.java
     2011-10-12 03:51:49 UTC (rev 27138)
+++ 
core3/api/trunk/service-api/src/main/java/org/cytoscape/service/util/internal/RegisterUtil.java
     2011-10-12 14:39:33 UTC (rev 27139)
@@ -36,18 +36,10 @@
 package org.cytoscape.service.util.internal;
 
 
-import java.util.Map;
-import java.util.HashMap;
 import java.util.List;
 import java.util.ArrayList;
-import java.util.Properties;
-import org.osgi.framework.BundleContext; 
-import org.osgi.framework.BundleActivator; 
-import org.osgi.framework.ServiceRegistration; 
-import org.osgi.framework.ServiceReference; 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.cytoscape.service.util.internal.CyServiceListener;
 
 /**
  * Various utilities for registering services. 
@@ -58,14 +50,19 @@
 
        public static List<Class<?>> getAllInterfaces(Class<?> clazz) {
                List<Class<?>> interfaces = new ArrayList<Class<?>>();
-               for ( Class<?> c : clazz.getInterfaces() )
-                       interfaces.add(c);
+               addAllInterfaces(interfaces, clazz);
+               return interfaces;
+       }
+       
+       static void addAllInterfaces(List<Class<?>> list, Class<?> clazz) {
+               for ( Class<?> c : clazz.getInterfaces() ) {
+                       list.add(c);
+                       addAllInterfaces(list, c);
+               }
 
                // recurse into superclass
                Class<?> superClass = clazz.getSuperclass();
                if ( superClass != null && superClass != Object.class )
-                       interfaces.addAll( getAllInterfaces( superClass ) );
-
-               return interfaces;
+                       addAllInterfaces(list, superClass);
        }
 }

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to