Code review comment: Code coverage is actually not supported for single files. I checked. I will remove this TODO comment

Code under review:
private void createReport(final IBundleCoverage bundleCoverage) {
        boolean containsSourceFiles = true;

        for (IPackageCoverage packageCoverage : bundleCoverage.getPackages()) {
            
            if (TesterinaConstants.DOT.equals(moduleName)) {
                containsSourceFiles = packageCoverage.getName().isEmpty();
            }

            if (containsSourceFiles) {
                for (ISourceFileCoverage sourceFileCoverage : packageCoverage.getSourceFiles()) {

                    
                    
                    
                    String sourceFileModule = sourceFileCoverage.getPackageName().split("/")[1];

                    if (sourceFileCoverage.getName().contains(BLangConstants.BLANG_SRC_FILE_SUFFIX)
                            && !sourceFileCoverage.getName().contains("tests/")) {
                        List<Integer> coveredLines = new ArrayList<>();
                        List<Integer> missedLines = new ArrayList<>();

                        for (int i = sourceFileCoverage.getFirstLine(); i <= sourceFileCoverage.getLastLine(); i++) {
                            ILine line = sourceFileCoverage.getLine(i);

                            if (line.getInstructionCounter().getTotalCount() == 0 &&
                                    line.getBranchCounter().getTotalCount() == 0) {
                                
                            } else if ((line.getBranchCounter().getCoveredCount() == 0 &&
                                    line.getBranchCounter().getMissedCount() > 0) || line.getStatus() == NOT_COVERED) {
                                missedLines.add(i);
                            } else if (line.getStatus() == PARTLY_COVERED || line.getStatus() == FULLY_COVERED) {
                                coveredLines.add(i);
                            }
                        }

                        
                        if (sourceFileModule.equals(moduleName)) {
                            ModuleCoverage.getInstance().addSourceFileCoverage(sourceFileModule,
                                    sourceFileCoverage.getName(), coveredLines, missedLines);
                        } else {
                            String jsonCachePath = this.jsonCache.toString() + "/"
                                    + sourceFileCoverage.getPackageName().replace("_", ".");
                            ModuleCoverage.getInstance().updateSourceFileCoverage(jsonCachePath, sourceFileModule,
                                    sourceFileCoverage.getName(), coveredLines, missedLines);
                        }
                    }
                }
            }

        }
    }


Revised code:
private void createReport(final IBundleCoverage bundleCoverage) {
        boolean containsSourceFiles = true;

        for (IPackageCoverage packageCoverage : bundleCoverage.getPackages()) {
            if (TesterinaConstants.DOT.equals(moduleName)) {
                containsSourceFiles = packageCoverage.getName().isEmpty();
            }

            if (containsSourceFiles) {
                for (ISourceFileCoverage sourceFileCoverage : packageCoverage.getSourceFiles()) {

                    
                    
                    
                    String sourceFileModule = sourceFileCoverage.getPackageName().split("/")[1];

                    if (sourceFileCoverage.getName().contains(BLangConstants.BLANG_SRC_FILE_SUFFIX)
                            && !sourceFileCoverage.getName().contains("tests/")) {
                        List<Integer> coveredLines = new ArrayList<>();
                        List<Integer> missedLines = new ArrayList<>();

                        for (int i = sourceFileCoverage.getFirstLine(); i <= sourceFileCoverage.getLastLine(); i++) {
                            ILine line = sourceFileCoverage.getLine(i);

                            if (line.getInstructionCounter().getTotalCount() == 0 &&
                                    line.getBranchCounter().getTotalCount() == 0) {
                                
                            } else if ((line.getBranchCounter().getCoveredCount() == 0 &&
                                    line.getBranchCounter().getMissedCount() > 0) || line.getStatus() == NOT_COVERED) {
                                missedLines.add(i);
                            } else if (line.getStatus() == PARTLY_COVERED || line.getStatus() == FULLY_COVERED) {
                                coveredLines.add(i);
                            }
                        }

                        
                        if (sourceFileModule.equals(moduleName)) {
                            ModuleCoverage.getInstance().addSourceFileCoverage(sourceFileModule,
                                    sourceFileCoverage.getName(), coveredLines, missedLines);
                        } else {
                            
                            String jsonCachePath = this.jsonCache.toString() +
                                    resolveSourcePackage(sourceFileCoverage.getPackageName());
                            ModuleCoverage.getInstance().updateSourceFileCoverage(jsonCachePath, sourceFileModule,
                                    sourceFileCoverage.getName(), coveredLines, missedLines);
                        }
                    }
                }
            }

        }
    }