@Nullable
 public static PsiModifierListOwner getContainer(final PsiElement element) {
   PsiModifierListOwner listOwner =
       PsiTreeUtil.getParentOfType(element, PsiParameter.class, false);
   if (listOwner == null) {
     final PsiIdentifier psiIdentifier =
         PsiTreeUtil.getParentOfType(element, PsiIdentifier.class, false);
     if (psiIdentifier != null && psiIdentifier.getParent() instanceof PsiModifierListOwner) {
       listOwner = (PsiModifierListOwner) psiIdentifier.getParent();
     }
   }
   return listOwner;
 }
 @Override
 public void doFix(Project project, ProblemDescriptor descriptor)
     throws IncorrectOperationException {
   final PsiIdentifier name = (PsiIdentifier) descriptor.getPsiElement();
   final PsiReferenceExpression expression = (PsiReferenceExpression) name.getParent();
   if (expression == null) {
     return;
   }
   final PsiMethodCallExpression call = (PsiMethodCallExpression) expression.getParent();
   final String methodName = expression.getReferenceName();
   if (call == null) {
     return;
   }
   final PsiMethod method = call.resolveMethod();
   if (method == null) {
     return;
   }
   final PsiClass containingClass = method.getContainingClass();
   final PsiExpressionList argumentList = call.getArgumentList();
   if (containingClass == null) {
     return;
   }
   final String containingClassName = containingClass.getQualifiedName();
   final String argText = argumentList.getText();
   PsiReplacementUtil.replaceExpressionAndShorten(
       call, containingClassName + '.' + methodName + argText);
 }