23
23
import java .util .List ;
24
24
25
25
/**
26
- * This class holds a single result of a batch call. {@code T} is the type of the result and {@code
27
- * E} is the type of the service-dependent exception thrown when a processing error occurs.
26
+ * This class holds a single result of a batch call. The class is not thread-safe.
27
+ *
28
+ * @param <T> the type of the result
29
+ * @param <E> the type of the service-dependent exception thrown when a processing error occurs
30
+ *
28
31
*/
29
32
public abstract class BatchResult <T , E extends BaseServiceException > {
30
33
@@ -45,7 +48,7 @@ public boolean completed() {
45
48
* Returns the result of this call.
46
49
*
47
50
* @throws IllegalStateException if the batch has not been completed yet
48
- * @throws E if an error occurred when processing this request
51
+ * @throws E if an error occurred when processing the batch request
49
52
*/
50
53
public T get () throws E {
51
54
checkState (completed (), "Batch has not been completed yet" );
@@ -61,18 +64,16 @@ public T get() throws E {
61
64
* @throws IllegalStateException if the batch has been completed already
62
65
*/
63
66
public void notify (Callback <T , E > callback ) {
64
- if (completed ) {
65
- throw new IllegalStateException ("The batch has been completed. All the calls to the notify()"
67
+ checkState (!completed , "The batch has been completed. All the calls to the notify()"
66
68
+ " method should be done prior to submitting the batch." );
67
- }
68
69
toBeNotified .add (callback );
69
70
}
70
71
71
72
/**
72
73
* Sets an error and status as completed. Notifies all callbacks.
73
74
*/
74
75
protected void error (E error ) {
75
- this .error = error ;
76
+ this .error = checkNotNull ( error ) ;
76
77
this .completed = true ;
77
78
for (Callback <T , E > callback : toBeNotified ) {
78
79
callback .error (error );
0 commit comments