@Override public Block displayFilter(NotificationFilter filter, NotificationFilterPreference preference) throws NotificationException { /** * Try to find a {@link NotificationFilterDisplayer} that corresponds to the given filter. * If no renderer is found, fallback on the default one. */ try { List<NotificationFilterDisplayer> renderers = componentManager.getInstanceList(NotificationFilterDisplayer.class); for (NotificationFilterDisplayer renderer : renderers) { if (renderer.getSupportedFilters().contains(filter.getName())) { return renderer.display(filter, preference); } } return defaultNotificationFilterDisplayer.display(filter, preference); } catch (ComponentLookupException e) { throw new NotificationException(String.format( "Unable get a list of NotificationFilterDisplayer for filter [%s].", filter), e); } } }