FList<ProviderData> (@NotNull List<? extends Component> components, @NotNull FList<ProviderData> initial, @NotNull DataManagerImpl dataManager, DataKey<?> @NotNull [] keys) { FList<ProviderData> result = initial; long start = System.currentTimeMillis(); for (Component comp : components) { DataProvider dataProvider = getDataProviderEx(comp); if (dataProvider == null && hideEditor(comp)) dataProvider = dataId -> null; if (dataProvider == null) continue; ProviderData cachedData = cacheProviderData(dataProvider, comp, dataManager, keys); result = cachedData == null ? result : result.prepend(cachedData); ourPrevMaps.put(comp, result); } long time = System.currentTimeMillis() - start; if (time > 200) { // nothing } return result; }