@Override
  public boolean isEntryPoint(@NotNull PsiElement psiElement) {
    Module module = ModuleUtilCore.findModuleForPsiElement(psiElement);
    if (module != null
        && !hasLibraryClass(module, JavaFxCommonNames.JAVAFX_APPLICATION_APPLICATION)) {
      return false;
    }

    if (psiElement instanceof PsiMethod method) {
      final int paramsCount = method.getParameterList().getParametersCount();
      final String methodName = method.getName();
      final PsiClass containingClass = method.getContainingClass();
      if (paramsCount == 1 &&
          PsiTypes.voidType().equals(method.getReturnType()) &&
          "start".equals(methodName)) {
        return InheritanceUtil.isInheritor(containingClass, true, JavaFxCommonNames.JAVAFX_APPLICATION_APPLICATION);
      }
      if (paramsCount == 0 && INITIALIZE_METHOD_NAME.equals(methodName) &&
          method.hasModifierProperty(PsiModifier.PUBLIC) &&
          containingClass != null &&
          JavaFxPsiUtil.isControllerClass(containingClass)) {
        return true;
      }

    }
    else if (psiElement instanceof PsiClass) {
      return InheritanceUtil.isInheritor((PsiClass)psiElement, true, JavaFxCommonNames.JAVAFX_APPLICATION_APPLICATION);
    }
    return false;
  }
@Override
  public boolean isEntryPoint(@NotNull PsiElement psiElement)