1616
1717package com .google .cloud ;
1818
19+ import static com .google .common .base .Preconditions .checkNotNull ;
1920import static com .google .common .base .Preconditions .checkState ;
2021
2122import java .util .LinkedList ;
2223import java .util .List ;
2324
2425/**
25- * This class holds a single result of a batch call. {@code T} is the type of the result and {@code
26- * 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+ *
2731 */
2832public abstract class BatchResult <T , E extends BaseServiceException > {
2933
@@ -44,7 +48,7 @@ public boolean completed() {
4448 * Returns the result of this call.
4549 *
4650 * @throws IllegalStateException if the batch has not been completed yet
47- * @throws E if an error occurred when processing this request
51+ * @throws E if an error occurred when processing the batch request
4852 */
4953 public T get () throws E {
5054 checkState (completed (), "Batch has not been completed yet" );
@@ -60,18 +64,16 @@ public T get() throws E {
6064 * @throws IllegalStateException if the batch has been completed already
6165 */
6266 public void notify (Callback <T , E > callback ) {
63- if (completed ) {
64- 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()"
6568 + " method should be done prior to submitting the batch." );
66- }
6769 toBeNotified .add (callback );
6870 }
6971
7072 /**
7173 * Sets an error and status as completed. Notifies all callbacks.
7274 */
7375 protected void error (E error ) {
74- this .error = error ;
76+ this .error = checkNotNull ( error ) ;
7577 this .completed = true ;
7678 for (Callback <T , E > callback : toBeNotified ) {
7779 callback .error (error );
0 commit comments