@NotNull
    private String getNodeName(@Nullable String name) {
      if (name != null) {
        AbstractTreeNode<?> parent = getParent();
        FileNode node = parent instanceof FileNode ? (FileNode)parent : null;
        String prefix = node == null ? null : node.getPackageName();
        if (prefix == null) return name;
        int length = prefix.length();
        if (length > 0 && name.startsWith(prefix)) {
          if (length < name.length() && '.' == name.charAt(length)) length++;
          if (length < name.length()) return name.substring(length);
        }
        LOG.info("unexpected prefix: " + prefix + " for package: " + name);
      }
      if (compacted != null) {
        StringBuilder sb = new StringBuilder();
        char separator = isPackage(getIcon()) ? '.' : VfsUtilCore.VFS_SEPARATOR_CHAR;
        compacted.forEach(file -> sb.append(file.getName()).append(separator));
        return sb.append(getVirtualFile().getName()).toString();
      }
      return getVirtualFile().getName();
    }
@NotNull
    private String getNodeName(@Nullable String name)