Reintroduce explicit local variable types.
We now reinstate local variable types instead of var as general var usage removes contextual detail that cannot be omitted generally. See #2465
This commit is contained in:
@@ -101,7 +101,7 @@ final class AnnotationAuditingMetadata {
|
||||
return;
|
||||
}
|
||||
|
||||
var type = it.getType();
|
||||
Class<?> type = it.getType();
|
||||
|
||||
if (Jsr310Converters.supports(type)) {
|
||||
return;
|
||||
|
||||
@@ -129,7 +129,7 @@ public abstract class AuditingHandlerSupport {
|
||||
|
||||
private <T> T touch(Auditor<?> auditor, T target, boolean isNew) {
|
||||
|
||||
var wrapper = factory.getBeanWrapperFor(target);
|
||||
Optional<AuditableBeanWrapper<T>> wrapper = factory.getBeanWrapperFor(target);
|
||||
|
||||
return wrapper.map(it -> {
|
||||
|
||||
@@ -185,7 +185,7 @@ public abstract class AuditingHandlerSupport {
|
||||
|
||||
Assert.notNull(wrapper, "AuditableBeanWrapper must not be null!");
|
||||
|
||||
var now = dateTimeProvider.getNow();
|
||||
Optional<TemporalAccessor> now = dateTimeProvider.getNow();
|
||||
|
||||
Assert.notNull(now, () -> String.format("Now must not be null! Returned by: %s!", dateTimeProvider.getClass()));
|
||||
|
||||
|
||||
@@ -110,7 +110,7 @@ class Auditor<T> {
|
||||
if (o == null || getClass() != o.getClass())
|
||||
return false;
|
||||
|
||||
var auditor = (Auditor<?>) o;
|
||||
Auditor<?> auditor = (Auditor<?>) o;
|
||||
|
||||
return ObjectUtils.nullSafeEquals(value, auditor.value);
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ class DefaultAuditableBeanWrapperFactory implements AuditableBeanWrapperFactory
|
||||
|
||||
public DefaultAuditableBeanWrapperFactory() {
|
||||
|
||||
var conversionService = new DefaultFormattingConversionService();
|
||||
DefaultFormattingConversionService conversionService = new DefaultFormattingConversionService();
|
||||
|
||||
Jsr310Converters.getConvertersToRegister().forEach(conversionService::addConverter);
|
||||
|
||||
@@ -75,7 +75,7 @@ class DefaultAuditableBeanWrapperFactory implements AuditableBeanWrapperFactory
|
||||
return (AuditableBeanWrapper<T>) new AuditableInterfaceBeanWrapper(conversionService, (Auditable<Object, ?, TemporalAccessor>) it);
|
||||
}
|
||||
|
||||
var metadata = AnnotationAuditingMetadata.getMetadata(it.getClass());
|
||||
AnnotationAuditingMetadata metadata = AnnotationAuditingMetadata.getMetadata(it.getClass());
|
||||
|
||||
if (metadata.isAuditable()) {
|
||||
return new ReflectionAuditingBeanWrapper<T>(conversionService, it);
|
||||
@@ -191,7 +191,7 @@ class DefaultAuditableBeanWrapperFactory implements AuditableBeanWrapperFactory
|
||||
value.getClass(), targetType));
|
||||
}
|
||||
|
||||
var date = conversionService.convert(value, Date.class);
|
||||
Date date = conversionService.convert(value, Date.class);
|
||||
return conversionService.convert(date, targetType);
|
||||
}
|
||||
|
||||
@@ -277,7 +277,7 @@ class DefaultAuditableBeanWrapperFactory implements AuditableBeanWrapperFactory
|
||||
|
||||
return getAsTemporalAccessor(metadata.getLastModifiedDateField().map(field -> {
|
||||
|
||||
var value = org.springframework.util.ReflectionUtils.getField(field, target);
|
||||
Object value = org.springframework.util.ReflectionUtils.getField(field, target);
|
||||
return value instanceof Optional ? ((Optional<?>) value).orElse(null) : value;
|
||||
|
||||
}), TemporalAccessor.class);
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package org.springframework.data.auditing;
|
||||
|
||||
import org.springframework.data.mapping.PersistentEntity;
|
||||
import org.springframework.data.mapping.PersistentProperty;
|
||||
import org.springframework.data.mapping.context.MappingContext;
|
||||
import org.springframework.data.mapping.context.PersistentEntities;
|
||||
import org.springframework.data.support.IsNewStrategy;
|
||||
@@ -61,7 +62,7 @@ public class IsNewAwareAuditingHandler extends AuditingHandler {
|
||||
return object;
|
||||
}
|
||||
|
||||
var entity = entities
|
||||
PersistentEntity<?, ? extends PersistentProperty<?>> entity = entities
|
||||
.getRequiredPersistentEntity(object.getClass());
|
||||
|
||||
return entity.isNew(object) ? markCreated(object) : markModified(object);
|
||||
|
||||
@@ -81,7 +81,7 @@ public class MappingAuditableBeanWrapperFactory extends DefaultAuditableBeanWrap
|
||||
|
||||
return entities.mapOnContext(it.getClass(), (context, entity) -> {
|
||||
|
||||
var metadata = metadataCache.computeIfAbsent(it.getClass(),
|
||||
MappingAuditingMetadata metadata = metadataCache.computeIfAbsent(it.getClass(),
|
||||
key -> new MappingAuditingMetadata(context, it.getClass()));
|
||||
|
||||
return Optional.<AuditableBeanWrapper<T>> ofNullable(metadata.isAuditable() //
|
||||
@@ -209,7 +209,7 @@ public class MappingAuditableBeanWrapperFactory extends DefaultAuditableBeanWrap
|
||||
@Override
|
||||
public Optional<TemporalAccessor> getLastModifiedDate() {
|
||||
|
||||
var firstValue = metadata.lastModifiedDatePaths.getFirst() //
|
||||
Optional<Object> firstValue = metadata.lastModifiedDatePaths.getFirst() //
|
||||
.map(accessor::getProperty);
|
||||
|
||||
return getAsTemporalAccessor(firstValue, TemporalAccessor.class);
|
||||
@@ -238,7 +238,7 @@ public class MappingAuditableBeanWrapperFactory extends DefaultAuditableBeanWrap
|
||||
|
||||
property.forEach(it -> {
|
||||
|
||||
var type = it.getRequiredLeafProperty().getType();
|
||||
Class<?> type = it.getRequiredLeafProperty().getType();
|
||||
|
||||
this.accessor.setProperty(it, getDateValueToSet(value, type, accessor.getBean()), OPTIONS);
|
||||
});
|
||||
|
||||
@@ -18,6 +18,7 @@ package org.springframework.data.auditing;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
import org.springframework.data.mapping.PersistentEntity;
|
||||
import org.springframework.data.mapping.PersistentProperty;
|
||||
import org.springframework.data.mapping.context.MappingContext;
|
||||
import org.springframework.data.mapping.context.PersistentEntities;
|
||||
import org.springframework.data.support.IsNewStrategy;
|
||||
@@ -61,7 +62,7 @@ public class ReactiveIsNewAwareAuditingHandler extends ReactiveAuditingHandler {
|
||||
return Mono.just(object);
|
||||
}
|
||||
|
||||
var entity = entities
|
||||
PersistentEntity<?, ? extends PersistentProperty<?>> entity = entities
|
||||
.getRequiredPersistentEntity(object.getClass());
|
||||
|
||||
return entity.isNew(object) ? markCreated(object) : markModified(object);
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package org.springframework.data.auditing.config;
|
||||
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.core.annotation.AnnotationAttributes;
|
||||
import org.springframework.core.type.AnnotationMetadata;
|
||||
@@ -46,7 +47,7 @@ public class AnnotationAuditingConfiguration implements AuditingConfiguration {
|
||||
Assert.notNull(metadata, "AnnotationMetadata must not be null!");
|
||||
Assert.notNull(annotation, "Annotation must not be null!");
|
||||
|
||||
var attributesSource = metadata.getAnnotationAttributes(annotation.getName());
|
||||
Map<String, Object> attributesSource = metadata.getAnnotationAttributes(annotation.getName());
|
||||
|
||||
if (attributesSource == null) {
|
||||
throw new IllegalArgumentException(String.format(MISSING_ANNOTATION_ATTRIBUTES, annotation, metadata));
|
||||
|
||||
@@ -56,7 +56,7 @@ public abstract class AuditingBeanDefinitionRegistrarSupport implements ImportBe
|
||||
Assert.notNull(annotationMetadata, "AnnotationMetadata must not be null!");
|
||||
Assert.notNull(registry, "BeanDefinitionRegistry must not be null!");
|
||||
|
||||
var ahbd = registerAuditHandlerBeanDefinition(registry, getConfiguration(annotationMetadata));
|
||||
AbstractBeanDefinition ahbd = registerAuditHandlerBeanDefinition(registry, getConfiguration(annotationMetadata));
|
||||
registerAuditListenerBeanDefinition(ahbd, registry);
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ public abstract class AuditingBeanDefinitionRegistrarSupport implements ImportBe
|
||||
Assert.notNull(registry, "BeanDefinitionRegistry must not be null!");
|
||||
Assert.notNull(configuration, "AuditingConfiguration must not be null!");
|
||||
|
||||
var ahbd = getAuditHandlerBeanDefinitionBuilder(configuration).getBeanDefinition();
|
||||
AbstractBeanDefinition ahbd = getAuditHandlerBeanDefinitionBuilder(configuration).getBeanDefinition();
|
||||
registry.registerBeanDefinition(getAuditingHandlerBeanName(), ahbd);
|
||||
return ahbd;
|
||||
}
|
||||
@@ -174,10 +174,10 @@ public abstract class AuditingBeanDefinitionRegistrarSupport implements ImportBe
|
||||
|
||||
private BeanDefinition createLazyInitTargetSourceBeanDefinition(String auditorAwareRef) {
|
||||
|
||||
var targetSourceBuilder = rootBeanDefinition(LazyInitTargetSource.class);
|
||||
BeanDefinitionBuilder targetSourceBuilder = rootBeanDefinition(LazyInitTargetSource.class);
|
||||
targetSourceBuilder.addPropertyValue("targetBeanName", auditorAwareRef);
|
||||
|
||||
var builder = rootBeanDefinition(ProxyFactoryBean.class);
|
||||
BeanDefinitionBuilder builder = rootBeanDefinition(ProxyFactoryBean.class);
|
||||
builder.addPropertyValue("targetSource", targetSourceBuilder.getBeanDefinition());
|
||||
|
||||
return builder.getBeanDefinition();
|
||||
|
||||
@@ -83,11 +83,11 @@ public class AuditingHandlerBeanDefinitionParser extends AbstractSingleBeanDefin
|
||||
@Override
|
||||
protected void doParse(Element element, BeanDefinitionBuilder builder) {
|
||||
|
||||
final var persistentEntities = rootBeanDefinition(PersistentEntitiesFactoryBean.class);
|
||||
final BeanDefinitionBuilder persistentEntities = rootBeanDefinition(PersistentEntitiesFactoryBean.class);
|
||||
persistentEntities.addConstructorArgReference(mappingContextBeanName);
|
||||
builder.addConstructorArgValue(persistentEntities.getBeanDefinition());
|
||||
|
||||
var auditorAwareRef = element.getAttribute(AUDITOR_AWARE_REF);
|
||||
String auditorAwareRef = element.getAttribute(AUDITOR_AWARE_REF);
|
||||
|
||||
if (StringUtils.hasText(auditorAwareRef)) {
|
||||
builder.addPropertyValue("auditorAware", createLazyInitTargetSourceBeanDefinition(auditorAwareRef));
|
||||
@@ -107,10 +107,10 @@ public class AuditingHandlerBeanDefinitionParser extends AbstractSingleBeanDefin
|
||||
|
||||
private BeanDefinition createLazyInitTargetSourceBeanDefinition(String auditorAwareRef) {
|
||||
|
||||
var targetSourceBuilder = rootBeanDefinition(LazyInitTargetSource.class);
|
||||
BeanDefinitionBuilder targetSourceBuilder = rootBeanDefinition(LazyInitTargetSource.class);
|
||||
targetSourceBuilder.addPropertyValue("targetBeanName", auditorAwareRef);
|
||||
|
||||
var builder = rootBeanDefinition(ProxyFactoryBean.class);
|
||||
BeanDefinitionBuilder builder = rootBeanDefinition(ProxyFactoryBean.class);
|
||||
builder.addPropertyValue("targetSource", targetSourceBuilder.getBeanDefinition());
|
||||
|
||||
return builder.getBeanDefinition();
|
||||
|
||||
Reference in New Issue
Block a user