public void initialize()

in ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/trends/MasterTrendsService.java [98:171]


    public void initialize(BuildStatisticsSummary s, @Nonnull final ITeamcityIgnited tcIgn) {
        BuildStatisticsSummary.initStrings(compactor);

        FatBuildCompacted build = tcIgn.getFatBuild(s.buildId);

        s.isFakeStub = build.isFakeStub();

        if (s.isFakeStub)
            return;

        Map<Integer, Future<FatBuildCompacted>> builds = bcp.loadAllBuildsInChains(
            Collections.singletonList(s.buildId), SyncMode.RELOAD_QUEUED, tcIgn);

        List<FatBuildCompacted> chainBuilds = FutureUtil.getResults(builds.values()).collect(Collectors.toList());

        if (chainBuilds.stream().allMatch(b -> build.isFakeStub())) {
            s.isFakeStub = true;
            return;
        }

        Date startDate = build.getStartDate();

        DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy'T'HH:mm:ss");

        s.startDate = dateFormat.format(startDate);

        int[] arr = new int[4];

        chainBuilds.stream().filter(b -> !b.isComposite())
            .forEach(b -> {
                b.getAllTests().forEach(t -> {
                    if (t.isIgnoredTest())
                        arr[0]++;
                    else if (t.isMutedTest())
                        arr[1]++;
                    else if (t.status() != BuildStatisticsSummary.getStringId(TestOccurrence.STATUS_SUCCESS))
                        arr[2]++;

                    arr[3]++;

                    if (t.status() == BuildStatisticsSummary.getStringId(TestOccurrence.STATUS_FAILURE)
                        && !t.isIgnoredTest() && !t.isMutedTest()) {
                        Map<Integer, T2<Long, Integer>> btTests = s.failedTests().computeIfAbsent(b.buildTypeId(), k -> new HashMap<>());

                        btTests.merge(t.testName(), new T2<>(t.getTestId(), 1), (v, x) -> {
                            int cnt = (x == null ? 0 : x.get2()) + (v == null ? 0 : v.get2());
                            return new T2<>(t.getTestId(), cnt);
                        });
                    }
                });
            });

        s.testOccurrences.ignored = arr[0];
        s.testOccurrences.muted = arr[1];
        s.testOccurrences.failed = arr[2];
        s.testOccurrences.count = arr[3];
        s.testOccurrences.passed = s.testOccurrences.count - s.testOccurrences.failed - s.testOccurrences.ignored -
            s.testOccurrences.muted;

        Stream<FatBuildCompacted> snapshotDependenciesWithProblems
            = chainBuilds.stream()
            .filter(b -> !b.isComposite())
            .filter(b -> b.status() != BuildStatisticsSummary.getStringId(BuildRef.STATUS_SUCCESS));

        s.duration = chainBuilds.stream()
            .filter(b -> !b.isComposite())
            .map(b -> b.buildDuration(compactor))
            .filter(Objects::nonNull)
            .mapToLong(ts -> ts / 1000).sum();

        List<ProblemCompacted> problems = s.getProblems(snapshotDependenciesWithProblems);

        s.totalProblems = s.getBuildTypeProblemsCount(problems);
    }