@Override
    public void visitMethodCallExpression(@NotNull PsiMethodCallExpression expression) {
      super.visitMethodCallExpression(expression);
      final PsiReferenceExpression methodExpression = expression.getMethodExpression();
      @NonNls final String methodName = methodExpression.getReferenceName();
      if (methodName == null) {
        return;
      }
      final boolean resultSet;
      if (methodName.startsWith("get") || methodName.startsWith("update")) {
        resultSet = true;
      } else if (methodName.startsWith("set")) {
        resultSet = false;
      } else {
        return;
      }
      final PsiExpressionList argumentList = expression.getArgumentList();
      final PsiExpression[] arguments = argumentList.getExpressions();
      if (arguments.length == 0) {
        return;
      }
      final PsiExpression argument = arguments[0];
      final Object val = ExpressionUtils.computeConstantExpression(argument);
      if (!(val instanceof Integer) || ((Integer)val).intValue() != 0) {
        return;
      }
      final PsiExpression qualifier = methodExpression.getQualifierExpression();
      if (resultSet) {
        if (TypeUtils.expressionHasTypeOrSubtype(qualifier, "java.sql.ResultSet")) {
          registerError(argument, Boolean.TRUE);
        }
      } else if (arguments.length > 1) {
        if (TypeUtils.expressionHasTypeOrSubtype(qualifier, "java.sql.PreparedStatement")) {
          registerError(argument, Boolean.FALSE);
        }
      }
    }
@Override
    public void visitMethodCallExpression(@NotNull PsiMethodCallExpression expression)