List<VirtualFile> (VirtualFile root, boolean checkAttribute, boolean filter) { List<VirtualFile> results = new SmartList<>(); ContainerUtil.addIfNotNull(results, root.findChild(PsiJavaModule.MODULE_INFO_CLS_FILE)); VirtualFile versionsDir = root.findFileByRelativePath("META-INF/versions"); if (versionsDir != null && (!checkAttribute || isMultiReleaseJar(root))) { VirtualFile[] versions = versionsDir.getChildren(); if (filter) { versions = Stream.of(versions).filter(d -> version(d) >= 9).toArray(VirtualFile[]::new); } Arrays.sort(versions, JavaModuleNameIndex::compareVersions); for (VirtualFile version : versions) { ContainerUtil.addIfNotNull(results, version.findChild(PsiJavaModule.MODULE_INFO_CLS_FILE)); } } return results; }