static @NotNull String calcType(@Nullable Object userObject) {
    if (userObject == null) return "";
    if (userObject instanceof PathElementIdProvider userObjectWithPathId) {
      // A special override for unusual cases, for example, nodes with cached presentations.
      var providedType = userObjectWithPathId.getPathElementType();
      if (providedType != null) return providedType;
    }
    String name = userObject.getClass().getName();
    return Integer.toHexString(StringHash.murmur(name, 31)) + ":" + StringUtil.getShortName(name);
  }
static @NotNull String calcType(@Nullable Object userObject)