T (@NotNull Language l) { T cached = l.getUserData(myCacheKey); if (cached != null) return cached; T result = findForLanguage(l); if (result == null) return null; result = l.putUserDataIfAbsent(myCacheKey, result); return result; }