001 /* 002 * Copyright 2011 The Kuali Foundation. 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.kuali.kfs.module.bc; 017 018 import static org.kuali.kfs.module.bc.BCConstants.Report.BuildMode.BCAF; 019 import static org.kuali.kfs.module.bc.BCConstants.Report.BuildMode.MONTH; 020 import static org.kuali.kfs.module.bc.BCConstants.Report.BuildMode.PBGL; 021 import static org.kuali.kfs.module.bc.BCConstants.Report.ReportSelectMode.ACCOUNT; 022 import static org.kuali.kfs.module.bc.BCConstants.Report.ReportSelectMode.OBJECT_CODE; 023 import static org.kuali.kfs.module.bc.BCConstants.Report.ReportSelectMode.REASON; 024 import static org.kuali.kfs.module.bc.BCConstants.Report.ReportSelectMode.SUBFUND; 025 026 import java.util.EnumSet; 027 028 import org.kuali.kfs.module.bc.BCConstants.Report.BuildMode; 029 import org.kuali.kfs.module.bc.BCConstants.Report.ReportSelectMode; 030 031 /** 032 * Contains properties related to a budget construction report. 033 */ 034 public enum BudgetConstructionReportMode { 035 ACCOUNT_FUNDING_DETAIL_REPORT("AccountFundingDetailReport", BCAF, OBJECT_CODE, "BudgetOrgAccountFundingDetail", true), 036 ACCOUNT_OBJECT_DETAIL_REPORT("AccountObjectDetailReport", PBGL, SUBFUND, "BudgetOrgAccountObjectDetail", true), 037 ACCOUNT_SUMMARY_REPORT("AccountSummaryReport", PBGL, SUBFUND, "BudgetOrgAccountSummary", true), 038 LEVEL_SUMMARY_REPORT("LevelSummaryReport", PBGL, SUBFUND, "BudgetOrgLevelSummary", true), 039 MONTH_SUMMARY_REPORT("MonthSummaryReport", MONTH, SUBFUND, "BudgetOrgMonthSummary", true), 040 OBJECT_SUMMARY_REPORT("ObjectSummaryReport", PBGL, SUBFUND, "BudgetOrgObjectSummary", true), 041 POSITION_FUNDING_DETAIL_REPORT("PositionFundingDetailReport", BCAF, OBJECT_CODE, "BudgetOrgPositionFundingDetail", true), 042 REASON_STATISTICS_REPORT("ReasonStatisticsReport", BCAF, REASON, "BudgetOrgReasonStatistics", false), 043 REASON_SUMMARY_REPORT("ReasonSummaryReport", BCAF, REASON, "BudgetOrgReasonSummary", false), 044 SALARY_STATISTICS_REPORT("SalaryStatisticsReport", BCAF, OBJECT_CODE, "BudgetOrgSalaryStatistics", true), 045 SALARY_SUMMARY_REPORT("SalarySummaryReport", BCAF, OBJECT_CODE, "BudgetOrgSalarySummary", false), 046 SUBFUND_SUMMARY_REPORT("SubFundSummaryReport", PBGL, SUBFUND, "BudgetOrgSubFundSummary", true), 047 SYNCHRONIZATION_PROBLEMS_REPORT("SynchronizationProblemsReport", PBGL, ACCOUNT, "BudgetOrgSynchronizationProblems", true), 048 TWOPLG_LIST_REPORT("TwoPLGListReport", PBGL, ACCOUNT, "BudgetOrgTwoPLGList", true), 049 ACCOUNT_EXPORT("AccountExport", PBGL, SUBFUND, true), 050 MONTHLY_EXPORT("MonthlyExport", MONTH, SUBFUND, true), 051 FUNDING_EXPORT("FundingExport", BCAF, SUBFUND, true); 052 053 054 public final String reportModeName; 055 public final BuildMode reportBuildMode; 056 public final ReportSelectMode reportSelectMode; 057 public final String jasperFileName; 058 public final boolean lockThreshold; 059 public final boolean export; 060 061 /** 062 * Constructs a BudgetConstructionReportMode.java. 063 */ 064 private BudgetConstructionReportMode(final String reportModeName, final BuildMode reportBuildMode, final ReportSelectMode reportSelectMode, final String jasperFileName, final boolean lockThreshold) { 065 this.reportModeName = reportModeName; 066 this.reportBuildMode = reportBuildMode; 067 this.reportSelectMode = reportSelectMode; 068 this.jasperFileName = jasperFileName; 069 this.lockThreshold = lockThreshold; 070 this.export = false; 071 } 072 073 /** 074 * Constructs a BudgetConstructionReportMode.java. 075 */ 076 private BudgetConstructionReportMode(final String reportModeName, final BuildMode reportBuildMode, final ReportSelectMode reportSelectMode, final boolean export) { 077 this.reportModeName = reportModeName; 078 this.reportBuildMode = reportBuildMode; 079 this.reportSelectMode = reportSelectMode; 080 this.lockThreshold = false; 081 this.export = export; 082 this.jasperFileName = ""; 083 } 084 085 /** 086 * Returns the BudgetConstructionReportMode with name that matches given report mode name. 087 * 088 * @param reportModeName - report name to find BudgetConstructionReportMode for 089 * @return BudgetConstructionReportMode if found, or null 090 */ 091 public static BudgetConstructionReportMode getBudgetConstructionReportModeByName(String reportModeName) { 092 BudgetConstructionReportMode foundReportMode = null; 093 094 for(BudgetConstructionReportMode reportMode : EnumSet.allOf(BudgetConstructionReportMode.class)) { 095 if (reportMode.reportModeName.equals(reportModeName)) { 096 foundReportMode = reportMode; 097 break; 098 } 099 } 100 101 return foundReportMode; 102 } 103 }