27
27
import java .util .Collection ;
28
28
import java .util .List ;
29
29
30
- class OperationIterable < T > implements MongoIterable < T > {
30
+ import static org . bson . assertions . Assertions . notNull ;
31
31
32
+ class OperationIterable <T > implements MongoIterable <T > {
32
33
private final AsyncReadOperation <? extends AsyncBatchCursor <T >> operation ;
33
34
private final ReadPreference readPreference ;
34
35
private final AsyncOperationExecutor executor ;
35
36
36
37
OperationIterable (final AsyncReadOperation <? extends AsyncBatchCursor <T >> operation , final ReadPreference readPreference ,
37
38
final AsyncOperationExecutor executor ) {
38
- this .operation = operation ;
39
- this .readPreference = readPreference ;
40
- this .executor = executor ;
39
+ this .operation = notNull ( " operation" , operation ) ;
40
+ this .readPreference = notNull ( " readPreference" , readPreference ) ;
41
+ this .executor = notNull ( " executor" , executor ) ;
41
42
}
42
43
43
44
@ Override
44
45
public void forEach (final Block <? super T > block , final SingleResultCallback <Void > callback ) {
46
+ notNull ("block" , block );
47
+ notNull ("callback" , callback );
45
48
batchCursor (new SingleResultCallback <AsyncBatchCursor <T >>() {
46
49
@ Override
47
50
public void onResult (final AsyncBatchCursor <T > batchCursor , final Throwable t ) {
@@ -56,6 +59,8 @@ public void onResult(final AsyncBatchCursor<T> batchCursor, final Throwable t) {
56
59
57
60
@ Override
58
61
public <A extends Collection <? super T >> void into (final A target , final SingleResultCallback <A > callback ) {
62
+ notNull ("target" , target );
63
+ notNull ("callback" , callback );
59
64
batchCursor (new SingleResultCallback <AsyncBatchCursor <T >>() {
60
65
@ Override
61
66
public void onResult (final AsyncBatchCursor <T > batchCursor , final Throwable t ) {
@@ -84,6 +89,7 @@ public void onResult(final Void result, final Throwable t) {
84
89
85
90
@ Override
86
91
public void first (final SingleResultCallback <T > callback ) {
92
+ notNull ("callback" , callback );
87
93
batchCursor (new SingleResultCallback <AsyncBatchCursor <T >>() {
88
94
@ Override
89
95
public void onResult (final AsyncBatchCursor <T > batchCursor , final Throwable t ) {
@@ -122,6 +128,7 @@ public OperationIterable<T> batchSize(final int batchSize) {
122
128
@ SuppressWarnings ("unchecked" )
123
129
@ Override
124
130
public void batchCursor (final SingleResultCallback <AsyncBatchCursor <T >> callback ) {
131
+ notNull ("callback" , callback );
125
132
executor .execute ((AsyncReadOperation <AsyncBatchCursor <T >>) operation , readPreference , callback );
126
133
}
127
134
0 commit comments