@Override
    protected void applyFix(@NotNull Project project, @NotNull PsiElement element, @NotNull ModPsiUpdater updater) {
      final PsiCallExpression expression = PsiTreeUtil.getParentOfType(element, PsiCallExpression.class);
      if (expression == null) {
        return;
      }
      final PsiExpressionList argumentList = expression.getArgumentList();
      if (argumentList == null) {
        return;
      }
      final PsiExpression[] arguments = argumentList.getExpressions();
      if (arguments.length != 1) {
        return;
      }
      final PsiExpression unboxedExpression = PsiUtil.skipParenthesizedExprDown(arguments[0]);
      if (unboxedExpression == null) {
        return;
      }
      final PsiType unboxedExpressionType = unboxedExpression.getType();
      if (unboxedExpressionType == null) {
        return;
      }
      final CommentTracker commentTracker = new CommentTracker();
      if (unboxedExpressionType.getCanonicalText().equals("java.lang.String")) {
        PsiMethodCallExpression methodCall = (PsiMethodCallExpression)expression;
        final String parseMethodName = JavaPsiBoxingUtils.getParseMethod(methodCall.getType());
        if (parseMethodName == null) {
          return;
        }
        ExpressionUtils.bindCallTo(methodCall, parseMethodName);
        return;
      }
      final Object value = ExpressionUtils.computeConstantExpression(unboxedExpression);
      if (value != null && !(unboxedExpression instanceof PsiReferenceExpression)) {
        if (value == Boolean.TRUE) {
          PsiReplacementUtil.replaceExpression(expression, "java.lang.Boolean.TRUE", commentTracker);
          return;
        }
        else if (value == Boolean.FALSE) {
          PsiReplacementUtil.replaceExpression(expression, "java.lang.Boolean.FALSE", commentTracker);
          return;
        }
      }
      final String replacementText = getUnboxedExpressionText(unboxedExpression, expression, commentTracker);
      if (replacementText == null) {
        return;
      }
      PsiReplacementUtil.replaceExpression(expression, replacementText, commentTracker);
    }
@Override
    protected void applyFix(@NotNull Project project, @NotNull PsiElement element, @NotNull ModPsiUpdater updater)