protected boolean isEnabled(CRaSHPlugin<?> plugin) { Assert.notNull(plugin, "Plugin must not be null"); if (ObjectUtils.isEmpty(this.disabledPlugins)) { return true; } Set<Class<?>> pluginClasses = ClassUtils.getAllInterfacesAsSet(plugin); pluginClasses.add(plugin.getClass()); for (Class<?> pluginClass : pluginClasses) { if (isEnabled(pluginClass)) { return true; } } return false; }