@Override
    public @Nullable OptionalOfNullableStringCase.Context extractContext(@NotNull Project project,
                                                                         @NotNull PsiMethodCallExpression call) {
      PsiExpression arg = call.getArgumentList().getExpressions()[0];
      if (!TypeUtils.isJavaLangString(arg.getType())) return null;
      PsiMethodCallExpression maybeOrElse = ExpressionUtils.getCallForQualifier(call);
      if (!OPTIONAL_OR_ELSE.matches(maybeOrElse)) return null;
      PsiExpression orElseArgument = maybeOrElse.getArgumentList().getExpressions()[0];
      PsiLiteralExpression literal = ExpressionUtils.getLiteral(orElseArgument);
      if (literal == null || !"null".equals(literal.getValue())) return null;
      return new Context(arg, maybeOrElse);
    }
@Override
    public @Nullable OptionalOfNullableStringCase.Context extractContext(@NotNull Project project,
                                                                         @NotNull PsiMethodCallExpression call)