private JarClasses analyzeMultiRelease()

in src/main/java/org/apache/maven/shared/jar/classes/JarClassesAnalysis.java [132:162]


    private JarClasses analyzeMultiRelease(JarAnalyzer jarAnalyzer) {
        String jarFilename = jarAnalyzer.getFile().getAbsolutePath();

        Map<Integer, List<JarEntry>> mapEntries =
                jarAnalyzer.getEntries().stream().collect(Collectors.groupingBy(this::jarEntryVersion));

        // ordered by increasing Java version
        NavigableMap<Integer, JarVersionedRuntime> runtimeVersionsMap = new TreeMap<>();

        for (Map.Entry<Integer, List<JarEntry>> mapEntry : mapEntries.entrySet()) {
            Integer runtimeVersion = mapEntry.getKey();
            List<JarEntry> runtimeVersionEntryList = mapEntry.getValue();

            List<JarEntry> classList = jarAnalyzer.getClassEntries(runtimeVersionEntryList);

            JarClasses classes = analyze(jarFilename, classList);

            runtimeVersionsMap.put(runtimeVersion, new JarVersionedRuntime(runtimeVersionEntryList, classes));
        }

        JarData jarData = jarAnalyzer.getJarData();

        JarVersionedRuntime rootContentVersionedRuntime = runtimeVersionsMap.remove(ROOT);
        jarData.setRootEntries(rootContentVersionedRuntime.getEntries());
        JarClasses rootJarClasses = rootContentVersionedRuntime.getJarClasses();
        jarData.setJarClasses(rootJarClasses);

        jarData.setVersionedRuntimes(new JarVersionedRuntimes(runtimeVersionsMap));

        return rootJarClasses;
    }