constructor reference: don't ignore constructor parameters during method reference...
[idea/community.git] / java / java-impl / src / com / intellij / codeInsight / daemon / impl / quickfix / CreateConstructorFromThisFix.java
1 // Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2
3 /*
4  * @author ven
5  */
6 package com.intellij.codeInsight.daemon.impl.quickfix;
7
8 import com.intellij.codeInsight.daemon.QuickFixBundle;
9 import com.intellij.psi.PsiClass;
10 import com.intellij.psi.PsiElement;
11 import com.intellij.psi.PsiMethodCallExpression;
12 import com.intellij.psi.PsiTypeParameter;
13 import com.intellij.psi.util.PsiTreeUtil;
14 import org.jetbrains.annotations.ApiStatus.ScheduledForRemoval;
15 import org.jetbrains.annotations.NotNull;
16
17 import java.util.Collections;
18 import java.util.List;
19
20 @Deprecated
21 @ScheduledForRemoval(inVersion = "2019.3")
22 public class CreateConstructorFromThisFix extends CreateConstructorFromThisOrSuperFix {
23
24   public CreateConstructorFromThisFix(@NotNull PsiMethodCallExpression methodCall) {
25     super(methodCall);
26   }
27
28   @Override
29   protected String getSyntheticMethodName() {
30     return "this";
31   }
32
33   @Override
34   @NotNull
35   protected List<PsiClass> getTargetClasses(PsiElement element) {
36     PsiElement e = element;
37     do {
38       e = PsiTreeUtil.getParentOfType(e, PsiClass.class);
39     } while (e instanceof PsiTypeParameter);
40     if (e != null && e.isValid() && canModify(e)) {
41       return Collections.singletonList((PsiClass)e);
42     }
43     else {
44       return Collections.emptyList();
45     }
46   }
47
48   @Override
49   @NotNull
50   public String getFamilyName() {
51     return QuickFixBundle.message("create.constructor.from.this.call.family");
52   }
53 }