private static @Nullable ObservableType createObservableList(@NotNull PsiType type, @NotNull Project project) {
      final PsiClassType.ClassResolveResult resolveResult = PsiUtil.resolveGenericsClassInType(type);
      final PsiClass fieldClass = resolveResult.getElement();
      if (fieldClass != null) {
        final PsiClass listClass = JavaPsiFacade.getInstance(project)
          .findClass(CommonClassNames.JAVA_UTIL_LIST, GlobalSearchScope.allScope(project));
        if (listClass != null) {
          final PsiSubstitutor substitutor =
            TypeConversionUtil.getClassSubstitutor(listClass, fieldClass, resolveResult.getSubstitutor());
          if (substitutor != null) {
            final PsiType itemType = substitutor.substitute(listClass.getTypeParameters()[0]);
            if (itemType != null) {
              return new ObservableList(type, itemType, project);
            }
          }
        }
      }
      return null;
    }
private static @Nullable ObservableType createObservableList(@NotNull PsiType type, @NotNull Project project)