Skip to content

Commit 90bb626

Browse files
christophstroblodrotbohm
authored andcommitted
DATAMONGO-1609 - Fix compile errors.
Still way to go: - Failures: 113, Errors: 836, Skipped: 16
1 parent 826d00a commit 90bb626

File tree

58 files changed

+266
-277
lines changed

Some content is hidden

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

58 files changed

+266
-277
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ public String ensureIndex(final IndexDefinition indexDefinition) {
120120
private MongoPersistentEntity<?> lookupPersistentEntity(Class<?> entityType, String collection) {
121121

122122
if (entityType != null) {
123-
return mapper.getMappingContext().getPersistentEntity(entityType);
123+
return mapper.getMappingContext().getRequiredPersistentEntity(entityType);
124124
}
125125

126126
Collection<? extends MongoPersistentEntity<?>> entities = mapper.getMappingContext().getPersistentEntities();

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -684,7 +684,7 @@ public <T> GeoResults<T> geoNear(NearQuery near, Class<T> entityClass, String co
684684
List<GeoResult<T>> result = new ArrayList<GeoResult<T>>(results.size());
685685

686686
int index = 0;
687-
int elementsToSkip = near.getSkip() != null ? near.getSkip() : 0;
687+
long elementsToSkip = near.getSkip() != null ? near.getSkip() : 0;
688688

689689
for (Object element : results) {
690690

@@ -2521,7 +2521,7 @@ public FindIterable<Document> prepare(FindIterable<Document> cursor) {
25212521

25222522
try {
25232523
if (query.getSkip() > 0) {
2524-
cursorToUse = cursorToUse.skip(query.getSkip());
2524+
cursorToUse = cursorToUse.skip((int)query.getSkip());
25252525
}
25262526
if (query.getLimit() > 0) {
25272527
cursorToUse = cursorToUse.limit(query.getLimit());

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

Lines changed: 36 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import java.util.List;
2828
import java.util.Map;
2929
import java.util.Map.Entry;
30+
import java.util.Optional;
3031
import java.util.Set;
3132
import java.util.function.Function;
3233
import java.util.stream.Collectors;
@@ -610,8 +611,8 @@ public <T> Mono<T> findById(Object id, Class<T> entityClass) {
610611
*/
611612
public <T> Mono<T> findById(Object id, Class<T> entityClass, String collectionName) {
612613

613-
MongoPersistentEntity<?> persistentEntity = mappingContext.getPersistentEntity(entityClass);
614-
MongoPersistentProperty idProperty = persistentEntity == null ? null : persistentEntity.getIdProperty();
614+
Optional<? extends MongoPersistentEntity<?>> persistentEntity = mappingContext.getPersistentEntity(entityClass);
615+
MongoPersistentProperty idProperty = persistentEntity.isPresent() ? persistentEntity.get().getIdProperty().orElse(null) : null;
615616

616617
String idKey = idProperty == null ? ID_FIELD : idProperty.getName();
617618

@@ -859,11 +860,7 @@ protected <T> Flux<T> doInsertAll(Collection<? extends T> listToSave, MongoWrite
859860
final Map<String, List<T>> elementsByCollection = new HashMap<String, List<T>>();
860861

861862
listToSave.forEach(element -> {
862-
MongoPersistentEntity<?> entity = mappingContext.getPersistentEntity(element.getClass());
863-
864-
if (entity == null) {
865-
throw new InvalidDataAccessApiUsageException("No PersistentEntity information found for " + element.getClass());
866-
}
863+
MongoPersistentEntity<?> entity = mappingContext.getRequiredPersistentEntity(element.getClass());
867864

868865
String collection = entity.getCollection();
869866
List<T> collectionElements = elementsByCollection.get(collection);
@@ -965,14 +962,14 @@ private <T> Mono<T> doSaveVersioned(T objectToSave, MongoPersistentEntity<?> ent
965962
ConvertingPropertyAccessor convertingAccessor = new ConvertingPropertyAccessor(
966963
entity.getPropertyAccessor(objectToSave), mongoConverter.getConversionService());
967964

968-
MongoPersistentProperty idProperty = entity.getIdProperty();
969-
MongoPersistentProperty versionProperty = entity.getVersionProperty();
965+
MongoPersistentProperty idProperty = entity.getIdProperty().orElseThrow(() -> new IllegalArgumentException("No id property present!"));
966+
MongoPersistentProperty versionProperty = entity.getVersionProperty().orElseThrow(() -> new IllegalArgumentException("No version property present!"));;
970967

971-
Object version = convertingAccessor.getProperty(versionProperty);
972-
Number versionNumber = convertingAccessor.getProperty(versionProperty, Number.class);
968+
Optional<Object> version = convertingAccessor.getProperty(versionProperty);
969+
Optional<Number> versionNumber = convertingAccessor.getProperty(versionProperty, Number.class);
973970

974971
// Fresh instance -> initialize version property
975-
if (version == null) {
972+
if (!version.isPresent()) {
976973
return doInsert(collectionName, objectToSave, mongoConverter);
977974
}
978975

@@ -983,7 +980,7 @@ private <T> Mono<T> doSaveVersioned(T objectToSave, MongoPersistentEntity<?> ent
983980
Query query = new Query(Criteria.where(idProperty.getName()).is(id).and(versionProperty.getName()).is(version));
984981

985982
// Bump version number
986-
convertingAccessor.setProperty(versionProperty, versionNumber.longValue() + 1);
983+
convertingAccessor.setProperty(versionProperty, Optional.of(versionNumber.orElse(0).longValue() + 1));
987984

988985
ReactiveMongoTemplate.this.maybeEmitEvent(new BeforeConvertEvent<T>(objectToSave, collectionName));
989986

@@ -1229,7 +1226,7 @@ protected Mono<UpdateResult> doUpdate(final String collectionName, final Query q
12291226
private void increaseVersionForUpdateIfNecessary(MongoPersistentEntity<?> persistentEntity, Update update) {
12301227

12311228
if (persistentEntity != null && persistentEntity.hasVersionProperty()) {
1232-
String versionFieldName = persistentEntity.getVersionProperty().getFieldName();
1229+
String versionFieldName = persistentEntity.getVersionProperty().get().getFieldName();
12331230
if (!update.modifies(versionFieldName)) {
12341231
update.inc(versionFieldName, 1L);
12351232
}
@@ -1242,7 +1239,7 @@ private boolean dbObjectContainsVersionProperty(Document document, MongoPersiste
12421239
return false;
12431240
}
12441241

1245-
return document.containsKey(persistentEntity.getVersionProperty().getFieldName());
1242+
return document.containsKey(persistentEntity.getVersionProperty().get().getFieldName());
12461243
}
12471244

12481245
/* (non-Javadoc)
@@ -1304,14 +1301,14 @@ private Entry<String, Object> extractIdPropertyAndValue(Object object) {
13041301
return Collections.singletonMap(ID_FIELD, ((Document) object).get(ID_FIELD)).entrySet().iterator().next();
13051302
}
13061303

1307-
MongoPersistentEntity<?> entity = mappingContext.getPersistentEntity(objectType);
1308-
MongoPersistentProperty idProp = entity == null ? null : entity.getIdProperty();
1304+
Optional<? extends MongoPersistentEntity<?>> entity = mappingContext.getPersistentEntity(objectType);
1305+
MongoPersistentProperty idProp = entity.isPresent() ? entity.get().getIdProperty().orElse(null) : null;
13091306

13101307
if (idProp == null) {
13111308
throw new MappingException("No id property found for object of type " + objectType);
13121309
}
13131310

1314-
Object idValue = entity.getPropertyAccessor(object).getProperty(idProp);
1311+
Object idValue = entity.get().getPropertyAccessor(object).getProperty(idProp);
13151312
return Collections.singletonMap(idProp.getFieldName(), idValue).entrySet().iterator().next();
13161313
}
13171314

@@ -1352,18 +1349,18 @@ private Query getIdInQueryFor(Collection<?> objects) {
13521349

13531350
private void assertUpdateableIdIfNotSet(Object entity) {
13541351

1355-
MongoPersistentEntity<?> persistentEntity = mappingContext.getPersistentEntity(entity.getClass());
1356-
MongoPersistentProperty idProperty = persistentEntity == null ? null : persistentEntity.getIdProperty();
1352+
Optional<? extends MongoPersistentEntity<?>> persistentEntity = mappingContext.getPersistentEntity(entity.getClass());
1353+
Optional<MongoPersistentProperty> idProperty = persistentEntity.isPresent() ? persistentEntity.get().getIdProperty() : Optional.empty();
13571354

1358-
if (idProperty == null) {
1355+
if (!idProperty.isPresent()) {
13591356
return;
13601357
}
13611358

1362-
Object idValue = persistentEntity.getPropertyAccessor(entity).getProperty(idProperty);
1359+
Optional<Object> idValue = persistentEntity.get().getPropertyAccessor(entity).getProperty(idProperty.get());
13631360

1364-
if (idValue == null && !MongoSimpleTypes.AUTOGENERATED_ID_TYPES.contains(idProperty.getType())) {
1361+
if (!idValue.isPresent() && !MongoSimpleTypes.AUTOGENERATED_ID_TYPES.contains(idProperty.get().getType())) {
13651362
throw new InvalidDataAccessApiUsageException(
1366-
String.format("Cannot autogenerate id of type %s for entity of type %s!", idProperty.getType().getName(),
1363+
String.format("Cannot autogenerate id of type %s for entity of type %s!", idProperty.get().getType().getName(),
13671364
entity.getClass().getName()));
13681365
}
13691366
}
@@ -1535,7 +1532,7 @@ protected Mono<MongoCollection<Document>> doCreateCollection(final String collec
15351532
*/
15361533
protected <T> Mono<T> doFindOne(String collectionName, Document query, Document fields, Class<T> entityClass) {
15371534

1538-
MongoPersistentEntity<?> entity = mappingContext.getPersistentEntity(entityClass);
1535+
Optional<? extends MongoPersistentEntity<?>> entity = mappingContext.getPersistentEntity(entityClass);
15391536
Document mappedQuery = queryMapper.getMappedObject(query, entity);
15401537
Document mappedFields = fields == null ? null : queryMapper.getMappedObject(fields, entity);
15411538

@@ -1585,7 +1582,7 @@ protected <T> Flux<T> doFind(String collectionName, Document query, Document fie
15851582
protected <S, T> Flux<T> doFind(String collectionName, Document query, Document fields, Class<S> entityClass,
15861583
FindPublisherPreparer preparer, DocumentCallback<T> objectCallback) {
15871584

1588-
MongoPersistentEntity<?> entity = mappingContext.getPersistentEntity(entityClass);
1585+
Optional<? extends MongoPersistentEntity<?>> entity = mappingContext.getPersistentEntity(entityClass);
15891586

15901587
Document mappedFields = queryMapper.getMappedFields(fields, entity);
15911588
Document mappedQuery = queryMapper.getMappedObject(query, entity);
@@ -1638,7 +1635,7 @@ protected <T> Mono<T> doFindAndRemove(String collectionName, Document query, Doc
16381635
serializeToJsonSafely(query), fields, sort, entityClass, collectionName));
16391636
}
16401637

1641-
MongoPersistentEntity<?> entity = mappingContext.getPersistentEntity(entityClass);
1638+
Optional<? extends MongoPersistentEntity<?>> entity = mappingContext.getPersistentEntity(entityClass);
16421639

16431640
return executeFindOneInternal(new FindAndRemoveCallback(queryMapper.getMappedObject(query, entity), fields, sort),
16441641
new ReadDocumentCallback<T>(this.mongoConverter, entityClass, collectionName), collectionName);
@@ -1654,11 +1651,11 @@ protected <T> Mono<T> doFindAndModify(String collectionName, Document query, Doc
16541651
optionsToUse = options;
16551652
}
16561653

1657-
MongoPersistentEntity<?> entity = mappingContext.getPersistentEntity(entityClass);
1654+
Optional<? extends MongoPersistentEntity<?>> entity = mappingContext.getPersistentEntity(entityClass);
16581655

16591656
return Mono.defer(() -> {
16601657

1661-
increaseVersionForUpdateIfNecessary(entity, update);
1658+
increaseVersionForUpdateIfNecessary(entity.get(), update);
16621659

16631660
Document mappedQuery = queryMapper.getMappedObject(query, entity);
16641661
Document mappedUpdate = updateMapper.getMappedObject(update.getUpdateObject(), entity);
@@ -1706,14 +1703,14 @@ private void populateIdIfNecessary(Object savedObject, Object id) {
17061703
}
17071704

17081705
ConversionService conversionService = mongoConverter.getConversionService();
1709-
MongoPersistentEntity<?> entity = mappingContext.getPersistentEntity(savedObject.getClass());
1706+
MongoPersistentEntity<?> entity = mappingContext.getRequiredPersistentEntity(savedObject.getClass());
17101707
PersistentPropertyAccessor accessor = entity.getPropertyAccessor(savedObject);
17111708

17121709
if (accessor.getProperty(idProp) != null) {
17131710
return;
17141711
}
17151712

1716-
new ConvertingPropertyAccessor(accessor, conversionService).setProperty(idProp, id);
1713+
new ConvertingPropertyAccessor(accessor, conversionService).setProperty(idProp, Optional.ofNullable(id));
17171714
}
17181715

17191716
private MongoCollection<Document> getAndPrepareCollection(MongoDatabase db, String collectionName) {
@@ -1901,12 +1898,12 @@ private static RuntimeException potentiallyConvertRuntimeException(RuntimeExcept
19011898
}
19021899

19031900
private MongoPersistentEntity<?> getPersistentEntity(Class<?> type) {
1904-
return type == null ? null : mappingContext.getPersistentEntity(type);
1901+
return type == null ? null : mappingContext.getPersistentEntity(type).orElse(null);
19051902
}
19061903

19071904
private MongoPersistentProperty getIdPropertyFor(Class<?> type) {
1908-
MongoPersistentEntity<?> persistentEntity = mappingContext.getPersistentEntity(type);
1909-
return persistentEntity == null ? null : persistentEntity.getIdProperty();
1905+
Optional<? extends MongoPersistentEntity<?>> persistentEntity = mappingContext.getPersistentEntity(type);
1906+
return persistentEntity.isPresent() ? persistentEntity.get().getIdProperty().orElse(null) : null;
19101907
}
19111908

19121909
private <T> String determineEntityCollectionName(T obj) {
@@ -1925,13 +1922,7 @@ String determineCollectionName(Class<?> entityClass) {
19251922
"No class parameter provided, entity collection can't be determined!");
19261923
}
19271924

1928-
MongoPersistentEntity<?> entity = mappingContext.getPersistentEntity(entityClass);
1929-
1930-
if (entity == null) {
1931-
throw new InvalidDataAccessApiUsageException(
1932-
"No Persistent Entity information found for the class " + entityClass.getName());
1933-
}
1934-
1925+
MongoPersistentEntity<?> entity = mappingContext.getRequiredPersistentEntity(entityClass);
19351926
return entity.getCollection();
19361927
}
19371928

@@ -1986,7 +1977,7 @@ private void initializeVersionProperty(Object entity) {
19861977
if (mongoPersistentEntity != null && mongoPersistentEntity.hasVersionProperty()) {
19871978
ConvertingPropertyAccessor accessor = new ConvertingPropertyAccessor(
19881979
mongoPersistentEntity.getPropertyAccessor(entity), mongoConverter.getConversionService());
1989-
accessor.setProperty(mongoPersistentEntity.getVersionProperty(), 0);
1980+
accessor.setProperty(mongoPersistentEntity.getVersionProperty().get(), Optional.of(0));
19901981
}
19911982
}
19921983

@@ -2290,7 +2281,7 @@ public <T> FindPublisher<T> prepare(FindPublisher<T> findPublisher) {
22902281

22912282
try {
22922283
if (query.getSkip() > 0) {
2293-
findPublisherToUse = findPublisherToUse.skip(query.getSkip());
2284+
findPublisherToUse = findPublisherToUse.skip((int)query.getSkip());
22942285
}
22952286
if (query.getLimit() > 0) {
22962287
findPublisherToUse = findPublisherToUse.limit(query.getLimit());
@@ -2346,9 +2337,9 @@ private static List<? extends Document> toDocuments(final Collection<? extends D
23462337
static class NoOpDbRefResolver implements DbRefResolver {
23472338

23482339
@Override
2349-
public Object resolveDbRef(MongoPersistentProperty property, DBRef dbref, DbRefResolverCallback callback,
2340+
public Optional<Object> resolveDbRef(MongoPersistentProperty property, DBRef dbref, DbRefResolverCallback callback,
23502341
DbRefProxyHandler proxyHandler) {
2351-
return null;
2342+
return Optional.empty();
23522343
}
23532344

23542345
@Override

0 commit comments

Comments
 (0)