@Override public Map<String, Boolean> getToggeableFilterActivations(DocumentReference user) throws NotificationException { XWikiContext context = contextProvider.get(); XWiki xwiki = context.getWiki(); final DocumentReference notificationPreferencesScopeClass = TOGGLEABLE_FILTER_PREFERENCE_CLASS.setWikiReference(user.getWikiReference()); Map<String, Boolean> filterStatus = new HashMap<>(); try { XWikiDocument doc = xwiki.getDocument(user, context); for (NotificationFilter filter : componentManager.<NotificationFilter>getInstanceList( NotificationFilter.class)) { if (filter instanceof ToggleableNotificationFilter) { ToggleableNotificationFilter toggleableFilter = (ToggleableNotificationFilter) filter; boolean status = toggleableFilter.isEnabledByDefault(); BaseObject obj = doc.getXObject(notificationPreferencesScopeClass, FIELD_FILTER_NAME, filter.getName()); if (obj != null) { status = obj.getIntValue(FIELD_IS_ENABLED, status ? 1 : 0) != 0; } filterStatus.put(filter.getName(), status); } } } catch (Exception e) { throw new NotificationException( String.format("Failed to get the toggleable filters preferences for the user [%s].", user), e); } return filterStatus; }