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.