Skip to content

Use pattern matching instead of type casting #2742

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -115,8 +115,8 @@ public static SearchDocument from(Hit<?> hit, JsonpMapper jsonpMapper) {
if (source == null) {
document = Document.from(hitFieldsAsMap);
} else {
if (source instanceof EntityAsMap) {
document = Document.from((EntityAsMap) source);
if (source instanceof EntityAsMap entityAsMap) {
document = Document.from(entityAsMap);
} else if (source instanceof JsonData jsonData) {
document = Document.from(jsonData.to(EntityAsMap.class));
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,8 +143,8 @@ public void setApplicationContext(ApplicationContext applicationContext) throws
setEntityCallbacks(EntityCallbacks.create(applicationContext));
}

if (elasticsearchConverter instanceof ApplicationContextAware) {
((ApplicationContextAware) elasticsearchConverter).setApplicationContext(applicationContext);
if (elasticsearchConverter instanceof ApplicationContextAware contextAware) {
contextAware.setApplicationContext(applicationContext);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -229,8 +229,8 @@ private SearchHits<?> mapInnerDocuments(SearchHits<SearchDocument> searchHits, C
});

String scrollId = null;
if (searchHits instanceof SearchHitsImpl) {
scrollId = ((SearchHitsImpl<?>) searchHits).getScrollId();
if (searchHits instanceof SearchHitsImpl<?> searchHitsImpl) {
scrollId = searchHitsImpl.getScrollId();
}

return new SearchHitsImpl<>(searchHits.getTotalHits(), //
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -323,9 +323,9 @@ public String format(TemporalAccessor accessor) {
try {
return dateTimeFormatter.format(accessor);
} catch (Exception e) {
if (accessor instanceof Instant) {
if (accessor instanceof Instant instant) {
// as alternatives try to format a ZonedDateTime or LocalDateTime
return dateTimeFormatter.format(ZonedDateTime.ofInstant((Instant) accessor, ZoneId.of("UTC")));
return dateTimeFormatter.format(ZonedDateTime.ofInstant(instant, ZoneId.of("UTC")));
} else {
throw e;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -141,20 +141,20 @@ public enum GeoJsonToMapConverter implements Converter<GeoJson<? extends Iterabl

@Override
public Map<String, Object> convert(GeoJson<? extends Iterable<?>> source) {
if (source instanceof GeoJsonPoint) {
return GeoJsonPointToMapConverter.INSTANCE.convert((GeoJsonPoint) source);
} else if (source instanceof GeoJsonMultiPoint) {
return GeoJsonMultiPointToMapConverter.INSTANCE.convert((GeoJsonMultiPoint) source);
} else if (source instanceof GeoJsonLineString) {
return GeoJsonLineStringToMapConverter.INSTANCE.convert((GeoJsonLineString) source);
} else if (source instanceof GeoJsonMultiLineString) {
return GeoJsonMultiLineStringToMapConverter.INSTANCE.convert((GeoJsonMultiLineString) source);
} else if (source instanceof GeoJsonPolygon) {
return GeoJsonPolygonToMapConverter.INSTANCE.convert((GeoJsonPolygon) source);
} else if (source instanceof GeoJsonMultiPolygon) {
return GeoJsonMultiPolygonToMapConverter.INSTANCE.convert((GeoJsonMultiPolygon) source);
} else if (source instanceof GeoJsonGeometryCollection) {
return GeoJsonGeometryCollectionToMapConverter.INSTANCE.convert((GeoJsonGeometryCollection) source);
if (source instanceof GeoJsonPoint geoJsonPoint) {
return GeoJsonPointToMapConverter.INSTANCE.convert(geoJsonPoint);
} else if (source instanceof GeoJsonMultiPoint geoJsonMultiPoint) {
return GeoJsonMultiPointToMapConverter.INSTANCE.convert(geoJsonMultiPoint);
} else if (source instanceof GeoJsonLineString geoJsonLineString) {
return GeoJsonLineStringToMapConverter.INSTANCE.convert(geoJsonLineString);
} else if (source instanceof GeoJsonMultiLineString geoJsonMultiLineString) {
return GeoJsonMultiLineStringToMapConverter.INSTANCE.convert(geoJsonMultiLineString);
} else if (source instanceof GeoJsonPolygon geoJsonPolygon) {
return GeoJsonPolygonToMapConverter.INSTANCE.convert(geoJsonPolygon);
} else if (source instanceof GeoJsonMultiPolygon geoJsonMultiPolygon) {
return GeoJsonMultiPolygonToMapConverter.INSTANCE.convert(geoJsonMultiPolygon);
} else if (source instanceof GeoJsonGeometryCollection geoJsonGeometryCollection) {
return GeoJsonGeometryCollectionToMapConverter.INSTANCE.convert(geoJsonGeometryCollection);
} else {
throw new IllegalArgumentException("unknown GeoJson class " + source.getClass().getSimpleName());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,8 @@ public MappingElasticsearchConverter(
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {

if (mappingContext instanceof ApplicationContextAware) {
((ApplicationContextAware) mappingContext).setApplicationContext(applicationContext);
if (mappingContext instanceof ApplicationContextAware contextAware) {
contextAware.setApplicationContext(applicationContext);
}
}

Expand Down Expand Up @@ -1186,8 +1186,8 @@ protected Map<String, Object> createMap(Map<?, ?> map, ElasticsearchPersistentPr
*/
private static Collection<?> asCollection(Object source) {

if (source instanceof Collection) {
return (Collection<?>) source;
if (source instanceof Collection<?> collection) {
return collection;
}

return source.getClass().isArray() ? CollectionUtils.arrayToList(source) : Collections.singleton(source);
Expand All @@ -1201,9 +1201,9 @@ public void updateQuery(Query query, @Nullable Class<?> domainClass) {

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

if (query instanceof BaseQuery) {
if (query instanceof BaseQuery baseQuery) {

if (((BaseQuery) query).queryIsUpdatedByConverter()) {
if (baseQuery.queryIsUpdatedByConverter()) {
return;
}
}
Expand All @@ -1214,12 +1214,12 @@ public void updateQuery(Query query, @Nullable Class<?> domainClass) {

updatePropertiesInFieldsAndSourceFilter(query, domainClass);

if (query instanceof CriteriaQuery) {
updatePropertiesInCriteriaQuery((CriteriaQuery) query, domainClass);
if (query instanceof CriteriaQuery criteriaQuery) {
updatePropertiesInCriteriaQuery(criteriaQuery, domainClass);
}

if (query instanceof BaseQuery) {
((BaseQuery) query).setQueryIsUpdatedByConverter(true);
if (query instanceof BaseQuery baseQuery) {
baseQuery.setQueryIsUpdatedByConverter(true);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -194,8 +194,8 @@ private void writeTypeHintMapping(ObjectNode propertiesNode) throws IOException
if (writeTypeHints) {
String typeHintProperty = null;

if (elasticsearchConverter instanceof MappingElasticsearchConverter) {
typeHintProperty = ((MappingElasticsearchConverter) elasticsearchConverter).getTypeMapper().getTypeKey();
if (elasticsearchConverter instanceof MappingElasticsearchConverter mappingElasticsearchConverter) {
typeHintProperty = mappingElasticsearchConverter.getTypeMapper().getTypeKey();
}

if (typeHintProperty == null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,10 +125,10 @@ public static MappingParameters from(Annotation annotation) {

Assert.notNull(annotation, "annotation must not be null!");

if (annotation instanceof Field) {
return new MappingParameters((Field) annotation);
} else if (annotation instanceof InnerField) {
return new MappingParameters((InnerField) annotation);
if (annotation instanceof Field field) {
return new MappingParameters(field);
} else if (annotation instanceof InnerField innerField) {
return new MappingParameters(innerField);
} else {
throw new IllegalArgumentException("annotation must be an instance of @Field or @InnerField");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -344,8 +344,8 @@ public String getFieldName() {
private FieldNamingStrategy getFieldNamingStrategy() {
PersistentEntity<?, ElasticsearchPersistentProperty> owner = getOwner();

if (owner instanceof ElasticsearchPersistentEntity) {
return ((ElasticsearchPersistentEntity<?>) owner).getFieldNamingStrategy();
if (owner instanceof ElasticsearchPersistentEntity<?> persistentEntity) {
return persistentEntity.getFieldNamingStrategy();
}

return DEFAULT_FIELD_NAMING_STRATEGY;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -386,8 +386,8 @@ public void deleteAll(@Nullable RefreshPolicy refreshPolicy) {
private void doRefresh() {
RefreshPolicy refreshPolicy = null;

if (operations instanceof AbstractElasticsearchTemplate) {
refreshPolicy = ((AbstractElasticsearchTemplate) operations).getRefreshPolicy();
if (operations instanceof AbstractElasticsearchTemplate template) {
refreshPolicy = template.getRefreshPolicy();
}

if (refreshPolicy == null) {
Expand Down