/* * 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.gl.batch.service; import java.io.File; import org.kuali.kfs.gl.businessobject.Balance; import org.kuali.kfs.gl.businessobject.LedgerBalanceHistory; import org.kuali.kfs.gl.businessobject.OriginEntryInformation; /** * Interface for BalancingService */ public interface BalancingService { /** * Handle for batch processes to kick off balancing * @return boolean true when success */ public boolean runBalancing(); /** * @return input poster file. Returns null if no file found. */ public abstract File getPosterInputFile(); /** * @return output poster error file. Returns null if no file found. */ public abstract File getPosterErrorOutputFile(); /** * @return input reversal file. Returns null if no file found. */ public abstract File getReversalInputFile(); /** * @return output reversal error file. Returns null if no file found. */ public abstract File getReversalErrorOutputFile(); /** * @return input ICR file. Returns null if no file found. */ public abstract File getICRInputFile(); /** * @return output ICR error file. Returns null if no file found. */ public abstract File getICRErrorOutputFile(); /** * @return input ICR Encumbrance file. Returns null if no file found. */ public abstract File getICREncumbranceInputFile(); /** * @return output ICR Encumbrance error file. Returns null if no file found. */ public abstract File getICREncumbranceErrorOutputFile(); /** * @return system parameter for NUMBER_OF_PAST_FISCAL_YEARS_TO_CONSIDER */ public abstract int getPastFiscalYearsToConsider(); /** * @return system parameter for NUMBER_OF_COMPARISON_FAILURES_TO_PRINT_PER_REPORT */ public abstract int getComparisonFailuresToPrintPerReport(); /** * @param businessObjectName name of the BO for which to return the label * @return functional short labels for tables affected in this process */ public abstract String getShortTableLabel(String businessObjectName); /** * Gets an OriginEntryInformation for the parsed line. This needs to be handled separately for GL and Labor because Labor is a special case * of GL (positionNumber + emplid). Could be done with an OriginEntryHistory interface but in the interest of not mucking with * OriginEntries the is done with delegation. * @param inputLine line that was read from getPosterInputFilename * @param lineNumber line number we are currently reading from getPosterInputFilename * @return parsed line into an object as per inputLine parameter */ public abstract OriginEntryInformation getOriginEntry(String inputLine, int lineNumber); /** * Update the entry history table * @param mode of post, e.g. MODE_REVERSAL * @param originEntry representing the update details */ public abstract void updateEntryHistory(Integer postMode, OriginEntryInformation originEntry); /** * Updates the balance history table * @param originEntry representing the update details */ public abstract void updateBalanceHistory(Integer postMode, OriginEntryInformation originEntry); /** * Returns a Balance object for the parameters of the passed in LedgerBalanceHistory. Necessary for generic amount comparision since * it may be either labor or gl. * @param ledgerBalanceHistory to retrieve the Balance object for * @return balance object adhereing to the Balance interface */ public abstract Balance getBalance(LedgerBalanceHistory ledgerBalanceHistory); /** * 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. */ public abstract void clearPosterFileCache(); /** * Removes the data from the History tables. */ public abstract void clearHistories(); /** * Returns filenames used by process. Comma separated */ public abstract String getFilenames(); }