universe@184: /* universe@184: * Copyright 2021 Mike Becker. All rights reserved. universe@184: * universe@184: * Redistribution and use in source and binary forms, with or without universe@184: * modification, are permitted provided that the following conditions are met: universe@184: * universe@184: * 1. Redistributions of source code must retain the above copyright universe@184: * notice, this list of conditions and the following disclaimer. universe@184: * universe@184: * 2. Redistributions in binary form must reproduce the above copyright universe@184: * notice, this list of conditions and the following disclaimer in the universe@184: * documentation and/or other materials provided with the distribution. universe@184: * universe@184: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" universe@184: * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE universe@184: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE universe@184: * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE universe@184: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL universe@184: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR universe@184: * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER universe@184: * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, universe@184: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE universe@184: * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. universe@184: */ universe@184: universe@184: package de.uapcore.lightpit.viewmodel universe@184: universe@184: import de.uapcore.lightpit.entities.Issue universe@184: import de.uapcore.lightpit.entities.Version universe@184: import de.uapcore.lightpit.types.VersionStatus universe@184: universe@184: class VersionInfo( universe@184: val version: Version, universe@184: val issues: List universe@184: ) { universe@184: val reportedTotal = IssueSummary() universe@184: val resolvedTotal = IssueSummary() universe@184: val reported: List universe@184: val resolved: List universe@184: universe@184: init { universe@184: val reported = mutableListOf() universe@184: val resolved = mutableListOf() universe@184: for (issue in issues) { universe@184: if (issue.affectedVersions.contains(version)) { universe@184: reportedTotal.add(issue) universe@184: reported.add(issue) universe@184: } universe@184: if (issue.resolvedVersions.contains(version)) { universe@184: resolvedTotal.add(issue) universe@184: resolved.add(issue) universe@184: } universe@184: } universe@184: this.reported = reported universe@184: this.resolved = resolved universe@184: } universe@184: } universe@184: universe@184: class VersionSummary( universe@184: val version: Version universe@184: ) { universe@184: val reportedTotal = IssueSummary() universe@184: val resolvedTotal = IssueSummary() universe@184: } universe@184: universe@184: class VersionsView( universe@184: val projectInfo: ProjectInfo, universe@184: val versionInfos: List universe@184: ) : View() universe@184: universe@184: class VersionEditView( universe@184: val projectInfo: ProjectInfo, universe@184: val version: Version universe@184: ) : EditView() { universe@184: val versionStatus = VersionStatus.values() universe@184: }