|
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