public synchronized void remove(@Nullable String groupName,
                                  @NotNull NotificationSource notificationSource,
                                  @NotNull ProjectSystemId projectSystemId) {
    Map<String, Map<NotificationSource, Object2IntOpenHashMap<NotificationCategory>>> groupMap =
      map.computeIfAbsent(projectSystemId, __ -> new HashMap<>());
    if (groupName == null) {
      for (Map<NotificationSource, Object2IntOpenHashMap<NotificationCategory>> sourceMap : groupMap.values()) {
        sourceMap.remove(notificationSource);
      }
    }
    else {
      Object2IntMap<NotificationCategory> counter = groupMap.computeIfAbsent(groupName, __ -> new HashMap<>())
        .computeIfAbsent(notificationSource, __ -> new Object2IntOpenHashMap<>());
      counter.clear();
    }
  }
public synchronized void remove(@Nullable String groupName,
                                  @NotNull NotificationSource notificationSource,
                                  @NotNull ProjectSystemId projectSystemId)