1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/src/main/java/de/uapcore/lightpit/viewmodel/VersionInfo.java Mon Jun 01 14:46:58 2020 +0200 1.3 @@ -0,0 +1,82 @@ 1.4 +package de.uapcore.lightpit.viewmodel; 1.5 + 1.6 +import de.uapcore.lightpit.entities.Issue; 1.7 +import de.uapcore.lightpit.entities.IssueSummary; 1.8 +import de.uapcore.lightpit.entities.Version; 1.9 + 1.10 +import java.util.ArrayList; 1.11 +import java.util.List; 1.12 + 1.13 +public class VersionInfo { 1.14 + 1.15 + private final Version version; 1.16 + 1.17 + private final IssueSummary reportedTotal = new IssueSummary(); 1.18 + private final IssueSummary scheduledTotal = new IssueSummary(); 1.19 + private final IssueSummary resolvedTotal = new IssueSummary(); 1.20 + 1.21 + private final List<Issue> reported = new ArrayList<>(); 1.22 + private final List<Issue> scheduled = new ArrayList<>(); 1.23 + private final List<Issue> resolved = new ArrayList<>(); 1.24 + 1.25 + public VersionInfo(Version version) { 1.26 + this.version = version; 1.27 + } 1.28 + 1.29 + public Version getVersion() { 1.30 + return version; 1.31 + } 1.32 + 1.33 + public void addReported(Issue issue) { 1.34 + reportedTotal.add(issue); 1.35 + reported.add(issue); 1.36 + } 1.37 + 1.38 + public void addScheduled(Issue issue) { 1.39 + scheduledTotal.add(issue); 1.40 + scheduled.add(issue); 1.41 + } 1.42 + 1.43 + public void addResolved(Issue issue) { 1.44 + resolvedTotal.add(issue); 1.45 + resolved.add(issue); 1.46 + } 1.47 + 1.48 + public IssueSummary getReportedTotal() { 1.49 + return reportedTotal; 1.50 + } 1.51 + 1.52 + public IssueSummary getScheduledTotal() { 1.53 + return scheduledTotal; 1.54 + } 1.55 + 1.56 + public IssueSummary getResolvedTotal() { 1.57 + return resolvedTotal; 1.58 + } 1.59 + 1.60 + public List<Issue> getReported() { 1.61 + return reported; 1.62 + } 1.63 + 1.64 + public List<Issue> getScheduled() { 1.65 + return scheduled; 1.66 + } 1.67 + 1.68 + public List<Issue> getResolved() { 1.69 + return resolved; 1.70 + } 1.71 + 1.72 + public void collectIssues(List<Issue> issues) { 1.73 + for (Issue issue : issues) { 1.74 + if (issue.getAffectedVersions().contains(version)) { 1.75 + addReported(issue); 1.76 + } 1.77 + if (issue.getScheduledVersions().contains(version)) { 1.78 + addScheduled(issue); 1.79 + } 1.80 + if (issue.getResolvedVersions().contains(version)) { 1.81 + addResolved(issue); 1.82 + } 1.83 + } 1.84 + } 1.85 +}