1 /*
2 * Copyright 2010 The Kuali Foundation
3 *
4 * Licensed under the Educational Community License, Version 2.0 (the
5 * "License"); you may not use this file except in compliance with the
6 * License. You may obtain a copy of the License at
7 *
8 * http://www.osedu.org/licenses/ECL-2.0
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
13 * implied. See the License for the specific language governing
14 * permissions and limitations under the License.
15 */
16 package org.kuali.student.enrollment.batchjobresults.infc;
17
18 import java.util.List;
19 import org.kuali.student.r2.common.dto.ContextInfo;
20 import org.kuali.student.r2.common.infc.Attribute;
21 import org.kuali.student.r2.common.infc.IdEntity;
22 import org.kuali.student.r2.common.infc.RichText;
23
24 /**
25 * Object that holds the results of a batch job
26 *
27 * @author nwright
28 */
29 public interface BatchJobResult
30 extends IdEntity {
31
32 /**
33 * The parameters or options specified when the batch job was run
34 *
35 * Note the list may be empty but it cannot be null
36 *
37 * @name Parameters
38 * @readOnly
39 * @required
40 * @impl set during the createBatchJobResult operation
41 */
42 public List<? extends Attribute> getParameters();
43
44 /**
45 * The context under which this batch job was run
46 *
47 * @name Context
48 * @readOnly
49 * @required
50 * @impl set during the createBatchJobResult operation
51 */
52 public ContextInfo getContext();
53
54 /**
55 * Any global results of running the batch job
56 *
57 * This may be a number or a count or a newly created id.
58 *
59 * This is in addition to individual Result Items that may be created.
60 *
61 * Note the list may be empty but like other lists it must not be null
62 * @name Parameters
63 */
64 public List<? extends Attribute> getGlobalResults();
65
66 /**
67 * Number of items processed
68 *
69 * Used to indicate the progress of the batch job
70 *
71 * The batch job does not have to update this field every time it processes
72 * a job it may decide to update it every 10 or 100 or 1000 items processed.
73 *
74 * This can be null if the job has not started yet or there are no items
75 * This may or may not correspond with the corresponding Result Items that get created
76 *
77 * @name Items Processed
78 */
79 public Integer getItemsProcessed();
80
81 /**
82 * Number of items expected to be processed
83 *
84 * @name Items Expected
85 * @readOnly
86 * @impl set during the #rolloverSoc operation
87 */
88 public Integer getItemsExpected();
89
90 /**
91 * Messages describing details of the status.
92 *
93 * Often left null if the status is that it is complete.
94 *
95 * @name Message
96 * @readOnly
97 * @impl set during the #rolloverSoc operation
98 */
99 public RichText getMessage();
100 }