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

Sun, 21 Jun 2020 11:38:16 +0200

author
Mike Becker <universe@uap-core.de>
date
Sun, 21 Jun 2020 11:38:16 +0200
changeset 88
1438e5a22c55
parent 86
0a658e53177c
child 99
a369fb1b3aa2
permissions
-rw-r--r--

simplifies version overviews by removing "scheduled issues"

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);
            // we want to list all issues that do not have a target version
            if (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