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 }