Skip to content

Commit 655538e

Browse files
Fix added for the incorrect code found by code inspection
1 parent 59c7b92 commit 655538e

File tree

2 files changed

+35
-2
lines changed

2 files changed

+35
-2
lines changed

src/com/magento/idea/magento2plugin/inspections/php/GraphQlResolverInspection.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import com.jetbrains.php.lang.inspections.PhpInspection;
1313
import com.jetbrains.php.lang.psi.elements.PhpClass;
1414
import com.jetbrains.php.lang.psi.visitors.PhpElementVisitor;
15+
import com.magento.idea.magento2plugin.inspections.php.fix.PhpImplementResolverClassQuickFix;
1516
import com.magento.idea.magento2plugin.util.magento.graphql.GraphQlUsagesCollector;
1617
import com.magento.idea.magento2plugin.util.magento.graphql.GraphQlUtil;
1718
import org.jetbrains.annotations.NotNull;
@@ -20,6 +21,8 @@
2021

2122
public class GraphQlResolverInspection extends PhpInspection {
2223

24+
public static final String GraphQlResolverProblemDescription = "Class must implements \\Magento\\Framework\\GraphQl\\Query\\ResolverInterface";
25+
2326
@NotNull
2427
@Override
2528
public PsiElementVisitor buildVisitor(@NotNull ProblemsHolder problemsHolder, boolean b) {
@@ -33,8 +36,9 @@ public void visitPhpClass(PhpClass resolverClass) {
3336
PsiElement currentClassNameIdentifier = resolverClass.getNameIdentifier();
3437
assert currentClassNameIdentifier != null;
3538
problemsHolder.registerProblem(currentClassNameIdentifier,
36-
"Must implements Magento\\Framework\\GraphQl\\Query\\ResolverInterface",
37-
ProblemHighlightType.ERROR);
39+
GraphQlResolverProblemDescription,
40+
ProblemHighlightType.ERROR,
41+
new PhpImplementResolverClassQuickFix());
3842
}
3943
}
4044
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
package com.magento.idea.magento2plugin.inspections.php.fix;
7+
8+
import com.intellij.codeInspection.LocalQuickFix;
9+
import com.intellij.codeInspection.ProblemDescriptor;
10+
import com.intellij.openapi.project.Project;
11+
import com.intellij.psi.PsiElement;
12+
import com.jetbrains.php.lang.psi.PhpPsiElementFactory;
13+
import com.jetbrains.php.lang.psi.elements.PhpClass;
14+
import org.jetbrains.annotations.NotNull;
15+
16+
public class PhpImplementResolverClassQuickFix implements LocalQuickFix {
17+
@NotNull
18+
@Override
19+
public String getFamilyName() {
20+
return "Implements Resolver interface";
21+
}
22+
23+
@Override
24+
public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor descriptor) {
25+
PsiElement correctInterface = PhpPsiElementFactory.createImplementsList(project, "\\Magento\\Framework\\GraphQl\\Query\\ResolverInterface");
26+
PhpClass GraphQlResolverclass = (PhpClass) descriptor.getPsiElement().getParent();
27+
GraphQlResolverclass.getImplementsList().replace(correctInterface);
28+
}
29+
}

0 commit comments

Comments
 (0)