DetailedReport build() { DetailedReport detailedReport = init(); CertificateWrapper certificate = diagnosticData.getUsedCertificateById(certificateId); CertificateWrapper rootCertificate = diagnosticData.getUsedCertificateById(certificate.getLastChainCertificateId()); Map<String, XmlBasicBuildingBlocks> bbbs = new HashMap<String, XmlBasicBuildingBlocks>(); process(Collections.singleton(certificate), Context.CERTIFICATE, bbbs); detailedReport.getBasicBuildingBlocks().addAll(bbbs.values()); XmlBasicBuildingBlocks basicBuildingBlocks = bbbs.get(certificate.getId()); CertificateQualificationBlock cqb = new CertificateQualificationBlock(basicBuildingBlocks.getConclusion(), currentTime, certificate, rootCertificate, detailedReport.getTLAnalysis(), diagnosticData.getLOTLCountryCode()); detailedReport.setCertificate(cqb.execute()); return detailedReport; }