35
35
import com .mongodb .bulk .WriteRequest ;
36
36
import com .mongodb .client .model .BulkWriteOptions ;
37
37
import com .mongodb .client .model .CountOptions ;
38
+ import com .mongodb .client .model .CreateIndexOptions ;
38
39
import com .mongodb .client .model .DeleteManyModel ;
39
40
import com .mongodb .client .model .DeleteOneModel ;
40
41
import com .mongodb .client .model .DeleteOptions ;
42
+ import com .mongodb .client .model .DropIndexOptions ;
41
43
import com .mongodb .client .model .FindOneAndDeleteOptions ;
42
44
import com .mongodb .client .model .FindOneAndReplaceOptions ;
43
45
import com .mongodb .client .model .FindOneAndUpdateOptions ;
@@ -908,19 +910,32 @@ public void onResult(final List<String> result, final Throwable t) {
908
910
909
911
@ Override
910
912
public void createIndexes (final List <IndexModel > indexes , final SingleResultCallback <List <String >> callback ) {
911
- executeCreateIndexes (null , indexes , callback );
913
+ createIndexes (indexes , new CreateIndexOptions (), callback );
914
+ }
915
+
916
+ @ Override
917
+ public void createIndexes (final List <IndexModel > indexes , final CreateIndexOptions createIndexOptions ,
918
+ final SingleResultCallback <List <String >> callback ) {
919
+ executeCreateIndexes (null , indexes , createIndexOptions , callback );
912
920
}
913
921
914
922
@ Override
915
923
public void createIndexes (final ClientSession clientSession , final List <IndexModel > indexes ,
916
924
final SingleResultCallback <List <String >> callback ) {
925
+ createIndexes (clientSession , indexes , new CreateIndexOptions (), callback );
926
+ }
927
+
928
+ @ Override
929
+ public void createIndexes (final ClientSession clientSession , final List <IndexModel > indexes ,
930
+ final CreateIndexOptions createIndexOptions , final SingleResultCallback <List <String >> callback ) {
917
931
notNull ("clientSession" , clientSession );
918
- executeCreateIndexes (clientSession , indexes , callback );
932
+ executeCreateIndexes (clientSession , indexes , createIndexOptions , callback );
919
933
}
920
934
921
935
private void executeCreateIndexes (final ClientSession clientSession , final List <IndexModel > indexes ,
922
- final SingleResultCallback <List <String >> callback ) {
936
+ final CreateIndexOptions createIndexOptions , final SingleResultCallback <List <String >> callback ) {
923
937
notNull ("indexes" , indexes );
938
+ notNull ("createIndexOptions" , createIndexOptions );
924
939
925
940
List <IndexRequest > indexRequests = new ArrayList <IndexRequest >(indexes .size ());
926
941
for (IndexModel model : indexes ) {
@@ -947,7 +962,8 @@ private void executeCreateIndexes(final ClientSession clientSession, final List<
947
962
.partialFilterExpression (toBsonDocument (model .getOptions ().getPartialFilterExpression ()))
948
963
.collation (model .getOptions ().getCollation ()));
949
964
}
950
- final CreateIndexesOperation createIndexesOperation = new CreateIndexesOperation (getNamespace (), indexRequests , writeConcern );
965
+ final CreateIndexesOperation createIndexesOperation = new CreateIndexesOperation (getNamespace (), indexRequests , writeConcern )
966
+ .maxTime (createIndexOptions .getMaxTime (MILLISECONDS ), MILLISECONDS );
951
967
executor .execute (createIndexesOperation , clientSession , new SingleResultCallback <Void >() {
952
968
@ Override
953
969
public void onResult (final Void result , final Throwable t ) {
@@ -988,43 +1004,79 @@ private <TResult> ListIndexesIterable<TResult> createListIndexesIterable(final C
988
1004
989
1005
@ Override
990
1006
public void dropIndex (final String indexName , final SingleResultCallback <Void > callback ) {
991
- executeDropIndex (null , indexName , callback );
1007
+ dropIndex (indexName , new DropIndexOptions (), callback );
1008
+ }
1009
+
1010
+ @ Override
1011
+ public void dropIndex (final String indexName , final DropIndexOptions dropIndexOptions , final SingleResultCallback <Void > callback ) {
1012
+ executeDropIndex (null , indexName , dropIndexOptions , callback );
992
1013
}
993
1014
994
1015
@ Override
995
1016
public void dropIndex (final Bson keys , final SingleResultCallback <Void > callback ) {
996
- executeDropIndex (null , keys , callback );
1017
+ dropIndex (keys , new DropIndexOptions (), callback );
1018
+ }
1019
+
1020
+ @ Override
1021
+ public void dropIndex (final Bson keys , final DropIndexOptions dropIndexOptions , final SingleResultCallback <Void > callback ) {
1022
+ executeDropIndex (null , keys , dropIndexOptions , callback );
997
1023
}
998
1024
999
1025
@ Override
1000
1026
public void dropIndex (final ClientSession clientSession , final String indexName , final SingleResultCallback <Void > callback ) {
1027
+ dropIndex (clientSession , indexName , new DropIndexOptions (), callback );
1028
+ }
1029
+
1030
+ @ Override
1031
+ public void dropIndex (final ClientSession clientSession , final String indexName , final DropIndexOptions dropIndexOptions ,
1032
+ final SingleResultCallback <Void > callback ) {
1001
1033
notNull ("clientSession" , clientSession );
1002
- executeDropIndex (clientSession , indexName , callback );
1034
+ executeDropIndex (clientSession , indexName , dropIndexOptions , callback );
1003
1035
}
1004
1036
1005
1037
@ Override
1006
1038
public void dropIndex (final ClientSession clientSession , final Bson keys , final SingleResultCallback <Void > callback ) {
1039
+ dropIndex (clientSession , keys , new DropIndexOptions (), callback );
1040
+ }
1041
+
1042
+ @ Override
1043
+ public void dropIndex (final ClientSession clientSession , final Bson keys , final DropIndexOptions dropIndexOptions ,
1044
+ final SingleResultCallback <Void > callback ) {
1007
1045
notNull ("clientSession" , clientSession );
1008
- executeDropIndex (clientSession , keys , callback );
1046
+ executeDropIndex (clientSession , keys , dropIndexOptions , callback );
1009
1047
}
1010
1048
1011
1049
@ Override
1012
1050
public void dropIndexes (final SingleResultCallback <Void > callback ) {
1013
- dropIndex ("*" , callback );
1051
+ dropIndexes (new DropIndexOptions (), callback );
1052
+ }
1053
+
1054
+ @ Override
1055
+ public void dropIndexes (final DropIndexOptions dropIndexOptions , final SingleResultCallback <Void > callback ) {
1056
+ dropIndex ("*" , dropIndexOptions , callback );
1014
1057
}
1015
1058
1016
1059
@ Override
1017
1060
public void dropIndexes (final ClientSession clientSession , final SingleResultCallback <Void > callback ) {
1018
- dropIndex (clientSession , "*" , callback );
1061
+ dropIndexes (clientSession , new DropIndexOptions (), callback );
1062
+ }
1063
+
1064
+ @ Override
1065
+ public void dropIndexes (final ClientSession clientSession , final DropIndexOptions dropIndexOptions ,
1066
+ final SingleResultCallback <Void > callback ) {
1067
+ dropIndex (clientSession , "*" , dropIndexOptions , callback );
1019
1068
}
1020
1069
1021
- private void executeDropIndex (final ClientSession clientSession , final Bson keys , final SingleResultCallback <Void > callback ) {
1022
- executor .execute (new DropIndexOperation (namespace , keys .toBsonDocument (BsonDocument .class , codecRegistry ), writeConcern ),
1023
- clientSession , callback );
1070
+ private void executeDropIndex (final ClientSession clientSession , final Bson keys ,
1071
+ final DropIndexOptions dropIndexOptions , final SingleResultCallback <Void > callback ) {
1072
+ executor .execute (new DropIndexOperation (namespace , keys .toBsonDocument (BsonDocument .class , codecRegistry ), writeConcern )
1073
+ .maxTime (dropIndexOptions .getMaxTime (MILLISECONDS ), MILLISECONDS ), clientSession , callback );
1024
1074
}
1025
1075
1026
- private void executeDropIndex (final ClientSession clientSession , final String indexName , final SingleResultCallback <Void > callback ) {
1027
- executor .execute (new DropIndexOperation (namespace , indexName , writeConcern ), clientSession , callback );
1076
+ private void executeDropIndex (final ClientSession clientSession , final String indexName ,
1077
+ final DropIndexOptions dropIndexOptions , final SingleResultCallback <Void > callback ) {
1078
+ executor .execute (new DropIndexOperation (namespace , indexName , writeConcern )
1079
+ .maxTime (dropIndexOptions .getMaxTime (MILLISECONDS ), MILLISECONDS ), clientSession , callback );
1028
1080
}
1029
1081
1030
1082
@ Override
0 commit comments