src/main/java/de/uapcore/lightpit/viewmodel/ProjectView.java

changeset 86
0a658e53177c
child 88
1438e5a22c55
--- /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<Version> versions = Collections.emptyList();
+    private List<Issue> issues = Collections.emptyList();
+
+    private IssueSummary issuesTotal;
+    private List<Issue> issuesWithoutVersion;
+    private IssueSummary issuesWithoutVersionTotal;
+    private List<VersionInfo> versionInfos = Collections.emptyList();
+
+    public ProjectView(Project project) {
+        this.project = project;
+    }
+
+    public Project getProject() {
+        return project;
+    }
+
+    public List<Issue> getIssues() {
+        return issues;
+    }
+
+    public void setIssues(List<Issue> 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<Version> getVersions() {
+        return versions;
+    }
+
+    public void setVersions(List<Version> 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<Issue> getIssuesWithoutVersion() {
+        return issuesWithoutVersion;
+    }
+
+    public IssueSummary getIssuesWithoutVersionTotal() {
+        return issuesWithoutVersionTotal;
+    }
+
+    public List<VersionInfo> getVersionInfos() {
+        return versionInfos;
+    }
+}

mercurial