diff -r 3d16ad54b3dc -r 0a658e53177c src/main/java/de/uapcore/lightpit/viewmodel/ProjectView.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/uapcore/lightpit/viewmodel/ProjectView.java Mon Jun 01 14:46:58 2020 +0200 @@ -0,0 +1,81 @@ +package de.uapcore.lightpit.viewmodel; + +import de.uapcore.lightpit.entities.Issue; +import de.uapcore.lightpit.entities.IssueSummary; +import de.uapcore.lightpit.entities.Project; +import de.uapcore.lightpit.entities.Version; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class ProjectView { + + private final Project project; + private List versions = Collections.emptyList(); + private List issues = Collections.emptyList(); + + private IssueSummary issuesTotal; + private List issuesWithoutVersion; + private IssueSummary issuesWithoutVersionTotal; + private List versionInfos = Collections.emptyList(); + + public ProjectView(Project project) { + this.project = project; + } + + public Project getProject() { + return project; + } + + public List getIssues() { + return issues; + } + + public void setIssues(List issues) { + this.issues = issues; + issuesTotal = new IssueSummary(); + issuesWithoutVersion = new ArrayList<>(); + issuesWithoutVersionTotal = new IssueSummary(); + for (Issue issue : issues) { + issuesTotal.add(issue); + if (issue.getResolvedVersions().isEmpty() && issue.getScheduledVersions().isEmpty() && issue.getResolvedVersions().isEmpty()) { + issuesWithoutVersion.add(issue); + issuesWithoutVersionTotal.add(issue); + } + } + } + + public List getVersions() { + return versions; + } + + public void setVersions(List versions) { + this.versions = versions; + } + + public void updateVersionInfo() { + versionInfos = new ArrayList<>(); + for (Version version : versions) { + final var info = new VersionInfo(version); + info.collectIssues(issues); + versionInfos.add(info); + } + } + + public IssueSummary getIssuesTotal() { + return issuesTotal; + } + + public List getIssuesWithoutVersion() { + return issuesWithoutVersion; + } + + public IssueSummary getIssuesWithoutVersionTotal() { + return issuesWithoutVersionTotal; + } + + public List getVersionInfos() { + return versionInfos; + } +}