Merge remote-tracking branch 'origin/master'

This commit is contained in:
Maxim.Medvedev
2012-02-06 14:38:35 +04:00
5 changed files with 26 additions and 5 deletions
@@ -432,7 +432,7 @@ public class EntryPointsManagerImpl implements PersistentStateComponent<Element>
myAddNonJavaEntries = addNonJavaEntries;
}
public boolean isEntryPoint(PsiModifierListOwner element) {
public boolean isEntryPoint(@NotNull PsiModifierListOwner element) {
return AnnotationUtil.isAnnotated(element, ADDITIONAL_ANNOTATIONS) ||
AnnotationUtil.isAnnotated(element, getAdditionalAnnotations());
}
@@ -74,7 +74,9 @@ public class UnusedParametersInspection extends GlobalJavaInspectionTool {
if ((refMethod.isAbstract() || refMethod.getOwnerClass().isInterface()) && refMethod.getDerivedMethods().isEmpty()) return null;
if (RefUtil.isEntryPoint(refMethod)) return null;
if (EntryPointsManagerImpl.getInstance(manager.getProject()).isEntryPoint(refMethod.getElement())) return null;
final PsiModifierListOwner element = refMethod.getElement();
if (element != null && EntryPointsManagerImpl.getInstance(manager.getProject()).isEntryPoint(element)) return null;
if (refMethod.isAppMain()) return null;
@@ -125,7 +125,7 @@ public abstract class JavaExtractSuperBaseDialog extends ExtractSuperBaseDialog<
protected void preparePackage() throws OperationFailedException {
final String targetPackageName = getTargetPackageName();
final JavaPsiFacade psiFacade = JavaPsiFacade.getInstance(myProject);
if (!psiFacade.getNameHelper().isIdentifier(targetPackageName)) {
if (!psiFacade.getNameHelper().isQualifiedName(targetPackageName)) {
throw new OperationFailedException("Invalid package name: " + targetPackageName);
}
final PsiPackage aPackage = psiFacade.findPackage(targetPackageName);
@@ -187,6 +187,14 @@ public abstract class DescriptorProviderInspection extends InspectionTool implem
getIgnoredElements().put(refEntity, problemDescriptors);
}
public void ignoreCurrentElementProblem(RefEntity refEntity, CommonProblemDescriptor descriptor) {
CommonProblemDescriptor[] descriptors = getIgnoredElements().get(refEntity);
if (descriptors == null) {
descriptors = new CommonProblemDescriptor[0];
}
getIgnoredElements().put(refEntity, ArrayUtil.append(descriptors, descriptor));
}
private static boolean isIgnoreProblem(QuickFix[] problemFixes, Set<QuickFix> fixes, int idx){
if (problemFixes == null || fixes == null) {
return true;
@@ -451,6 +459,17 @@ public abstract class DescriptorProviderInspection extends InspectionTool implem
return false;
}
public boolean isProblemResolved(RefEntity refEntity, CommonProblemDescriptor descriptor) {
if (getIgnoredElements() == null) return false;
for (RefEntity entity : getIgnoredElements().keySet()) {
if (Comparing.equal(entity, refEntity)) {
final CommonProblemDescriptor[] descriptors = getIgnoredElements().get(refEntity);
return ArrayUtil.contains(descriptor, descriptors);
}
}
return false;
}
public FileStatus getProblemStatus(final CommonProblemDescriptor descriptor) {
final GlobalInspectionContextImpl context = getContext();
if (context != null && context.getUIOptions().SHOW_DIFF_WITH_PREVIOUS_RUN){
@@ -95,11 +95,11 @@ public class ProblemDescriptionNode extends InspectionTreeNode {
public boolean isResolved() {
return myElement instanceof RefElement && myTool.isElementIgnored(myElement);
return myElement instanceof RefElement && myTool.isProblemResolved(myElement, getDescriptor());
}
public void ignoreElement() {
myTool.ignoreCurrentElement(getElement());
myTool.ignoreCurrentElementProblem(getElement(), getDescriptor());
}
public void amnesty() {