1 /*
2 * Copyright 2007 The Kuali Foundation
3 *
4 * Licensed under the Educational Community License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.opensource.org/licenses/ecl2.php
9 *
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.ole.gl.batch.service;
17
18 import java.io.File;
19 import java.io.InputStream;
20 import java.util.List;
21
22 import org.kuali.ole.gl.batch.service.impl.EnterpriseFeederStatus;
23 import org.kuali.ole.sys.Message;
24
25 /**
26 * A service that is used to provide notification about the status of an enterprise feed. The implementation may use a variety of
27 * other services to perform notification, ranging from simply logging data to sending emails, etc.
28 */
29 public interface EnterpriseFeederNotificationService {
30 /**
31 * Performs notification about the status of the upload (i.e. feeding) of a single file set (i.e. done file, data file, and
32 * recon file).
33 *
34 * @param feederProcessName The name of the feeder process; this may correspond to the name of the Spring definition of the
35 * feeder step, but each implementation may define how to use the value of this parameter and/or restrictions on its
36 * value.
37 * @param event The event/status of the upload of the file set
38 * @param doneFile The done file
39 * @param dataFile The data file
40 * @param reconFile The recon file
41 * @param errorMessages Any error messages for which to provide notification
42 */
43 public void notifyFileFeedStatus(String feederProcessName, EnterpriseFeederStatus status, File doneFile, File dataFile, File reconFile, List<Message> errorMessages);
44
45
46 /**
47 * Performs notification about the status of the upload (i.e. feeding) of a single file set (i.e. done file, data file, and
48 * recon file). This method is useful when the file sets are not <b>NOTE:</b> the CALLER MUST CLOSE all of the input streams
49 * that are passed in. In addition, the input streams may be used by implementations of this method, and no assumption about the
50 * state of the input streams should be made after this method returns.
51 *
52 * @param feederProcessName The name of the feeder process; this may correspond to the name of the Spring definition of the
53 * feeder step, but each implementation may define how to use the value of this parameter and/or restrictions on its
54 * value.
55 * @param event The event/status of the upload of the file set
56 * @param doneFileDescription The description of the done file to be output during notification
57 * @param doneFileContents An input stream for the contents of the done file. If the implementation does not require the
58 * contents of the file, then <code>null</code> may be passed in.
59 * @param dataFileDescription The description of the done file to be output during notification
60 * @param dataFileContents An input stream for the contents of the data file. If the implementation does not require the
61 * contents of the file, then <code>null</code> may be passed in.
62 * @param reconFileDescription The description of the done file to be output during notification
63 * @param reconFileContents An input stream for the contents of the recon file. If the implementation does not require the
64 * contents of the file, then <code>null</code> may be passed in.
65 * @param errorMessages Any error messages for which to provide notification
66 */
67 public void notifyFileFeedStatus(String feederProcessName, EnterpriseFeederStatus status, String doneFileDescription, InputStream doneFileContents, String dataFileDescription, InputStream dataFileContents, String reconFileDescription, InputStream reconFileContents, List<Message> errorMessages);
68
69 /**
70 * Generates the status message that would be generated by a call to notifyFileFeedStatus with the same parameters.
71 *
72 * @param feederProcessName The name of the feeder process; this may correspond to the name of the Spring definition of the
73 * feeder step, but each implementation may define how to use the value of this parameter and/or restrictions on its
74 * value.
75 * @param event The event/status of the upload of the file set
76 * @param doneFile The done file
77 * @param dataFile The data file
78 * @param reconFile The recon file
79 * @param errorMessages Any error messages for which to provide notification
80 */
81 public String getFileFeedStatusMessage(String feederProcessName, EnterpriseFeederStatus status, File doneFile, File dataFile, File reconFile, List<Message> errorMessages);
82
83 /**
84 * Generates the status message that would be generated by a call to notifyFileFeedStatus with the same parameters. <b>NOTE:</b>
85 * the CALLER MUST CLOSE all of the input streams that are passed in. In addition, the input streams may be used by
86 * implementations of this method, and no assumption about the state of the input streams should be made after this method
87 * returns.
88 *
89 * @param feederProcessName The name of the feeder process; this may correspond to the name of the Spring definition of the
90 * feeder step, but each implementation may define how to use the value of this parameter and/or restrictions on its
91 * value.
92 * @param event The event/status of the upload of the file set
93 * @param doneFileDescription The description of the done file to be output during notification
94 * @param doneFileContents An input stream for the contents of the done file. If the implementation does not require the
95 * contents of the file, then <code>null</code> may be passed in.
96 * @param dataFileDescription The description of the done file to be output during notification
97 * @param dataFileContents An input stream for the contents of the data file. If the implementation does not require the
98 * contents of the file, then <code>null</code> may be passed in.
99 * @param reconFileDescription The description of the done file to be output during notification
100 * @param reconFileContents An input stream for the contents of the recon file. If the implementation does not require the
101 * contents of the file, then <code>null</code> may be passed in.
102 * @param errorMessages Any error messages for which to provide notification
103 */
104 public String getFileFeedStatusMessage(String feederProcessName, EnterpriseFeederStatus status, String doneFileDescription, InputStream doneFileContents, String dataFileDescription, InputStream dataFileContents, String reconFileDescription, InputStream reconFileContents, List<Message> errorMessages);
105 }