View Javadoc
1   package net.sf.appstatus.core.batch;
2   
3   import java.util.List;
4   import java.util.Properties;
5   
6   import net.sf.appstatus.core.AppStatus;
7   
8   /**
9    *
10   * @author Nicolas Richeton
11   *
12   */
13  public interface IBatchManager {
14  
15  	/**
16  	 * Removes batches older than 6 months (default), or older than value
17  	 * specified in configuration.
18  	 */
19  	public int REMOVE_OLD = 1;
20  
21  	/**
22  	 * Removes all jobs with no error or rejects.
23  	 */
24  	public int REMOVE_SUCCESS = 2;
25  
26  	/**
27  	 * Creates and adds a new Batch to the batch manager.
28  	 * <p>
29  	 * If the batch already exists (same uuid). The existing one is returned.
30  	 *
31  	 * <p>
32  	 * NOTE: This method is not intended to be called directly.
33  	 *
34  	 * @see AppStatus#getBatchProgressMonitor()
35  	 *
36  	 * @param name
37  	 * @param group
38  	 * @param uuid
39  	 * @return new or existing batch object.
40  	 *
41  	 */
42  	IBatch addBatch(String name, String group, String uuid);
43  
44  	/**
45  	 * Ordered by update date DESC
46  	 * 
47  	 * @return
48  	 */
49  
50  	List<IBatch> getBatches(String group, String name);
51  
52  	/**
53  	 * Get current configuration.
54  	 *
55  	 * @return
56  	 */
57  	Properties getConfiguration();
58  
59  	/**
60  	 * Ordered by update date DESC
61  	 * 
62  	 * @return
63  	 */
64  	List<IBatch> getErrorBatches();
65  
66  	/**
67  	 * Ordered by update date DESC
68  	 * 
69  	 * @return
70  	 */
71  
72  	List<IBatch> getFinishedBatches();
73  
74  	/**
75  	 * Returns the batch monitor for this batch.
76  	 * <p>
77  	 * The same progress monitor is always returned. It is expected that only a
78  	 * single thread updates the monitor.
79  	 *
80  	 * @param batch
81  	 * @return
82  	 */
83  	IBatchProgressMonitor getMonitor(IBatch batch);
84  
85  	/**
86  	 * Returns the list of batchs which are currently running.
87  	 *
88  	 * @return
89  	 */
90  	List<IBatch> getRunningBatches();
91  
92  	void init();
93  
94  	/**
95  	 * Removes all jobs matching the scope value.
96  	 *
97  	 * @param scope
98  	 *            {@value #REMOVE_OLD} or {@link #REMOVE_SUCCESS}
99  	 */
100 	void removeAllBatches(int scope);
101 
102 	/**
103 	 * Removes a specific job.
104 	 *
105 	 * @param b
106 	 */
107 	void removeBatch(String uuid);
108 
109 	/**
110 	 * Inject configuration for service manager.
111 	 *
112 	 * @param configuration
113 	 */
114 	void setConfiguration(Properties configuration);
115 }