01: /*
02: * Copyright 2005-2007 The Kuali Foundation.
03: *
04: * Licensed under the Educational Community License, Version 1.0 (the "License");
05: * you may not use this file except in compliance with the License.
06: * You may obtain a copy of the License at
07: *
08: * http://www.opensource.org/licenses/ecl1.php
09: *
10: * Unless required by applicable law or agreed to in writing, software
11: * distributed under the License is distributed on an "AS IS" BASIS,
12: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13: * See the License for the specific language governing permissions and
14: * limitations under the License.
15: */
16: package org.kuali.module.gl.service;
17:
18: import org.kuali.core.service.DateTimeService;
19: import org.kuali.module.gl.batch.collector.CollectorBatch;
20: import org.kuali.module.gl.bo.OriginEntryGroup;
21: import org.kuali.module.gl.util.CollectorReportData;
22: import org.kuali.module.gl.util.ScrubberStatus;
23:
24: /**
25: * An interface declaring methods needed to run the scrubber
26: */
27: public interface ScrubberService {
28:
29: /**
30: * Nightly process to scrub incoming GL transactions before posting to GL tables
31: */
32: public void scrubEntries();
33:
34: /**
35: * Scrubs data read in by the Collector
36: *
37: * @param batch the data read by the Collector
38: * @param collectorReportData statistics about
39: * @param overrideOriginEntryService the implementation of origin entry service to use for this specific Collector scrub
40: * @param overrideOriginEntryGroupService the implementation of origin entry group service to use for this specific Collector scrub
41: * @return the status returned by the Scrubber
42: */
43: public ScrubberStatus scrubCollectorBatch(CollectorBatch batch,
44: CollectorReportData collectorReportData,
45: OriginEntryService overrideOriginEntryService,
46: OriginEntryGroupService overrideOriginEntryGroupService);
47:
48: /**
49: * This process will call the scrubber in a read only mode. It will scrub a single group, won't create any output in origin
50: * entry. It will create a the scrubber report
51: * @param group the origin entry group to scrub for report
52: * @param documentNumber the id of documents which generated origin entries that should be scrubbed
53: */
54: public void scrubGroupReportOnly(OriginEntryGroup group,
55: String documentNumber);
56:
57: /**
58: * Sets the dateTimeService attribute the ScrubberService implementation should use
59: *
60: * @param dateTimeService an implementation of dateTimeService to set
61: */
62: public void setDateTimeService(DateTimeService dateTimeService);
63: }
|