/* * The Kuali Financial System, a comprehensive financial management system for higher education. * * Copyright 2005-2014 The Kuali Foundation * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.kuali.kfs.module.ec.util; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.kuali.kfs.module.ec.businessobject.EffortCertificationReportDefinition; /** * To group and hold the data presented to working reports of extract process */ public class ExtractProcessReportDataHolder { private EffortCertificationReportDefinition reportDefinition; private Map<String, Integer> basicStatistics; private List<LedgerBalanceWithMessage> ledgerBalancesWithMessage; private Map<String, Object> reportData; public final static String KEY_OF_STATISTICS_ENTRY = "statistics"; public final static String KEY_OF_ERRORS_ENTRY = "errors"; public final static String REPORT_YEAR = "reportYear"; public final static String REPORT_NUMBER = "reportNumber"; public final static String REPORT_PERIOD_BEGIN = "reportPeriodBegin"; public final static String REPORT_PERIOD_END = "reportPeriodEnd"; /** * Constructs a ExtractProcessReportDataHolder.java. */ public ExtractProcessReportDataHolder() { this(null); } /** * Constructs a ExtractProcessReportDataHolder.java. * * @param reportDefinition */ public ExtractProcessReportDataHolder(EffortCertificationReportDefinition reportDefinition) { super(); this.reportDefinition = reportDefinition; this.basicStatistics = new HashMap<String, Integer>(); this.ledgerBalancesWithMessage = new ArrayList<LedgerBalanceWithMessage>(); this.reportData = new HashMap<String, Object>(); } /** * update the value of the entry with the given key. If the key exists, the value will be the sum of the given and existing * values; otherwise, create a new entry with the key and value. * * @param key the given key * @param count the given count */ public void updateBasicStatistics(String key, Integer count) { if (basicStatistics.containsKey(key)) { Integer currentCount = basicStatistics.get(key); count = currentCount + count; } basicStatistics.put(key, count); } /** * Gets the reportDefinition attribute. * * @return Returns the reportDefinition. */ public EffortCertificationReportDefinition getReportDefinition() { return reportDefinition; } /** * Sets the reportDefinition attribute value. * * @param reportDefinition The reportDefinition to set. */ public void setReportDefinition(EffortCertificationReportDefinition reportDefinition) { this.reportDefinition = reportDefinition; } /** * Gets the basicStatistics attribute. * * @return Returns the basicStatistics. */ public Map<String, Integer> getBasicStatistics() { return basicStatistics; } /** * Sets the basicStatistics attribute value. * * @param basicStatistics The basicStatistics to set. */ public void setBasicStatistics(Map<String, Integer> basicStatistics) { this.basicStatistics = basicStatistics; } /** * Gets the ledgerBalancesWithMessage attribute. * @return Returns the ledgerBalancesWithMessage. */ public List<LedgerBalanceWithMessage> getLedgerBalancesWithMessage() { return ledgerBalancesWithMessage; } /** * Sets the ledgerBalancesWithMessage attribute value. * @param ledgerBalancesWithMessage The ledgerBalancesWithMessage to set. */ public void setLedgerBalancesWithMessage(List<LedgerBalanceWithMessage> ledgerBalancesWithMessage) { this.ledgerBalancesWithMessage = ledgerBalancesWithMessage; } /** * Gets the reportData attribute. * @return Returns the reportData. */ public Map<String, Object> getReportData() { reportData.put(REPORT_YEAR, reportDefinition.getUniversityFiscalYear()); reportData.put(REPORT_NUMBER, reportDefinition.getEffortCertificationReportNumber()); reportData.put(REPORT_PERIOD_BEGIN, reportDefinition.getEffortCertificationReportBeginPeriodCode() + "/" + reportDefinition.getEffortCertificationReportBeginFiscalYear()); reportData.put(REPORT_PERIOD_END, reportDefinition.getEffortCertificationReportEndPeriodCode() + "/" + reportDefinition.getEffortCertificationReportEndFiscalYear()); reportData.put(KEY_OF_STATISTICS_ENTRY, basicStatistics); reportData.put(KEY_OF_ERRORS_ENTRY, ledgerBalancesWithMessage); return reportData; } /** * @see java.lang.Object#toString() */ @Override public String toString() { return this.getReportData().toString(); } }