Skip to content

Commit d233ec9

Browse files
authored
Merge pull request #802 from bohdan-harniuk/uct-inspections-prioritise-messages
UCT-766: Prioritised messages, code refactoring
2 parents 6e5f940 + a40747e commit d233ec9

39 files changed

+207
-113
lines changed

src/com/magento/idea/magento2uct/execution/GenerateUctReportCommand.java

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,10 @@
3232
import com.magento.idea.magento2uct.inspections.UctProblemsHolder;
3333
import com.magento.idea.magento2uct.packages.SupportedIssue;
3434
import com.magento.idea.magento2uct.settings.UctSettingsService;
35+
import com.magento.idea.magento2uct.util.inspection.FilterDescriptorResultsUtil;
3536
import com.magento.idea.magento2uct.util.inspection.SortDescriptorResultsUtil;
3637
import java.nio.file.Paths;
38+
import java.util.List;
3739
import org.jetbrains.annotations.NotNull;
3840
import org.jetbrains.annotations.Nullable;
3941

@@ -128,32 +130,25 @@ public void execute() {
128130
}
129131
outputUtil.printProblemFile(filename);
130132
}
133+
final List<ProblemDescriptor> problems = SortDescriptorResultsUtil.sort(
134+
FilterDescriptorResultsUtil.filter(fileProblemsHolder)
135+
);
131136

132-
for (final ProblemDescriptor descriptor
133-
: SortDescriptorResultsUtil.sort(
134-
fileProblemsHolder.getResults()
135-
)) {
136-
final Integer code = fileProblemsHolder.getErrorCodeForDescriptor(
137-
descriptor
137+
for (final ProblemDescriptor descriptor : problems) {
138+
final SupportedIssue issue = fileProblemsHolder.getIssue(descriptor);
139+
140+
final String errorMessage = descriptor
141+
.getDescriptionTemplate()
142+
.substring(6)
143+
.trim();
144+
summary.addToSummary(issue.getLevel());
145+
reportBuilder.addIssue(
146+
descriptor.getLineNumber() + 1,
147+
filename,
148+
errorMessage,
149+
issue
138150
);
139-
if (code != null) {
140-
final SupportedIssue issue = SupportedIssue.getByCode(code);
141-
142-
if (issue != null) {
143-
final String errorMessage = descriptor
144-
.getDescriptionTemplate()
145-
.substring(6)
146-
.trim();
147-
summary.addToSummary(issue.getLevel());
148-
reportBuilder.addIssue(
149-
descriptor.getLineNumber() + 1,
150-
filename,
151-
errorMessage,
152-
issue
153-
);
154-
}
155-
outputUtil.printIssue(descriptor, code);
156-
}
151+
outputUtil.printIssue(descriptor, issue.getCode());
157152
}
158153
}
159154
}

src/com/magento/idea/magento2uct/inspections/UctProblemsHolder.java

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,19 @@
99
import com.intellij.codeInspection.ProblemDescriptor;
1010
import com.intellij.codeInspection.ProblemsHolder;
1111
import com.intellij.psi.PsiFile;
12+
import com.magento.idea.magento2uct.packages.SupportedIssue;
1213
import java.lang.reflect.Field;
1314
import java.util.ArrayList;
1415
import java.util.HashMap;
16+
import java.util.InputMismatchException;
1517
import java.util.List;
1618
import java.util.Map;
1719
import org.jetbrains.annotations.NotNull;
18-
import org.jetbrains.annotations.Nullable;
1920

