/*
* 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.service;
import org.kuali.kfs.gl.batch.CollectorBatch;
import org.kuali.kfs.gl.report.CollectorReportData;
import org.kuali.kfs.gl.service.impl.ScrubberStatus;
/**
* An interface declaring methods needed to run the scrubber
*/
public interface ScrubberService {
/**
* Nightly process to scrub incoming GL transactions before posting to GL tables
*/
public void scrubEntries();
/**
* Scrubs data read in by the Collector
*
* @param batch the data read by the Collector
* @param collectorReportData statistics about
* @param overrideOriginEntryService the implementation of origin entry service to use for this specific Collector scrub
* @param overrideOriginEntryGroupService the implementation of origin entry group service to use for this specific Collector scrub
* @return the status returned by the Scrubber
*/
public void scrubCollectorBatch(ScrubberStatus scrubberStatus, CollectorBatch batch, CollectorReportData collectorReportData);
/**
* This process will call the scrubber in a read only mode. It will scrub a single group, won't create any output in origin
* entry. It will create a the scrubber report
* @param group the origin entry group to scrub for report
* @param documentNumber the id of documents which generated origin entries that should be scrubbed
*/
public void scrubGroupReportOnly(String fileName, String documentNumber);
public void performDemerger();
}