|
25 | 25 | import org.sonar.plugins.communitydelphi.api.reporting.QuickFix;
|
26 | 26 | import org.sonar.plugins.communitydelphi.api.reporting.QuickFixEdit;
|
27 | 27 | import org.sonar.plugins.communitydelphi.api.symbol.declaration.UnitImportNameDeclaration;
|
| 28 | +import org.sonar.plugins.communitydelphi.api.symbol.declaration.UnitNameDeclaration; |
28 | 29 |
|
29 | 30 | @Rule(key = "FullyQualifiedImport")
|
30 | 31 | public class FullyQualifiedImportCheck extends DelphiCheck {
|
31 | 32 |
|
32 | 33 | @Override
|
33 | 34 | public DelphiCheckContext visit(UnitImportNode unitImportNode, DelphiCheckContext context) {
|
34 |
| - if (!unitImportNode.isResolvedImport()) { |
| 35 | + UnitImportNameDeclaration importDeclaration = unitImportNode.getImportNameDeclaration(); |
| 36 | + UnitNameDeclaration unitDeclaration = importDeclaration.getOriginalDeclaration(); |
| 37 | + |
| 38 | + if (unitDeclaration == null || importDeclaration.isAlias()) { |
35 | 39 | return context;
|
36 | 40 | }
|
37 | 41 |
|
38 |
| - UnitImportNameDeclaration unitImportNameDeclaration = unitImportNode.getImportNameDeclaration(); |
39 |
| - |
40 |
| - String unitFullyQualifiedName = unitImportNameDeclaration.getOriginalDeclaration().getImage(); |
41 |
| - String unitImportName = unitImportNameDeclaration.getImage(); |
| 42 | + String actual = importDeclaration.fullyQualifiedName(); |
| 43 | + String expected = unitDeclaration.fullyQualifiedName(); |
42 | 44 |
|
43 |
| - if (unitImportName.length() != unitFullyQualifiedName.length()) { |
| 45 | + if (!actual.equalsIgnoreCase(expected)) { |
44 | 46 | context
|
45 | 47 | .newIssue()
|
46 | 48 | .onNode(unitImportNode)
|
47 | 49 | .withMessage(
|
48 |
| - "Fully qualify this unit name (found: \"%s\" expected: \"%s\").", |
49 |
| - unitImportName, unitFullyQualifiedName) |
| 50 | + "Fully qualify this unit name (found: \"%s\" expected: \"%s\").", actual, expected) |
50 | 51 | .withQuickFixes(
|
51 | 52 | QuickFix.newFix("Fully qualify unit import")
|
52 |
| - .withEdit( |
53 |
| - QuickFixEdit.replace(unitImportNode.getNameNode(), unitFullyQualifiedName))) |
| 53 | + .withEdit(QuickFixEdit.replace(unitImportNode.getNameNode(), expected))) |
54 | 54 | .report();
|
55 | 55 | }
|
56 | 56 |
|
|
0 commit comments