public @NotNull List<T> allForLanguage(@NotNull Language language) {
    List<T> cached = language.getUserData(allCacheKey);
    if (cached != null) {
      return cached;
    }

    PersistentList<T> result = collectAllForLanguage(language);
    return language.putUserDataIfAbsent(allCacheKey, result);
  }
public @NotNull List<T> allForLanguage(@NotNull Language language)