private static @Nullable PsiType getDefaultPropertyExpectedType(@Nullable PsiClass aClass) {
    if (aClass == null) return null;
    return CachedValuesManager.getCachedValue(aClass, () -> {
      final PsiAnnotation annotation =
        AnnotationUtil.findAnnotationInHierarchy(aClass, Collections.singleton(JavaFxCommonNames.JAVAFX_BEANS_DEFAULT_PROPERTY));
      if (annotation != null) {
        final PsiAnnotationMemberValue memberValue = annotation.findAttributeValue(null);
        if (memberValue != null) {
          final String propertyName = StringUtil.unquoteString(memberValue.getText());
          final PsiMethod getter = findPropertyGetter(aClass, propertyName);
          if (getter != null) {
            final PsiType propertyType = eraseFreeTypeParameters(getter.getReturnType(), getter);
            return CachedValueProvider.Result.create(propertyType, PsiModificationTracker.MODIFICATION_COUNT);
          }
        }
      }
      return CachedValueProvider.Result.create(null, PsiModificationTracker.MODIFICATION_COUNT);
    });
  }
private static @Nullable PsiType getDefaultPropertyExpectedType(@Nullable PsiClass aClass)