private static @NotNull FList<ProviderData> cacheComponentsData(@NotNull MySink sink,
                                                                  @NotNull List<? extends Component> components,
                                                                  @NotNull FList<ProviderData> initial,
                                                                  @NotNull DataManagerImpl dataManager) {
    FList<ProviderData> cachedData = initial;
    long start = System.currentTimeMillis();
    for (Component comp : components) {
      sink.map = null;
      sink.hideEditor = hideEditor(comp);
      Object dataProvider = comp instanceof UiDataProvider ? comp : getDataProviderEx(comp);
      cacheProviderData(sink, dataProvider, dataManager);
      cachedData = sink.map == null ? cachedData : cachedData.prepend(sink.map);
      ourPrevMaps.put(comp, cachedData);
    }
    long time = System.currentTimeMillis() - start;
    if (time > 200) {
      // nothing
    }
    return cachedData;
  }
private static @NotNull FList<ProviderData> cacheComponentsData(@NotNull MySink sink,
                                                                  @NotNull List<? extends Component> components,
                                                                  @NotNull FList<ProviderData> initial,
                                                                  @NotNull DataManagerImpl dataManager)