/*
* 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.bc;
import static org.kuali.kfs.module.bc.BCConstants.Report.BuildMode.BCAF;
import static org.kuali.kfs.module.bc.BCConstants.Report.BuildMode.MONTH;
import static org.kuali.kfs.module.bc.BCConstants.Report.BuildMode.PBGL;
import static org.kuali.kfs.module.bc.BCConstants.Report.ReportSelectMode.ACCOUNT;
import static org.kuali.kfs.module.bc.BCConstants.Report.ReportSelectMode.OBJECT_CODE;
import static org.kuali.kfs.module.bc.BCConstants.Report.ReportSelectMode.REASON;
import static org.kuali.kfs.module.bc.BCConstants.Report.ReportSelectMode.SUBFUND;
import java.util.EnumSet;
import org.kuali.kfs.module.bc.BCConstants.Report.BuildMode;
import org.kuali.kfs.module.bc.BCConstants.Report.ReportSelectMode;
/**
* Contains properties related to a budget construction report.
*/
public enum BudgetConstructionReportMode {
ACCOUNT_FUNDING_DETAIL_REPORT("AccountFundingDetailReport", BCAF, OBJECT_CODE, "BudgetOrgAccountFundingDetail", true),
ACCOUNT_OBJECT_DETAIL_REPORT("AccountObjectDetailReport", PBGL, SUBFUND, "BudgetOrgAccountObjectDetail", true),
ACCOUNT_SUMMARY_REPORT("AccountSummaryReport", PBGL, SUBFUND, "BudgetOrgAccountSummary", true),
LEVEL_SUMMARY_REPORT("LevelSummaryReport", PBGL, SUBFUND, "BudgetOrgLevelSummary", true),
MONTH_SUMMARY_REPORT("MonthSummaryReport", MONTH, SUBFUND, "BudgetOrgMonthSummary", true),
OBJECT_SUMMARY_REPORT("ObjectSummaryReport", PBGL, SUBFUND, "BudgetOrgObjectSummary", true),
POSITION_FUNDING_DETAIL_REPORT("PositionFundingDetailReport", BCAF, OBJECT_CODE, "BudgetOrgPositionFundingDetail", true),
REASON_STATISTICS_REPORT("ReasonStatisticsReport", BCAF, REASON, "BudgetOrgReasonStatistics", false),
REASON_SUMMARY_REPORT("ReasonSummaryReport", BCAF, REASON, "BudgetOrgReasonSummary", false),
SALARY_STATISTICS_REPORT("SalaryStatisticsReport", BCAF, OBJECT_CODE, "BudgetOrgSalaryStatistics", true),
SALARY_SUMMARY_REPORT("SalarySummaryReport", BCAF, OBJECT_CODE, "BudgetOrgSalarySummary", false),
SUBFUND_SUMMARY_REPORT("SubFundSummaryReport", PBGL, SUBFUND, "BudgetOrgSubFundSummary", true),
SYNCHRONIZATION_PROBLEMS_REPORT("SynchronizationProblemsReport", PBGL, ACCOUNT, "BudgetOrgSynchronizationProblems", true),
TWOPLG_LIST_REPORT("TwoPLGListReport", PBGL, ACCOUNT, "BudgetOrgTwoPLGList", true),
ACCOUNT_EXPORT("AccountExport", PBGL, SUBFUND, true),
MONTHLY_EXPORT("MonthlyExport", MONTH, SUBFUND, true),
FUNDING_EXPORT("FundingExport", BCAF, SUBFUND, true);
public final String reportModeName;
public final BuildMode reportBuildMode;
public final ReportSelectMode reportSelectMode;
public final String jasperFileName;
public final boolean lockThreshold;
public final boolean export;
/**
* Constructs a BudgetConstructionReportMode.java.
*/
private BudgetConstructionReportMode(final String reportModeName, final BuildMode reportBuildMode, final ReportSelectMode reportSelectMode, final String jasperFileName, final boolean lockThreshold) {
this.reportModeName = reportModeName;
this.reportBuildMode = reportBuildMode;
this.reportSelectMode = reportSelectMode;
this.jasperFileName = jasperFileName;
this.lockThreshold = lockThreshold;
this.export = false;
}
/**
* Constructs a BudgetConstructionReportMode.java.
*/
private BudgetConstructionReportMode(final String reportModeName, final BuildMode reportBuildMode, final ReportSelectMode reportSelectMode, final boolean export) {
this.reportModeName = reportModeName;
this.reportBuildMode = reportBuildMode;
this.reportSelectMode = reportSelectMode;
this.lockThreshold = false;
this.export = export;
this.jasperFileName = "";
}
/**
* Returns the BudgetConstructionReportMode with name that matches given report mode name.
*
* @param reportModeName - report name to find BudgetConstructionReportMode for
* @return BudgetConstructionReportMode if found, or null
*/
public static BudgetConstructionReportMode getBudgetConstructionReportModeByName(String reportModeName) {
BudgetConstructionReportMode foundReportMode = null;
for(BudgetConstructionReportMode reportMode : EnumSet.allOf(BudgetConstructionReportMode.class)) {
if (reportMode.reportModeName.equals(reportModeName)) {
foundReportMode = reportMode;
break;
}
}
return foundReportMode;
}
}