2021
public class UctProblemsHolder extends ProblemsHolder {
2122

22-
private final Map<ProblemDescriptor, Integer> myProblemCodes = new HashMap<>();
23-
private Integer reservedErrorCode;
23+
private final Map<ProblemDescriptor, SupportedIssue> myProblemCodes = new HashMap<>();
24+
private SupportedIssue issue;
2425

2526
/**
2627
* UCT problems holder constructor.
@@ -38,36 +39,42 @@ public UctProblemsHolder(
3839
}
3940

4041
/**
41-
* Set reserved error code.
42+
* Set reserved issue.
4243
*
43-
* @param errorCode int
44+
* @param issue SupportedIssue
4445
*/
45-
public void setReservedErrorCode(final int errorCode) {
46-
reservedErrorCode = errorCode;
46+
public void setIssue(final @NotNull SupportedIssue issue) {
47+
this.issue = issue;
4748
}
4849

4950
/**
50-
* Get issue code by problem descriptor.
51+
* Get issue by problem descriptor.
5152
*
5253
* @param problemDescriptor ProblemDescriptor
5354
*
5455
* @return Integer
5556
*/
56-
public @Nullable Integer getErrorCodeForDescriptor(
57+
public @NotNull SupportedIssue getIssue(
5758
final @NotNull ProblemDescriptor problemDescriptor
5859
) {
5960
return myProblemCodes.get(problemDescriptor);
6061
}
6162

6263
@Override
6364
public void registerProblem(final @NotNull ProblemDescriptor problemDescriptor) {
65+
if (issue == null) {
66+
throw new InputMismatchException(
67+
"For the UCT CLI inspection it is mandatory to set an issue via "
68+
+ "UctProblemsHolder.setIssue method"
69+
);
70+
}
6471
final int problemCount = getMyProblems().size();
6572
super.registerProblem(problemDescriptor);
6673

6774
// if problem has been added successfully
68-
if (problemCount != getMyProblems().size() && reservedErrorCode != null) {
69-
myProblemCodes.put(problemDescriptor, reservedErrorCode);
70-
reservedErrorCode = null;//NOPMD
75+
if (problemCount != getMyProblems().size()) {
76+
myProblemCodes.put(problemDescriptor, issue);
77+
issue = null;//NOPMD
7178
}
7279
}
7380

src/com/magento/idea/magento2uct/inspections/php/api/CalledNonApiMethod.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,7 @@ protected void execute(
3232
final String message = SupportedIssue.CALLED_NON_API_METHOD.getMessage(method.getFQN());
3333

3434
if (problemsHolder instanceof UctProblemsHolder) {
35-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
36-
SupportedIssue.CALLED_NON_API_METHOD.getCode()
37-
);
35+
((UctProblemsHolder) problemsHolder).setIssue(SupportedIssue.CALLED_NON_API_METHOD);
3836
}
3937
problemsHolder.registerProblem(methodReference, message, ProblemHighlightType.WARNING);
4038
}

src/com/magento/idea/magento2uct/inspections/php/api/CalledNonInterfaceMethod.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ protected void execute(
6969
}
7070

7171
if (problemsHolder instanceof UctProblemsHolder) {
72-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
73-
SupportedIssue.CALLED_NON_INTERFACE_METHOD.getCode()
72+
((UctProblemsHolder) problemsHolder).setIssue(
73+
SupportedIssue.CALLED_NON_INTERFACE_METHOD
7474
);
7575
}
7676
problemsHolder.registerProblem(

src/com/magento/idea/magento2uct/inspections/php/api/ExtendedNonApiClass.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ protected void execute(
3535
);
3636

3737
if (problemsHolder instanceof UctProblemsHolder) {
38-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
39-
SupportedIssue.EXTENDED_NON_API_CLASS.getCode()
38+
((UctProblemsHolder) problemsHolder).setIssue(
39+
SupportedIssue.EXTENDED_NON_API_CLASS
4040
);
4141
}
4242

src/com/magento/idea/magento2uct/inspections/php/api/ImplementedNonApiInterface.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ protected void execute(
3333
);
3434

3535
if (problemsHolder instanceof UctProblemsHolder) {
36-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
37-
SupportedIssue.IMPLEMENTED_NON_API_INTERFACE.getCode()
36+
((UctProblemsHolder) problemsHolder).setIssue(
37+
SupportedIssue.IMPLEMENTED_NON_API_INTERFACE
3838
);
3939
}
4040
problemsHolder.registerProblem(reference, message, ProblemHighlightType.WARNING);

src/com/magento/idea/magento2uct/inspections/php/api/ImportedNonApiClass.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ protected void execute(
3131
final String message = SupportedIssue.IMPORTED_NON_API_CLASS.getMessage(use.getFQN());
3232

3333
if (problemsHolder instanceof UctProblemsHolder) {
34-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
35-
SupportedIssue.IMPORTED_NON_API_CLASS.getCode()
34+
((UctProblemsHolder) problemsHolder).setIssue(
35+
SupportedIssue.IMPORTED_NON_API_CLASS
3636
);
3737
}
3838
problemsHolder.registerProblem(use, message, ProblemHighlightType.WARNING);

src/com/magento/idea/magento2uct/inspections/php/api/ImportedNonApiInterface.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ protected void execute(
3131
final String message = SupportedIssue.IMPORTED_NON_API_INTERFACE.getMessage(use.getFQN());
3232

3333
if (problemsHolder instanceof UctProblemsHolder) {
34-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
35-
SupportedIssue.IMPORTED_NON_API_INTERFACE.getCode()
34+
((UctProblemsHolder) problemsHolder).setIssue(
35+
SupportedIssue.IMPORTED_NON_API_INTERFACE
3636
);
3737
}
3838
problemsHolder.registerProblem(use, message, ProblemHighlightType.WARNING);

src/com/magento/idea/magento2uct/inspections/php/api/InheritedNonApiInterface.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ protected void execute(
3131
final String message = SupportedIssue.INHERITED_NON_API_INTERFACE.getMessage(fqn);
3232

3333
if (problemsHolder instanceof UctProblemsHolder) {
34-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
35-
SupportedIssue.INHERITED_NON_API_INTERFACE.getCode()
34+
((UctProblemsHolder) problemsHolder).setIssue(
35+
SupportedIssue.INHERITED_NON_API_INTERFACE
3636
);
3737
}
3838
problemsHolder.registerProblem(reference, message, ProblemHighlightType.WARNING);

src/com/magento/idea/magento2uct/inspections/php/api/OverriddenNonApiConstant.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ protected void execute(
3636
);
3737

3838
if (problemsHolder instanceof UctProblemsHolder) {
39-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
40-
SupportedIssue.OVERRIDDEN_NON_API_CONSTANT.getCode()
39+
((UctProblemsHolder) problemsHolder).setIssue(
40+
SupportedIssue.OVERRIDDEN_NON_API_CONSTANT
4141
);
4242
}
4343
problemsHolder.registerProblem(field, message, ProblemHighlightType.WARNING);

src/com/magento/idea/magento2uct/inspections/php/api/OverriddenNonApiProperty.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ protected void execute(
3636
);
3737

3838
if (problemsHolder instanceof UctProblemsHolder) {
39-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
40-
SupportedIssue.OVERRIDDEN_NON_API_PROPERTY.getCode()
39+
((UctProblemsHolder) problemsHolder).setIssue(
40+
SupportedIssue.OVERRIDDEN_NON_API_PROPERTY
4141
);
4242
}
4343
problemsHolder.registerProblem(property, message, ProblemHighlightType.WARNING);

src/com/magento/idea/magento2uct/inspections/php/api/PossibleDependencyOnImplDetails.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ protected void execute(
3434
if (VersionStateManager.getInstance(project).isApi(implementedInterface.getFQN())) {
3535

3636
if (problemsHolder instanceof UctProblemsHolder) {
37-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
38-
SupportedIssue.POSSIBLE_DEPENDENCY_ON_IMPL_DETAILS.getCode()
37+
((UctProblemsHolder) problemsHolder).setIssue(
38+
SupportedIssue.POSSIBLE_DEPENDENCY_ON_IMPL_DETAILS
3939
);
4040
}
4141

src/com/magento/idea/magento2uct/inspections/php/api/UsedNonApiConstant.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ protected void execute(
4646
);
4747

4848
if (problemsHolder instanceof UctProblemsHolder) {
49-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
50-
SupportedIssue.USED_NON_API_CONSTANT.getCode()
49+
((UctProblemsHolder) problemsHolder).setIssue(
50+
SupportedIssue.USED_NON_API_CONSTANT
5151
);
5252
}
5353
problemsHolder.registerProblem(constantReference, message, ProblemHighlightType.WARNING);

src/com/magento/idea/magento2uct/inspections/php/api/UsedNonApiProperty.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,7 @@ protected void execute(
3636
);
3737

3838
if (problemsHolder instanceof UctProblemsHolder) {
39-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
40-
SupportedIssue.USED_NON_API_PROPERTY.getCode()
41-
);
39+
((UctProblemsHolder) problemsHolder).setIssue(SupportedIssue.USED_NON_API_PROPERTY);
4240
}
4341
problemsHolder.registerProblem(propertyReference, message, ProblemHighlightType.WARNING);
4442
}

src/com/magento/idea/magento2uct/inspections/php/api/UsedNonApiType.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,7 @@ protected void execute(
3232
final String message = SupportedIssue.USED_NON_API_TYPE.getMessage(phpClass.getFQN());
3333

3434
if (problemsHolder instanceof UctProblemsHolder) {
35-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
36-
SupportedIssue.USED_NON_API_TYPE.getCode()
37-
);
35+
((UctProblemsHolder) problemsHolder).setIssue(SupportedIssue.USED_NON_API_TYPE);
3836
}
3937
problemsHolder.registerProblem(reference, message, ProblemHighlightType.WARNING);
4038
}

src/com/magento/idea/magento2uct/inspections/php/deprecation/CallingDeprecatedMethod.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ protected void execute(
3030

3131
if (VersionStateManager.getInstance(project).isDeprecated(type)) {
3232
if (problemsHolder instanceof UctProblemsHolder) {
33-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
34-
SupportedIssue.CALLING_DEPRECATED_METHOD.getCode()
33+
((UctProblemsHolder) problemsHolder).setIssue(
34+
SupportedIssue.CALLING_DEPRECATED_METHOD
3535
);
3636
}
3737
final String deprecatedIn = VersionStateManager.getInstance(project)

src/com/magento/idea/magento2uct/inspections/php/deprecation/ExtendingDeprecatedClass.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ protected void execute(
3838
for (final ClassReference classReference : childExtends.getReferenceElements()) {
3939
if (parentFqn.equals(classReference.getFQN())) {
4040
if (problemsHolder instanceof UctProblemsHolder) {
41-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
42-
SupportedIssue.EXTENDING_DEPRECATED_CLASS.getCode()
41+
((UctProblemsHolder) problemsHolder).setIssue(
42+
SupportedIssue.EXTENDING_DEPRECATED_CLASS
4343
);
4444
}
4545
problemsHolder.registerProblem(

src/com/magento/idea/magento2uct/inspections/php/deprecation/ImplementedDeprecatedInterface.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ protected void execute(
2727
) {
2828
if (VersionStateManager.getInstance(project).isDeprecated(interfaceFqn)) {
2929
if (problemsHolder instanceof UctProblemsHolder) {
30-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
31-
SupportedIssue.IMPLEMENTED_DEPRECATED_INTERFACE.getCode()
30+
((UctProblemsHolder) problemsHolder).setIssue(
31+
SupportedIssue.IMPLEMENTED_DEPRECATED_INTERFACE
3232
);
3333
}
3434
final String deprecatedIn = VersionStateManager.getInstance(project)

src/com/magento/idea/magento2uct/inspections/php/deprecation/ImportingDeprecatedClass.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ protected void execute(
3030
return;
3131
}
3232
if (problemsHolder instanceof UctProblemsHolder) {
33-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
34-
SupportedIssue.IMPORTING_DEPRECATED_CLASS.getCode()
33+
((UctProblemsHolder) problemsHolder).setIssue(
34+
SupportedIssue.IMPORTING_DEPRECATED_CLASS
3535
);
3636
}
3737
final String deprecatedIn = VersionStateManager.getInstance(project)

src/com/magento/idea/magento2uct/inspections/php/deprecation/ImportingDeprecatedInterface.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ protected void execute(
3030
return;
3131
}
3232
if (problemsHolder instanceof UctProblemsHolder) {
33-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
34-
SupportedIssue.IMPORTING_DEPRECATED_INTERFACE.getCode()
33+
((UctProblemsHolder) problemsHolder).setIssue(
34+
SupportedIssue.IMPORTING_DEPRECATED_INTERFACE
3535
);
3636
}
3737
final String deprecatedIn = VersionStateManager.getInstance(project)

src/com/magento/idea/magento2uct/inspections/php/deprecation/InheritedDeprecatedInterface.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ protected void execute(
2727
) {
2828
if (VersionStateManager.getInstance(project).isDeprecated(interfaceFqn)) {
2929
if (problemsHolder instanceof UctProblemsHolder) {
30-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
31-
SupportedIssue.INHERITED_DEPRECATED_INTERFACE.getCode()
30+
((UctProblemsHolder) problemsHolder).setIssue(
31+
SupportedIssue.INHERITED_DEPRECATED_INTERFACE
3232
);
3333
}
3434
final String deprecatedIn = VersionStateManager.getInstance(project)

src/com/magento/idea/magento2uct/inspections/php/deprecation/OverridingDeprecatedConstant.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ protected void execute(
3333
}
3434

3535
if (problemsHolder instanceof UctProblemsHolder) {
36-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
37-
SupportedIssue.OVERRIDING_DEPRECATED_CONSTANT.getCode()
36+
((UctProblemsHolder) problemsHolder).setIssue(
37+
SupportedIssue.OVERRIDING_DEPRECATED_CONSTANT
3838
);
3939
}
4040
final String deprecatedIn = VersionStateManager.getInstance(project)

src/com/magento/idea/magento2uct/inspections/php/deprecation/OverridingDeprecatedProperty.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ protected void execute(
3333
}
3434

3535
if (problemsHolder instanceof UctProblemsHolder) {
36-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
37-
SupportedIssue.OVERRIDING_DEPRECATED_PROPERTY.getCode()
36+
((UctProblemsHolder) problemsHolder).setIssue(
37+
SupportedIssue.OVERRIDING_DEPRECATED_PROPERTY
3838
);
3939
}
4040
final String deprecatedIn = VersionStateManager.getInstance(project)

src/com/magento/idea/magento2uct/inspections/php/deprecation/UsingDeprecatedClass.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ protected void execute(
3131
return;
3232
}
3333
if (problemsHolder instanceof UctProblemsHolder) {
34-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
35-
SupportedIssue.USING_DEPRECATED_CLASS.getCode()
34+
((UctProblemsHolder) problemsHolder).setIssue(
35+
SupportedIssue.USING_DEPRECATED_CLASS
3636
);
3737
}
3838
final String deprecatedIn = VersionStateManager.getInstance(project)

src/com/magento/idea/magento2uct/inspections/php/deprecation/UsingDeprecatedConstant.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ protected void execute(
5151
}
5252

5353
if (problemsHolder instanceof UctProblemsHolder) {
54-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
55-
SupportedIssue.USING_DEPRECATED_CONSTANT.getCode()
54+
((UctProblemsHolder) problemsHolder).setIssue(
55+
SupportedIssue.USING_DEPRECATED_CONSTANT
5656
);
5757
}
5858
final String deprecatedIn = VersionStateManager.getInstance(project)

src/com/magento/idea/magento2uct/inspections/php/deprecation/UsingDeprecatedInterface.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ protected void execute(
3232
}
3333

3434
if (problemsHolder instanceof UctProblemsHolder) {
35-
((UctProblemsHolder) problemsHolder).setReservedErrorCode(
36-
SupportedIssue.USING_DEPRECATED_INTERFACE.getCode()
35+
((UctProblemsHolder) problemsHolder).setIssue(
36+
SupportedIssue.USING_DEPRECATED_INTERFACE
3737
);
3838
}
3939
final String deprecatedIn = VersionStateManager.getInstance(project)

0 commit comments

Comments
 (0)