diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties
index 5ff4c819a984..c167fa63c33e 100644
--- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties
+++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties
@@ -959,8 +959,8 @@ unnecessary.this.problem.descriptor=#ref is unnecessary in this con
unnecessary.block.statement.problem.descriptor=Braces around this statement are unnecessary #loc
unnecessary.continue.problem.descriptor=#ref is unnecessary as the last statement in a loop #loc
unnecessary.semicolon.problem.descriptor=Unnecessary semicolon #ref #loc
-unnecessary.fully.qualified.name.problem.descriptor1=Fully qualified name #ref is unnecessary, and can be replaced with an import #loc
-unnecessary.fully.qualified.name.problem.descriptor2=Fully qualified name #ref is unnecessary, and the qualification can be removed #loc
+unnecessary.fully.qualified.name.problem.descriptor1=Qualifier #ref is unnecessary, and can be replaced with an import #loc
+unnecessary.fully.qualified.name.problem.descriptor2=Qualifier #ref is unnecessary and can be removed #loc
unnecessary.qualifier.for.this.problem.descriptor=Qualifier #ref on 'this' is unnecessary in this context #loc
unused.label.problem.descriptor=Unused label #ref #loc
redundant.field.initialization.problem.descriptor=Field initialization to #ref is redundant #loc
@@ -1368,8 +1368,7 @@ redundant.implements.remove.quickfix=Remove redundant interface declaration
unnecessary.constructor.remove.quickfix=Remove redundant constructor
unnecessary.fully.qualified.name.replace.quickfix=Replace with import
unnecessary.fully.qualified.name.remove.quickfix=Remove qualification
-unnecessary.fully.qualified.name.status.bar.escape.highlighting.message1=1 fully qualified name replaced with import (press Escape to remove highlighting)
-unnecessary.fully.qualified.name.status.bar.escape.highlighting.message2={0} fully qualified names replaced with import (press Escape to remove highlighting)
+unnecessary.fully.qualified.name.status.bar.escape.highlighting.message={0} fully qualified {0, choice, 1#name|2#names} replaced with import (press Escape to remove highlighting)
unnecessary.parentheses.remove.quickfix=Remove unnecessary parentheses
unnecessary.qualifier.for.this.remove.quickfix=Remove unnecessary qualifier
unnecessary.semicolon.remove.quickfix=Remove unnecessary semicolon
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryFullyQualifiedNameInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryFullyQualifiedNameInspection.java
index 9961a7103f18..0db4c4a75592 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryFullyQualifiedNameInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/style/UnnecessaryFullyQualifiedNameInspection.java
@@ -17,6 +17,7 @@ package com.siyeh.ig.style;
import com.intellij.codeInspection.CleanupLocalInspectionTool;
import com.intellij.codeInspection.ProblemDescriptor;
+import com.intellij.codeInspection.ProblemHighlightType;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.wm.StatusBar;
@@ -88,17 +89,14 @@ public class UnnecessaryFullyQualifiedNameInspection extends BaseInspection impl
@Override
@NotNull
public String getName() {
- if (inSameFile) {
- return InspectionGadgetsBundle.message("unnecessary.fully.qualified.name.remove.quickfix");
- }
- else {
- return InspectionGadgetsBundle.message("unnecessary.fully.qualified.name.replace.quickfix");
- }
+ return inSameFile
+ ? InspectionGadgetsBundle.message("unnecessary.fully.qualified.name.remove.quickfix")
+ : InspectionGadgetsBundle.message("unnecessary.fully.qualified.name.replace.quickfix");
}
@Override
public void doFix(Project project, ProblemDescriptor descriptor) throws IncorrectOperationException {
- final PsiJavaCodeReferenceElement referenceElement = (PsiJavaCodeReferenceElement)descriptor.getPsiElement();
+ final PsiJavaCodeReferenceElement referenceElement = (PsiJavaCodeReferenceElement)descriptor.getPsiElement().getParent();
final PsiFile file = referenceElement.getContainingFile();
final PsiElement target = referenceElement.resolve();
if (!(target instanceof PsiClass)) {
@@ -122,25 +120,19 @@ public class UnnecessaryFullyQualifiedNameInspection extends BaseInspection impl
if (statusBar == null) {
return;
}
- if (elementCount == 1) {
- statusBar.setInfo(InspectionGadgetsBundle.message("unnecessary.fully.qualified.name.status.bar.escape.highlighting.message1"));
- }
- else {
- statusBar.setInfo(InspectionGadgetsBundle.message("unnecessary.fully.qualified.name.status.bar.escape.highlighting.message2",
- Integer.valueOf(elementCount - 1)));
- }
+ statusBar.setInfo(InspectionGadgetsBundle.message("unnecessary.fully.qualified.name.status.bar.escape.highlighting.message",
+ elementCount));
}
private static class QualificationRemover extends JavaRecursiveElementVisitor {
-
private final String fullyQualifiedText;
- private final List shortenedElements = new ArrayList();
+ private final List shortenedElements = new ArrayList();
- QualificationRemover(String fullyQualifiedText) {
+ private QualificationRemover(String fullyQualifiedText) {
this.fullyQualifiedText = fullyQualifiedText;
}
- public Collection getShortenedElements() {
+ private Collection getShortenedElements() {
return Collections.unmodifiableCollection(shortenedElements);
}
@@ -224,7 +216,7 @@ public class UnnecessaryFullyQualifiedNameInspection extends BaseInspection impl
if (!(qualifierTarget instanceof PsiPackage)) {
return;
}
- final List references = new ArrayList(2);
+ List references = new ArrayList(2);
references.add(reference);
if (styleSettings.INSERT_INNER_CLASS_IMPORTS) {
collectInnerClassNames(reference, references);
@@ -244,7 +236,7 @@ public class UnnecessaryFullyQualifiedNameInspection extends BaseInspection impl
continue;
}
final boolean inSameFile = aClass.getContainingFile() == containingFile;
- registerError(aReference, Boolean.valueOf(inSameFile));
+ registerError(aReference.getQualifier(), ProblemHighlightType.LIKE_UNUSED_SYMBOL, inSameFile);
break;
}
}
diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_fqn_javadoc_fully_qualify_if_not_imported/expected.xml b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_fqn_javadoc_fully_qualify_if_not_imported/expected.xml
index 05706352d657..a29c5c897b0e 100644
--- a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_fqn_javadoc_fully_qualify_if_not_imported/expected.xml
+++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_fqn_javadoc_fully_qualify_if_not_imported/expected.xml
@@ -5,7 +5,7 @@
DoubleQualify.java
4
Unnecessary fully qualified name
- Fully qualified name <code>java.util.HashMap</code> is unnecessary, and can be replaced with an import #loc
+ Qualifier <code>java.util</code> is unnecessary, and can be replaced with an import #loc
\ No newline at end of file
diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_fully_qualified_name/expected.xml b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_fully_qualified_name/expected.xml
index db2ec3219233..1e2e576ef57f 100644
--- a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_fully_qualified_name/expected.xml
+++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessary_fully_qualified_name/expected.xml
@@ -5,49 +5,49 @@
UnnecessaryFullyQualifiedName.java
14
Unnecessary fully qualified name
- Fully qualified name <code>java.util.List</code> is unnecessary, and can be replaced with an import #loc
+ Qualifier <code>java.util</code> is unnecessary, and can be replaced with an import #loc
UnnecessaryFullyQualifiedName.java
15
Unnecessary fully qualified name
- Fully qualified name <code>java.util.Map</code> is unnecessary, and can be replaced with an import #loc
+ Qualifier <code>java.util</code> is unnecessary, and can be replaced with an import #loc
UnnecessaryFullyQualifiedName.java
17
Unnecessary fully qualified name
- Fully qualified name <code>java.lang.System</code> is unnecessary, and can be replaced with an import #loc
+ Qualifier <code>java.lang</code> is unnecessary, and can be replaced with an import #loc
UnnecessaryFullyQualifiedName.java
18
Unnecessary fully qualified name
- Fully qualified name <code>java.lang.System</code> is unnecessary, and can be replaced with an import #loc
+ Qualifier <code>java.lang</code> is unnecessary, and can be replaced with an import #loc
UnnecessaryFullyQualifiedName.java
41
Unnecessary fully qualified name
- Fully qualified name <code>java. util. List</code> is unnecessary, and can be replaced with an import #loc
+ Qualifier <code>java. util</code> is unnecessary, and can be replaced with an import #loc
UnnecessaryFQNJavadoc.java
4
Unnecessary fully qualified name
- Fully qualified name <code>java.util.Map</code> is unnecessary, and can be replaced with an import #loc
+ Qualifier <code>java.util</code> is unnecessary, and can be replaced with an import #loc
UnnecessaryFQNJavadoc.java
5
Unnecessary fully qualified name
- Fully qualified name <code>java.util.HashMap</code> is unnecessary, and can be replaced with an import #loc
+ Qualifier <code>java.util</code> is unnecessary, and can be replaced with an import #loc