package husacct.validate.task.imexporting.reporting; import husacct.ServiceProvider; import husacct.common.locale.ILocaleService; import husacct.validate.domain.validation.Severity; import husacct.validate.domain.validation.Violation; import husacct.validate.domain.validation.internaltransferobjects.ViolationsPerSeverity; import husacct.validate.task.imexporting.StatisticsImage; import java.text.SimpleDateFormat; import java.util.AbstractMap.SimpleEntry; import java.util.ArrayList; import java.util.Calendar; import java.util.List; public class Report { private String projectName; private String version; private List<Severity> severities; private String imagePath; private SimpleEntry<Calendar, List<Violation>> violations; private final SimpleDateFormat dateFormat; private ILocaleService localeService = ServiceProvider.getInstance().getLocaleService(); public Report(String projectName, String version, SimpleEntry<Calendar, List<Violation>> violations, String path, List<Severity> severities) { this.projectName = projectName; this.version = version; this.violations = violations; this.imagePath = path + "/image.png"; this.severities = severities; dateFormat = new SimpleDateFormat("dd-MM-yyyy kk:mm:ss"); } public String getFormattedDate() { return dateFormat.format(violations.getKey().getTime()); } public List<ViolationsPerSeverity> getViolationsPerSeverity() { List<ViolationsPerSeverity> violationsPerSeverity = new ArrayList<ViolationsPerSeverity>(); for (Severity severity : severities) { int violationsCount = 0; for (Violation violation : violations.getValue()) { if (violation.getSeverity().getSeverityKey().equals(severity.getSeverityKey())) { violationsCount++; } } violationsPerSeverity.add(new ViolationsPerSeverity(violationsCount, severity)); } return violationsPerSeverity; } public String[] getLocaleColumnHeaders() { String[] headers = new String[] {localeService.getTranslatedString("Source"), localeService.getTranslatedString("Rule"), localeService.getTranslatedString("LineNumber"), localeService.getTranslatedString("DependencyKind"), localeService.getTranslatedString("Target"), localeService.getTranslatedString("Severity")}; return headers; } public void setProjectName(String projectName) { this.projectName = projectName; } public String getProjectName() { return projectName; } public void setVersion(String version) { this.version = version; } public String getVersion() { return version; } public String getImagePath() { new StatisticsImage().createStatisticsImage(imagePath, getViolationsPerSeverity()); return imagePath; } public void setImagePath(String imagePath) { this.imagePath = imagePath; } public List<Severity> getSeverities() { return severities; } public void setSeverities(List<Severity> severities) { this.severities = severities; } public SimpleEntry<Calendar, List<Violation>> getViolations() { return violations; } public void setViolations(SimpleEntry<Calendar, List<Violation>> violations) { this.violations = violations; } }