View Javadoc
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 }