1 /* 2 * The Kuali Financial System, a comprehensive financial management system for higher education. 3 * 4 * Copyright 2005-2014 The Kuali Foundation 5 * 6 * This program is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU Affero General Public License as 8 * published by the Free Software Foundation, either version 3 of the 9 * License, or (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU Affero General Public License for more details. 15 * 16 * You should have received a copy of the GNU Affero General Public License 17 * along with this program. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 package org.kuali.kfs.gl.batch.service; 20 21 import java.io.File; 22 23 import org.kuali.kfs.gl.businessobject.Balance; 24 import org.kuali.kfs.gl.businessobject.LedgerBalanceHistory; 25 import org.kuali.kfs.gl.businessobject.OriginEntryInformation; 26 27 28 /** 29 * Interface for BalancingService 30 */ 31 public interface BalancingService { 32 /** 33 * Handle for batch processes to kick off balancing 34 * @return boolean true when success 35 */ 36 public boolean runBalancing(); 37 38 /** 39 * @return input poster file. Returns null if no file found. 40 */ 41 public abstract File getPosterInputFile(); 42 43 /** 44 * @return output poster error file. Returns null if no file found. 45 */ 46 public abstract File getPosterErrorOutputFile(); 47 48 /** 49 * @return input reversal file. Returns null if no file found. 50 */ 51 public abstract File getReversalInputFile(); 52 53 /** 54 * @return output reversal error file. Returns null if no file found. 55 */ 56 public abstract File getReversalErrorOutputFile(); 57 58 /** 59 * @return input ICR file. Returns null if no file found. 60 */ 61 public abstract File getICRInputFile(); 62 63 /** 64 * @return output ICR error file. Returns null if no file found. 65 */ 66 public abstract File getICRErrorOutputFile(); 67 68 /** 69 * @return input ICR Encumbrance file. Returns null if no file found. 70 */ 71 public abstract File getICREncumbranceInputFile(); 72 73 /** 74 * @return output ICR Encumbrance error file. Returns null if no file found. 75 */ 76 public abstract File getICREncumbranceErrorOutputFile(); 77 78 /** 79 * @return system parameter for NUMBER_OF_PAST_FISCAL_YEARS_TO_CONSIDER 80 */ 81 public abstract int getPastFiscalYearsToConsider(); 82 83 /** 84 * @return system parameter for NUMBER_OF_COMPARISON_FAILURES_TO_PRINT_PER_REPORT 85 */ 86 public abstract int getComparisonFailuresToPrintPerReport(); 87 88 /** 89 * @param businessObjectName name of the BO for which to return the label 90 * @return functional short labels for tables affected in this process 91 */ 92 public abstract String getShortTableLabel(String businessObjectName); 93 94 /** 95 * Gets an OriginEntryInformation for the parsed line. This needs to be handled separately for GL and Labor because Labor is a special case 96 * of GL (positionNumber + emplid). Could be done with an OriginEntryHistory interface but in the interest of not mucking with 97 * OriginEntries the is done with delegation. 98 * @param inputLine line that was read from getPosterInputFilename 99 * @param lineNumber line number we are currently reading from getPosterInputFilename 100 * @return parsed line into an object as per inputLine parameter 101 */ 102 public abstract OriginEntryInformation getOriginEntry(String inputLine, int lineNumber); 103 104 /** 105 * Update the entry history table 106 * @param mode of post, e.g. MODE_REVERSAL 107 * @param originEntry representing the update details 108 */ 109 public abstract void updateEntryHistory(Integer postMode, OriginEntryInformation originEntry); 110 111 /** 112 * Updates the balance history table 113 * @param originEntry representing the update details 114 */ 115 public abstract void updateBalanceHistory(Integer postMode, OriginEntryInformation originEntry); 116 117 /** 118 * Returns a Balance object for the parameters of the passed in LedgerBalanceHistory. Necessary for generic amount comparision since 119 * it may be either labor or gl. 120 * @param ledgerBalanceHistory to retrieve the Balance object for 121 * @return balance object adhereing to the Balance interface 122 */ 123 public abstract Balance getBalance(LedgerBalanceHistory ledgerBalanceHistory); 124 125 /** 126 * In order to avoid file system scans this class caches poster input and poster error filenames. In rare cases they may want to be reset. 127 */ 128 public abstract void clearPosterFileCache(); 129 130 /** 131 * Removes the data from the History tables. 132 */ 133 public abstract void clearHistories(); 134 135 /** 136 * Returns filenames used by process. Comma separated 137 */ 138 public abstract String getFilenames(); 139 }