diff -r 30b840ed8c0e -r 822b7e3d064d src/main/java/de/uapcore/lightpit/entities/VersionStatistics.java --- a/src/main/java/de/uapcore/lightpit/entities/VersionStatistics.java Fri Oct 23 18:40:50 2020 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,101 +0,0 @@ -/* - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - * - * Copyright 2018 Mike Becker. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - */ -package de.uapcore.lightpit.entities; - -public class VersionStatistics { - - private final Version version; - private int[][] issueCount; - - private int[] rowTotals = null; - private int[] columnTotals = null; - private int total = -1; - - public VersionStatistics(Version version) { - this.version = version; - issueCount = new int[IssueCategory.values().length][IssueStatus.values().length]; - } - - public Version getVersion() { - return version; - } - - public void setIssueCount(IssueCategory category, IssueStatus status, int count) { - issueCount[category.ordinal()][status.ordinal()] = count; - total = -1; - rowTotals = columnTotals = null; - } - - public int[][] getIssueCount() { - return issueCount; - } - - public int[] getRowTotals() { - if (rowTotals != null) return rowTotals; - final int cn = IssueCategory.values().length; - final int sn = IssueStatus.values().length; - final var totals = new int[cn]; - for (int i = 0 ; i < cn ; i++) { - totals[i] = 0; - for (int j = 0 ; j < sn ; j++) { - totals[i] += issueCount[i][j]; - } - } - return rowTotals = totals; - } - - public int[] getColumnTotals() { - if (columnTotals != null) return columnTotals; - final int cn = IssueCategory.values().length; - final int sn = IssueStatus.values().length; - final var totals = new int[sn]; - for (int i = 0 ; i < sn ; i++) { - totals[i] = 0; - for (int j = 0 ; j < cn ; j++) { - totals[i] += issueCount[j][i]; - } - } - return columnTotals = totals; - } - - public int getTotal() { - if (this.total >= 0) { - return this.total; - } - int total = 0; - final int cn = IssueCategory.values().length; - final int sn = IssueStatus.values().length; - for (int i = 0 ; i < sn ; i++) { - for (int j = 0 ; j < cn ; j++) { - total += issueCount[j][i]; - } - } - return this.total = total; - } -}