@Override
  public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException {
    PsiType type = getTypeOfUnfilledParameter(editor, element);
    if (type != null) {
      new IntroduceEmptyVariableHandlerImpl().invoke(editor, element.getContainingFile(), type);
      return;
    }

    final PsiExpression expression = detectExpressionStatement(element);
    if (expression == null) return;
    RefactoringSupportProvider supportProvider = LanguageRefactoringSupport.INSTANCE.forLanguage(JavaLanguage.INSTANCE);
    JavaIntroduceVariableHandlerBase handler = (JavaIntroduceVariableHandlerBase)supportProvider.getIntroduceVariableHandler();
    assert handler != null;
    handler.invoke(project, editor, expression);
  }
@Override
  public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element)