List<Icon> (@NotNull Library library, StructureConfigurableContext context) { final VirtualFile[] files = getLibraryFiles(library, context); final List<Icon> icons = new SmartList<>(); LibraryDetectionManager.getInstance().processProperties(Arrays.asList(files), new LibraryDetectionManager.LibraryPropertiesProcessor() { @Override public <P extends LibraryProperties> boolean processProperties(@NotNull LibraryKind kind, @NotNull P properties) { final LibraryPresentationProvider<P> provider = getPresentationProvider(kind); if (provider != null) { ContainerUtil.addIfNotNull(icons, provider.getIcon(properties)); } return true; } }); return icons; }