ChangeSignatureRefactoring (PsiMethod method, boolean generateDelegate, @Nullable String newVisibility, String newName, PsiType newReturnType, ParameterInfo @NotNull [] parameterInfo, ThrownExceptionInfo[] thrownExceptions, Set<PsiMethod> propagateParametersMethods, Set<PsiMethod> propagateExceptionsMethods, Consumer<? super List<ParameterInfo>> callback) { JavaChangeInfo changeInfo = JavaChangeInfoImpl.generateChangeInfo(method, generateDelegate, true, newVisibility, newName, newReturnType != null ? CanonicalTypes.createTypeWrapper(newReturnType) : null, (ParameterInfoImpl[])parameterInfo, thrownExceptions, propagateParametersMethods, propagateExceptionsMethods); return new ChangeSignatureRefactoringImpl(new ChangeSignatureProcessor(myProject, changeInfo) { @Override protected void performRefactoring(UsageInfo @NotNull [] usages) { CommandProcessor.getInstance().setCurrentCommandName(getCommandName()); super.performRefactoring(usages); if (callback != null) { callback.consume(Arrays.asList(parameterInfo)); } } }); }