void (@NotNull Project project, @NotNull AttachToProcessItem item) { Map<XAttachHost, LinkedHashSet<RecentItem>> recentItems = project.getUserData(RECENT_ITEMS_KEY); if (recentItems == null) { project.putUserData(RECENT_ITEMS_KEY, recentItems = new HashMap<>()); } XAttachHost host = item.getHost(); LinkedHashSet<RecentItem> hostRecentItems = recentItems.get(host); if (hostRecentItems == null) { recentItems.put(host, new LinkedHashSet<>()); hostRecentItems = recentItems.get(host); } final RecentItem newRecentItem = new RecentItem(host, item); hostRecentItems.remove(newRecentItem); hostRecentItems.add(newRecentItem); while (hostRecentItems.size() > 4) { hostRecentItems.remove(hostRecentItems.iterator().next()); } }