String (@NotNull PsiAnonymousClass cls) { final PsiClass upper = PsiTreeUtil.getParentOfType(cls, PsiClass.class); if (upper == null) { return null; } ParameterizedCachedValue<Map<PsiAnonymousClass, String>, PsiClass> value = upper.getUserData(ANONYMOUS_CLASS_NAME); if (value == null) { value = CachedValuesManager.getManager(upper.getProject()).createParameterizedCachedValue(ANON_CLASS_PROVIDER, false); upper.putUserData(ANONYMOUS_CLASS_NAME, value); } return value.getValue(upper).get(cls); }