@Override
  protected @Nullable Presentation getPresentation(@NotNull ActionContext context, @NotNull PsiExpression element) {
    PsiExpression expression = getParentExpression(element);
    if (PsiUtil.isOnAssignmentLeftHand(expression)) return null;
    PsiClass psiClass = PsiUtil.resolveClassInClassTypeOnly(expression.getType());
    if (psiClass != null) {
      PsiClass expectedClass = PsiUtil.resolveClassInClassTypeOnly(getExpectedType(expression));

      if (expectedClass != null) {
        String collectionClass = findSuperClass(psiClass, expectedClass, CLASS_TO_METHOD.keySet());
        if (collectionClass != null && !isUnmodifiable(expression)) {
          String message = switch (collectionClass) {
            case JAVA_UTIL_LIST -> "intention.wrap.with.unmodifiable.list";
            case JAVA_UTIL_SET, JAVA_UTIL_SORTED_SET -> "intention.wrap.with.unmodifiable.set";
            default -> "intention.wrap.with.unmodifiable.map";
          };
          return Presentation.of(JavaBundle.message(message));
        }
      }
    }
    return null;
  }
@Override
  protected @Nullable Presentation getPresentation(@NotNull ActionContext context, @NotNull PsiExpression element)