/** * Returns the set of interfaces implemented by the given class and its * ancestors or a blank set if none */ private static Set<Class<?>> getAllInterfaces(Class<?> clazz) { Set<Class<?>> implemented = new HashSet<Class<?>>(); getAllInterfaces(clazz, implemented); implemented.remove(LifeCycleListener.class); return implemented; }
/** * Returns the set of interfaces implemented by the given class and its * ancestors or a blank set if none */ private static Set<Class<?>> getAllInterfaces(Class<?> clazz) { Set<Class<?>> implemented = new HashSet<Class<?>>(); getAllInterfaces(clazz, implemented); implemented.remove(LifeCycleListener.class); return implemented; }
private static void getAllInterfaces(Class<?> clazz, Set<Class<?>> implemented) { Class<?>[] interfaces = clazz.getInterfaces(); for (Class<?> interfaze : interfaces) { if (Modifier.isPublic(interfaze.getModifiers())) { implemented.add(interfaze); } } Class<?> superClass = clazz.getSuperclass(); // Object has no superclass so check for null if (superClass != null && !superClass.equals(Object.class)) { getAllInterfaces(superClass, implemented); } }
private static void getAllInterfaces(Class<?> clazz, Set<Class<?>> implemented) { Class<?>[] interfaces = clazz.getInterfaces(); for (Class<?> interfaze : interfaces) { if (Modifier.isPublic(interfaze.getModifiers())) { implemented.add(interfaze); } } Class<?> superClass = clazz.getSuperclass(); // Object has no superclass so check for null if (superClass != null && !superClass.equals(Object.class)) { getAllInterfaces(superClass, implemented); } }
public void addUtility(Object key, Object utility) { if (utility == null) { throw new IllegalArgumentException("Cannot register null as a Service"); } if (utility instanceof LifeCycleListener) { ((LifeCycleListener)utility).start(); } if (key == null) { Class<?> cls = utility.getClass(); Set<Class<?>> interfaces = getAllInterfaces(cls); for (Class<?> i : interfaces) { utilities.put(i, utility); } if (interfaces.isEmpty() || isConcreteClass(cls)) { utilities.put(cls, utility); } } else { utilities.put(key, utility); } }
public void addUtility(Object key, Object utility) { if (utility == null) { throw new IllegalArgumentException("Cannot register null as a Service"); } if (utility instanceof LifeCycleListener) { ((LifeCycleListener)utility).start(); } if (key == null) { Class<?> cls = utility.getClass(); Set<Class<?>> interfaces = getAllInterfaces(cls); for (Class<?> i : interfaces) { utilities.put(i, utility); } if (interfaces.isEmpty() || isConcreteClass(cls)) { utilities.put(cls, utility); } } else { utilities.put(key, utility); } }