Skip to content

Commit 9f74c99

Browse files
christophstroblmp911de
authored andcommitted
Add a round of contract annotations
1 parent a71d0c2 commit 9f74c99

File tree

81 files changed

+1122
-99
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+1122
-99
lines changed

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/BindableMongoExpression.java

+3
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.jspecify.annotations.Nullable;
2424
import org.springframework.data.mongodb.util.json.ParameterBindingDocumentCodec;
2525
import org.springframework.data.util.Lazy;
26+
import org.springframework.lang.Contract;
2627
import org.springframework.util.Assert;
2728
import org.springframework.util.ObjectUtils;
2829
import org.springframework.util.StringUtils;
@@ -92,6 +93,7 @@ public BindableMongoExpression(String expression, @Nullable CodecRegistryProvide
9293
* @param codecRegistry must not be {@literal null}.
9394
* @return new instance of {@link BindableMongoExpression}.
9495
*/
96+
@Contract("_ -> new")
9597
public BindableMongoExpression withCodecRegistry(CodecRegistry codecRegistry) {
9698
return new BindableMongoExpression(expressionString, () -> codecRegistry, args);
9799
}
@@ -102,6 +104,7 @@ public BindableMongoExpression withCodecRegistry(CodecRegistry codecRegistry) {
102104
* @param args must not be {@literal null}.
103105
* @return new instance of {@link BindableMongoExpression}.
104106
*/
107+
@Contract("_ -> new")
105108
public BindableMongoExpression bind(Object... args) {
106109
return new BindableMongoExpression(expressionString, codecRegistryProvider, args);
107110
}

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/MongoTransactionOptions.java

+2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import com.mongodb.ReadPreference;
2929
import com.mongodb.TransactionOptions;
3030
import com.mongodb.WriteConcern;
31+
import org.springframework.lang.Contract;
3132

3233
/**
3334
* Options to be applied within a specific transaction scope.
@@ -72,6 +73,7 @@ public interface MongoTransactionOptions
7273
* @return new instance of {@link MongoTransactionOptions} or this if {@literal fallbackOptions} is {@literal null} or
7374
* {@link #NONE}.
7475
*/
76+
@Contract("null -> this")
7577
default MongoTransactionOptions mergeWith(@Nullable MongoTransactionOptions fallbackOptions) {
7678

7779
if (fallbackOptions == null || MongoTransactionOptions.NONE.equals(fallbackOptions)) {

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ChangeStreamOptions.java

+12
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.jspecify.annotations.Nullable;
2727
import org.springframework.data.mongodb.core.aggregation.Aggregation;
2828
import org.springframework.data.mongodb.core.query.Collation;
29+
import org.springframework.lang.Contract;
2930
import org.springframework.util.Assert;
3031
import org.springframework.util.ClassUtils;
3132
import org.springframework.util.ObjectUtils;
@@ -248,6 +249,7 @@ private ChangeStreamOptionsBuilder() {}
248249
* @param collation must not be {@literal null} nor {@literal empty}.
249250
* @return this.
250251
*/
252+
@Contract("_ -> this")
251253
public ChangeStreamOptionsBuilder collation(Collation collation) {
252254

253255
Assert.notNull(collation, "Collation must not be null nor empty");
@@ -270,6 +272,7 @@ public ChangeStreamOptionsBuilder collation(Collation collation) {
270272
* {@literal null}.
271273
* @return this.
272274
*/
275+
@Contract("_ -> this")
273276
public ChangeStreamOptionsBuilder filter(Aggregation filter) {
274277

275278
Assert.notNull(filter, "Filter must not be null");
@@ -284,6 +287,7 @@ public ChangeStreamOptionsBuilder filter(Aggregation filter) {
284287
* @param filter must not be {@literal null} nor contain {@literal null} values.
285288
* @return this.
286289
*/
290+
@Contract("_ -> this")
287291
public ChangeStreamOptionsBuilder filter(Document... filter) {
288292

289293
Assert.noNullElements(filter, "Filter must not contain null values");
@@ -299,6 +303,7 @@ public ChangeStreamOptionsBuilder filter(Document... filter) {
299303
* @param resumeToken must not be {@literal null}.
300304
* @return this.
301305
*/
306+
@Contract("_ -> this")
302307
public ChangeStreamOptionsBuilder resumeToken(BsonValue resumeToken) {
303308

304309
Assert.notNull(resumeToken, "ResumeToken must not be null");
@@ -328,6 +333,7 @@ public ChangeStreamOptionsBuilder returnFullDocumentOnUpdate() {
328333
* @param lookup must not be {@literal null}.
329334
* @return this.
330335
*/
336+
@Contract("_ -> this")
331337
public ChangeStreamOptionsBuilder fullDocumentLookup(FullDocument lookup) {
332338

333339
Assert.notNull(lookup, "Lookup must not be null");
@@ -343,6 +349,7 @@ public ChangeStreamOptionsBuilder fullDocumentLookup(FullDocument lookup) {
343349
* @return this.
344350
* @since 4.0
345351
*/
352+
@Contract("_ -> this")
346353
public ChangeStreamOptionsBuilder fullDocumentBeforeChangeLookup(FullDocumentBeforeChange lookup) {
347354

348355
Assert.notNull(lookup, "Lookup must not be null");
@@ -368,6 +375,7 @@ public ChangeStreamOptionsBuilder returnFullDocumentBeforeChange() {
368375
* @param resumeTimestamp must not be {@literal null}.
369376
* @return this.
370377
*/
378+
@Contract("_ -> this")
371379
public ChangeStreamOptionsBuilder resumeAt(Instant resumeTimestamp) {
372380

373381
Assert.notNull(resumeTimestamp, "ResumeTimestamp must not be null");
@@ -383,6 +391,7 @@ public ChangeStreamOptionsBuilder resumeAt(Instant resumeTimestamp) {
383391
* @return this.
384392
* @since 2.2
385393
*/
394+
@Contract("_ -> this")
386395
public ChangeStreamOptionsBuilder resumeAt(BsonTimestamp resumeTimestamp) {
387396

388397
Assert.notNull(resumeTimestamp, "ResumeTimestamp must not be null");
@@ -398,6 +407,7 @@ public ChangeStreamOptionsBuilder resumeAt(BsonTimestamp resumeTimestamp) {
398407
* @return this.
399408
* @since 2.2
400409
*/
410+
@Contract("_ -> this")
401411
public ChangeStreamOptionsBuilder resumeAfter(BsonValue resumeToken) {
402412

403413
resumeToken(resumeToken);
@@ -413,6 +423,7 @@ public ChangeStreamOptionsBuilder resumeAfter(BsonValue resumeToken) {
413423
* @return this.
414424
* @since 2.2
415425
*/
426+
@Contract("_ -> this")
416427
public ChangeStreamOptionsBuilder startAfter(BsonValue resumeToken) {
417428

418429
resumeToken(resumeToken);
@@ -424,6 +435,7 @@ public ChangeStreamOptionsBuilder startAfter(BsonValue resumeToken) {
424435
/**
425436
* @return the built {@link ChangeStreamOptions}
426437
*/
438+
@Contract("-> new")
427439
public ChangeStreamOptions build() {
428440

429441
ChangeStreamOptions options = new ChangeStreamOptions();

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/CollectionOptions.java

+7
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.springframework.data.mongodb.core.timeseries.GranularityDefinition;
2828
import org.springframework.data.mongodb.core.validation.Validator;
2929
import org.springframework.data.util.Optionals;
30+
import org.springframework.lang.Contract;
3031
import org.springframework.util.Assert;
3132
import org.springframework.util.ObjectUtils;
3233

@@ -484,6 +485,7 @@ public static ValidationOptions none() {
484485
* @param validator can be {@literal null}.
485486
* @return new instance of {@link ValidationOptions}.
486487
*/
488+
@Contract("_ -> new")
487489
public ValidationOptions validator(@Nullable Validator validator) {
488490
return new ValidationOptions(validator, validationLevel, validationAction);
489491
}
@@ -494,6 +496,7 @@ public ValidationOptions validator(@Nullable Validator validator) {
494496
* @param validationLevel can be {@literal null}.
495497
* @return new instance of {@link ValidationOptions}.
496498
*/
499+
@Contract("_ -> new")
497500
public ValidationOptions validationLevel(ValidationLevel validationLevel) {
498501
return new ValidationOptions(validator, validationLevel, validationAction);
499502
}
@@ -504,6 +507,7 @@ public ValidationOptions validationLevel(ValidationLevel validationLevel) {
504507
* @param validationAction can be {@literal null}.
505508
* @return new instance of {@link ValidationOptions}.
506509
*/
510+
@Contract("_ -> new")
507511
public ValidationOptions validationAction(ValidationAction validationAction) {
508512
return new ValidationOptions(validator, validationLevel, validationAction);
509513
}
@@ -678,6 +682,7 @@ public static TimeSeriesOptions timeSeries(String timeField) {
678682
* @param metaField must not be {@literal null}.
679683
* @return new instance of {@link TimeSeriesOptions}.
680684
*/
685+
@Contract("_ -> new")
681686
public TimeSeriesOptions metaField(String metaField) {
682687
return new TimeSeriesOptions(timeField, metaField, granularity, expireAfter);
683688
}
@@ -689,6 +694,7 @@ public TimeSeriesOptions metaField(String metaField) {
689694
* @return new instance of {@link TimeSeriesOptions}.
690695
* @see Granularity
691696
*/
697+
@Contract("_ -> new")
692698
public TimeSeriesOptions granularity(GranularityDefinition granularity) {
693699
return new TimeSeriesOptions(timeField, metaField, granularity, expireAfter);
694700
}
@@ -701,6 +707,7 @@ public TimeSeriesOptions granularity(GranularityDefinition granularity) {
701707
* @see com.mongodb.client.model.CreateCollectionOptions#expireAfter(long, java.util.concurrent.TimeUnit)
702708
* @since 4.4
703709
*/
710+
@Contract("_ -> new")
704711
public TimeSeriesOptions expireAfter(Duration ttl) {
705712
return new TimeSeriesOptions(timeField, metaField, granularity, ttl);
706713
}

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/DefaultBulkOperations.java

+12
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import org.springframework.data.mongodb.core.query.Update;
4242
import org.springframework.data.mongodb.core.query.UpdateDefinition;
4343
import org.springframework.data.util.Pair;
44+
import org.springframework.lang.Contract;
4445
import org.springframework.util.Assert;
4546

4647
import com.mongodb.MongoBulkWriteException;
@@ -115,6 +116,7 @@ void setDefaultWriteConcern(@Nullable WriteConcern defaultWriteConcern) {
115116
}
116117

117118
@Override
119+
@Contract("_ -> this")
118120
public BulkOperations insert(Object document) {
119121

120122
Assert.notNull(document, "Document must not be null");
@@ -127,6 +129,7 @@ public BulkOperations insert(Object document) {
127129
}
128130

129131
@Override
132+
@Contract("_ -> this")
130133
public BulkOperations insert(List<? extends Object> documents) {
131134

132135
Assert.notNull(documents, "Documents must not be null");
@@ -137,6 +140,7 @@ public BulkOperations insert(List<? extends Object> documents) {
137140
}
138141

139142
@Override
143+
@Contract("_, _ -> this")
140144
public BulkOperations updateOne(Query query, UpdateDefinition update) {
141145

142146
Assert.notNull(query, "Query must not be null");
@@ -146,6 +150,7 @@ public BulkOperations updateOne(Query query, UpdateDefinition update) {
146150
}
147151

148152
@Override
153+
@Contract("_ -> this")
149154
public BulkOperations updateOne(List<Pair<Query, UpdateDefinition>> updates) {
150155

151156
Assert.notNull(updates, "Updates must not be null");
@@ -158,6 +163,7 @@ public BulkOperations updateOne(List<Pair<Query, UpdateDefinition>> updates) {
158163
}
159164

160165
@Override
166+
@Contract("_, _ -> this")
161167
public BulkOperations updateMulti(Query query, UpdateDefinition update) {
162168

163169
Assert.notNull(query, "Query must not be null");
@@ -169,6 +175,7 @@ public BulkOperations updateMulti(Query query, UpdateDefinition update) {
169175
}
170176

171177
@Override
178+
@Contract("_ -> this")
172179
public BulkOperations updateMulti(List<Pair<Query, UpdateDefinition>> updates) {
173180

174181
Assert.notNull(updates, "Updates must not be null");
@@ -181,11 +188,13 @@ public BulkOperations updateMulti(List<Pair<Query, UpdateDefinition>> updates) {
181188
}
182189

183190
@Override
191+
@Contract("_, _ -> this")
184192
public BulkOperations upsert(Query query, UpdateDefinition update) {
185193
return update(query, update, true, true);
186194
}
187195

188196
@Override
197+
@Contract("_ -> this")
189198
public BulkOperations upsert(List<Pair<Query, Update>> updates) {
190199

191200
for (Pair<Query, Update> update : updates) {
@@ -196,6 +205,7 @@ public BulkOperations upsert(List<Pair<Query, Update>> updates) {
196205
}
197206

198207
@Override
208+
@Contract("_ -> this")
199209
public BulkOperations remove(Query query) {
200210

201211
Assert.notNull(query, "Query must not be null");
@@ -209,6 +219,7 @@ public BulkOperations remove(Query query) {
209219
}
210220

211221
@Override
222+
@Contract("_ -> this")
212223
public BulkOperations remove(List<Query> removes) {
213224

214225
Assert.notNull(removes, "Removals must not be null");
@@ -221,6 +232,7 @@ public BulkOperations remove(List<Query> removes) {
221232
}
222233

223234
@Override
235+
@Contract("_, _, _ -> this")
224236
public BulkOperations replaceOne(Query query, Object replacement, FindAndReplaceOptions options) {
225237

226238
Assert.notNull(query, "Query must not be null");

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/DefaultReactiveBulkOperations.java

+9
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package org.springframework.data.mongodb.core;
1717

18+
import org.springframework.lang.Contract;
1819
import reactor.core.publisher.Flux;
1920
import reactor.core.publisher.Mono;
2021

@@ -107,6 +108,7 @@ void setDefaultWriteConcern(@Nullable WriteConcern defaultWriteConcern) {
107108
}
108109

109110
@Override
111+
@Contract("_ -> this")
110112
public ReactiveBulkOperations insert(Object document) {
111113

112114
Assert.notNull(document, "Document must not be null");
@@ -120,6 +122,7 @@ public ReactiveBulkOperations insert(Object document) {
120122
}
121123

122124
@Override
125+
@Contract("_ -> this")
123126
public ReactiveBulkOperations insert(List<? extends Object> documents) {
124127

125128
Assert.notNull(documents, "Documents must not be null");
@@ -130,6 +133,7 @@ public ReactiveBulkOperations insert(List<? extends Object> documents) {
130133
}
131134

132135
@Override
136+
@Contract("_, _, _ -> this")
133137
public ReactiveBulkOperations updateOne(Query query, UpdateDefinition update) {
134138

135139
Assert.notNull(query, "Query must not be null");
@@ -140,6 +144,7 @@ public ReactiveBulkOperations updateOne(Query query, UpdateDefinition update) {
140144
}
141145

142146
@Override
147+
@Contract("_, _ -> this")
143148
public ReactiveBulkOperations updateMulti(Query query, UpdateDefinition update) {
144149

145150
Assert.notNull(query, "Query must not be null");
@@ -150,11 +155,13 @@ public ReactiveBulkOperations updateMulti(Query query, UpdateDefinition update)
150155
}
151156

152157
@Override
158+
@Contract("_, _ -> this")
153159
public ReactiveBulkOperations upsert(Query query, UpdateDefinition update) {
154160
return update(query, update, true, true);
155161
}
156162

157163
@Override
164+
@Contract("_ -> this")
158165
public ReactiveBulkOperations remove(Query query) {
159166

160167
Assert.notNull(query, "Query must not be null");
@@ -169,6 +176,7 @@ public ReactiveBulkOperations remove(Query query) {
169176
}
170177

171178
@Override
179+
@Contract("_ -> this")
172180
public ReactiveBulkOperations remove(List<Query> removes) {
173181

174182
Assert.notNull(removes, "Removals must not be null");
@@ -181,6 +189,7 @@ public ReactiveBulkOperations remove(List<Query> removes) {
181189
}
182190

183191
@Override
192+
@Contract("_, _, _ -> this")
184193
public ReactiveBulkOperations replaceOne(Query query, Object replacement, FindAndReplaceOptions options) {
185194

186195
Assert.notNull(query, "Query must not be null");

0 commit comments

Comments
 (0)