diff -r 3d16ad54b3dc -r 0a658e53177c src/main/java/de/uapcore/lightpit/viewmodel/VersionInfo.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/uapcore/lightpit/viewmodel/VersionInfo.java Mon Jun 01 14:46:58 2020 +0200 @@ -0,0 +1,82 @@ +package de.uapcore.lightpit.viewmodel; + +import de.uapcore.lightpit.entities.Issue; +import de.uapcore.lightpit.entities.IssueSummary; +import de.uapcore.lightpit.entities.Version; + +import java.util.ArrayList; +import java.util.List; + +public class VersionInfo { + + private final Version version; + + private final IssueSummary reportedTotal = new IssueSummary(); + private final IssueSummary scheduledTotal = new IssueSummary(); + private final IssueSummary resolvedTotal = new IssueSummary(); + + private final List reported = new ArrayList<>(); + private final List scheduled = new ArrayList<>(); + private final List resolved = new ArrayList<>(); + + public VersionInfo(Version version) { + this.version = version; + } + + public Version getVersion() { + return version; + } + + public void addReported(Issue issue) { + reportedTotal.add(issue); + reported.add(issue); + } + + public void addScheduled(Issue issue) { + scheduledTotal.add(issue); + scheduled.add(issue); + } + + public void addResolved(Issue issue) { + resolvedTotal.add(issue); + resolved.add(issue); + } + + public IssueSummary getReportedTotal() { + return reportedTotal; + } + + public IssueSummary getScheduledTotal() { + return scheduledTotal; + } + + public IssueSummary getResolvedTotal() { + return resolvedTotal; + } + + public List getReported() { + return reported; + } + + public List getScheduled() { + return scheduled; + } + + public List getResolved() { + return resolved; + } + + public void collectIssues(List issues) { + for (Issue issue : issues) { + if (issue.getAffectedVersions().contains(version)) { + addReported(issue); + } + if (issue.getScheduledVersions().contains(version)) { + addScheduled(issue); + } + if (issue.getResolvedVersions().contains(version)) { + addResolved(issue); + } + } + } +}