diff --git a/src/main/java/org/springframework/data/auditing/AnnotationAuditingMetadata.java b/src/main/java/org/springframework/data/auditing/AnnotationAuditingMetadata.java index dd381acb5..d0375851b 100644 --- a/src/main/java/org/springframework/data/auditing/AnnotationAuditingMetadata.java +++ b/src/main/java/org/springframework/data/auditing/AnnotationAuditingMetadata.java @@ -101,7 +101,7 @@ final class AnnotationAuditingMetadata { return; } - var type = it.getType(); + Class type = it.getType(); if (Jsr310Converters.supports(type)) { return; diff --git a/src/main/java/org/springframework/data/auditing/AuditingHandlerSupport.java b/src/main/java/org/springframework/data/auditing/AuditingHandlerSupport.java index bba389807..53d9c7f25 100644 --- a/src/main/java/org/springframework/data/auditing/AuditingHandlerSupport.java +++ b/src/main/java/org/springframework/data/auditing/AuditingHandlerSupport.java @@ -129,7 +129,7 @@ public abstract class AuditingHandlerSupport { private T touch(Auditor auditor, T target, boolean isNew) { - var wrapper = factory.getBeanWrapperFor(target); + Optional> 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 now = dateTimeProvider.getNow(); Assert.notNull(now, () -> String.format("Now must not be null! Returned by: %s!", dateTimeProvider.getClass())); diff --git a/src/main/java/org/springframework/data/auditing/Auditor.java b/src/main/java/org/springframework/data/auditing/Auditor.java index 871330d06..bd4193284 100644 --- a/src/main/java/org/springframework/data/auditing/Auditor.java +++ b/src/main/java/org/springframework/data/auditing/Auditor.java @@ -110,7 +110,7 @@ class Auditor { if (o == null || getClass() != o.getClass()) return false; - var auditor = (Auditor) o; + Auditor auditor = (Auditor) o; return ObjectUtils.nullSafeEquals(value, auditor.value); } diff --git a/src/main/java/org/springframework/data/auditing/DefaultAuditableBeanWrapperFactory.java b/src/main/java/org/springframework/data/auditing/DefaultAuditableBeanWrapperFactory.java index aba932f16..60682cdde 100644 --- a/src/main/java/org/springframework/data/auditing/DefaultAuditableBeanWrapperFactory.java +++ b/src/main/java/org/springframework/data/auditing/DefaultAuditableBeanWrapperFactory.java @@ -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) new AuditableInterfaceBeanWrapper(conversionService, (Auditable) it); } - var metadata = AnnotationAuditingMetadata.getMetadata(it.getClass()); + AnnotationAuditingMetadata metadata = AnnotationAuditingMetadata.getMetadata(it.getClass()); if (metadata.isAuditable()) { return new ReflectionAuditingBeanWrapper(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); diff --git a/src/main/java/org/springframework/data/auditing/IsNewAwareAuditingHandler.java b/src/main/java/org/springframework/data/auditing/IsNewAwareAuditingHandler.java index d21b86d16..8ad820240 100644 --- a/src/main/java/org/springframework/data/auditing/IsNewAwareAuditingHandler.java +++ b/src/main/java/org/springframework/data/auditing/IsNewAwareAuditingHandler.java @@ -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> entity = entities .getRequiredPersistentEntity(object.getClass()); return entity.isNew(object) ? markCreated(object) : markModified(object); diff --git a/src/main/java/org/springframework/data/auditing/MappingAuditableBeanWrapperFactory.java b/src/main/java/org/springframework/data/auditing/MappingAuditableBeanWrapperFactory.java index 222343dec..1db285d83 100644 --- a/src/main/java/org/springframework/data/auditing/MappingAuditableBeanWrapperFactory.java +++ b/src/main/java/org/springframework/data/auditing/MappingAuditableBeanWrapperFactory.java @@ -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.> ofNullable(metadata.isAuditable() // @@ -209,7 +209,7 @@ public class MappingAuditableBeanWrapperFactory extends DefaultAuditableBeanWrap @Override public Optional getLastModifiedDate() { - var firstValue = metadata.lastModifiedDatePaths.getFirst() // + Optional 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); }); diff --git a/src/main/java/org/springframework/data/auditing/ReactiveIsNewAwareAuditingHandler.java b/src/main/java/org/springframework/data/auditing/ReactiveIsNewAwareAuditingHandler.java index 9e008de11..8721caf81 100644 --- a/src/main/java/org/springframework/data/auditing/ReactiveIsNewAwareAuditingHandler.java +++ b/src/main/java/org/springframework/data/auditing/ReactiveIsNewAwareAuditingHandler.java @@ -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> entity = entities .getRequiredPersistentEntity(object.getClass()); return entity.isNew(object) ? markCreated(object) : markModified(object); diff --git a/src/main/java/org/springframework/data/auditing/config/AnnotationAuditingConfiguration.java b/src/main/java/org/springframework/data/auditing/config/AnnotationAuditingConfiguration.java index 47fa38e7c..f913751f4 100644 --- a/src/main/java/org/springframework/data/auditing/config/AnnotationAuditingConfiguration.java +++ b/src/main/java/org/springframework/data/auditing/config/AnnotationAuditingConfiguration.java @@ -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 attributesSource = metadata.getAnnotationAttributes(annotation.getName()); if (attributesSource == null) { throw new IllegalArgumentException(String.format(MISSING_ANNOTATION_ATTRIBUTES, annotation, metadata)); diff --git a/src/main/java/org/springframework/data/auditing/config/AuditingBeanDefinitionRegistrarSupport.java b/src/main/java/org/springframework/data/auditing/config/AuditingBeanDefinitionRegistrarSupport.java index ba7377bf3..69bafd3ce 100644 --- a/src/main/java/org/springframework/data/auditing/config/AuditingBeanDefinitionRegistrarSupport.java +++ b/src/main/java/org/springframework/data/auditing/config/AuditingBeanDefinitionRegistrarSupport.java @@ -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(); diff --git a/src/main/java/org/springframework/data/auditing/config/AuditingHandlerBeanDefinitionParser.java b/src/main/java/org/springframework/data/auditing/config/AuditingHandlerBeanDefinitionParser.java index 0fc9c0a4e..c61210413 100644 --- a/src/main/java/org/springframework/data/auditing/config/AuditingHandlerBeanDefinitionParser.java +++ b/src/main/java/org/springframework/data/auditing/config/AuditingHandlerBeanDefinitionParser.java @@ -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(); diff --git a/src/main/java/org/springframework/data/config/BeanComponentDefinitionBuilder.java b/src/main/java/org/springframework/data/config/BeanComponentDefinitionBuilder.java index 3c8c2d206..f06a07b6c 100644 --- a/src/main/java/org/springframework/data/config/BeanComponentDefinitionBuilder.java +++ b/src/main/java/org/springframework/data/config/BeanComponentDefinitionBuilder.java @@ -16,6 +16,7 @@ package org.springframework.data.config; import org.springframework.beans.factory.parsing.BeanComponentDefinition; +import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.BeanDefinitionReaderUtils; import org.springframework.beans.factory.xml.ParserContext; @@ -60,8 +61,8 @@ public class BeanComponentDefinitionBuilder { Assert.notNull(builder, "Builder must not be null!"); - var definition = builder.getRawBeanDefinition(); - var name = BeanDefinitionReaderUtils.generateBeanName(definition, context.getRegistry(), context.isNested()); + AbstractBeanDefinition definition = builder.getRawBeanDefinition(); + String name = BeanDefinitionReaderUtils.generateBeanName(definition, context.getRegistry(), context.isNested()); return getComponent(builder, name); } @@ -78,7 +79,7 @@ public class BeanComponentDefinitionBuilder { Assert.hasText(fallback, "Fallback component id must not be null or empty!"); - var id = defaultSource.getAttribute("id"); + String id = defaultSource.getAttribute("id"); return getComponent(builder, StringUtils.hasText(id) ? id : fallback); } @@ -107,7 +108,7 @@ public class BeanComponentDefinitionBuilder { Assert.notNull(builder, "Builder must not be null!"); Assert.hasText(name, "Name of bean must not be null or empty!"); - var definition = builder.getRawBeanDefinition(); + AbstractBeanDefinition definition = builder.getRawBeanDefinition(); definition.setSource(context.extractSource(rawSource)); return new BeanComponentDefinition(definition, name); diff --git a/src/main/java/org/springframework/data/config/ConfigurationUtils.java b/src/main/java/org/springframework/data/config/ConfigurationUtils.java index f1b3bdfd6..2abca4a15 100644 --- a/src/main/java/org/springframework/data/config/ConfigurationUtils.java +++ b/src/main/java/org/springframework/data/config/ConfigurationUtils.java @@ -41,7 +41,7 @@ public interface ConfigurationUtils { Assert.notNull(context, "XmlReaderContext must not be null!"); - var resourceLoader = context.getResourceLoader(); + ResourceLoader resourceLoader = context.getResourceLoader(); if (resourceLoader == null) { throw new IllegalArgumentException("Could not obtain ResourceLoader from XmlReaderContext!"); @@ -72,7 +72,7 @@ public interface ConfigurationUtils { Assert.notNull(resourceLoader, "ResourceLoader must not be null!"); - var classLoader = resourceLoader.getClassLoader(); + ClassLoader classLoader = resourceLoader.getClassLoader(); if (classLoader == null) { throw new IllegalArgumentException("Could not obtain ClassLoader from ResourceLoader!"); @@ -92,7 +92,7 @@ public interface ConfigurationUtils { Assert.notNull(beanDefinition, "BeanDefinition must not be null!"); - var result = beanDefinition.getBeanClassName(); + String result = beanDefinition.getBeanClassName(); if (result == null) { throw new IllegalArgumentException( diff --git a/src/main/java/org/springframework/data/config/ParsingUtils.java b/src/main/java/org/springframework/data/config/ParsingUtils.java index a22c69311..07f3e0d2a 100644 --- a/src/main/java/org/springframework/data/config/ParsingUtils.java +++ b/src/main/java/org/springframework/data/config/ParsingUtils.java @@ -55,7 +55,7 @@ public abstract class ParsingUtils { Assert.hasText(attrName, "Attribute name must not be null!"); Assert.hasText(propertyName, "Property name must not be null!"); - var attr = element.getAttribute(attrName); + String attr = element.getAttribute(attrName); if (StringUtils.hasText(attr)) { builder.addPropertyValue(propertyName, attr); @@ -90,7 +90,7 @@ public abstract class ParsingUtils { Assert.hasText(attribute, "Attribute name must not be null!"); Assert.hasText(property, "Property name must not be null!"); - var value = element.getAttribute(attribute); + String value = element.getAttribute(attribute); if (StringUtils.hasText(value)) { builder.addPropertyReference(property, value); @@ -126,7 +126,7 @@ public abstract class ParsingUtils { Assert.notNull(builder, "Builder must not be null!"); - var definition = builder.getRawBeanDefinition(); + AbstractBeanDefinition definition = builder.getRawBeanDefinition(); definition.setSource(source); return definition; } @@ -143,7 +143,7 @@ public abstract class ParsingUtils { Assert.hasText(targetBeanName, "Target bean name must not be null or empty!"); - var builder = BeanDefinitionBuilder.rootBeanDefinition(ObjectFactoryCreatingFactoryBean.class); + BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(ObjectFactoryCreatingFactoryBean.class); builder.addPropertyValue("targetBeanName", targetBeanName); builder.setRole(AbstractBeanDefinition.ROLE_INFRASTRUCTURE); diff --git a/src/main/java/org/springframework/data/config/TypeFilterParser.java b/src/main/java/org/springframework/data/config/TypeFilterParser.java index 3664dc731..9a6e21b4b 100644 --- a/src/main/java/org/springframework/data/config/TypeFilterParser.java +++ b/src/main/java/org/springframework/data/config/TypeFilterParser.java @@ -35,6 +35,7 @@ import org.springframework.util.Assert; import org.w3c.dom.Element; import org.w3c.dom.Node; +import org.w3c.dom.NodeList; /** * Parser to populate the given {@link ClassPathScanningCandidateComponentProvider} with {@link TypeFilter}s parsed from @@ -85,13 +86,13 @@ public class TypeFilterParser { */ public Collection parseTypeFilters(Element element, Type type) { - var nodeList = element.getChildNodes(); + NodeList nodeList = element.getChildNodes(); Collection filters = new HashSet<>(); - for (var i = 0; i < nodeList.getLength(); i++) { + for (int i = 0; i < nodeList.getLength(); i++) { - var node = nodeList.item(i); - var childElement = type.getElement(node); + Node node = nodeList.item(i); + Element childElement = type.getElement(node); if (childElement == null) { continue; @@ -116,12 +117,12 @@ public class TypeFilterParser { */ protected TypeFilter createTypeFilter(Element element, ClassLoader classLoader) { - var filterType = element.getAttribute(FILTER_TYPE_ATTRIBUTE); - var expression = element.getAttribute(FILTER_EXPRESSION_ATTRIBUTE); + String filterType = element.getAttribute(FILTER_TYPE_ATTRIBUTE); + String expression = element.getAttribute(FILTER_EXPRESSION_ATTRIBUTE); try { - var filter = FilterType.fromString(filterType); + FilterType filter = FilterType.fromString(filterType); return filter.getFilter(expression, classLoader); } catch (ClassNotFoundException ex) { @@ -171,7 +172,7 @@ public class TypeFilterParser { @Override public TypeFilter getFilter(String expression, ClassLoader classLoader) throws ClassNotFoundException { - var filterClass = classLoader.loadClass(expression); + Class filterClass = classLoader.loadClass(expression); if (!TypeFilter.class.isAssignableFrom(filterClass)) { throw new IllegalArgumentException( "Class is not assignable to [" + TypeFilter.class.getName() + "]: " + expression); @@ -199,7 +200,7 @@ public class TypeFilterParser { */ static FilterType fromString(String typeString) { - for (var filter : FilterType.values()) { + for (FilterType filter : FilterType.values()) { if (filter.name().equalsIgnoreCase(typeString)) { return filter; } @@ -230,7 +231,7 @@ public class TypeFilterParser { Element getElement(Node node) { if (node.getNodeType() == Node.ELEMENT_NODE) { - var localName = node.getLocalName(); + String localName = node.getLocalName(); if (elementName.equals(localName)) { return (Element) node; } diff --git a/src/main/java/org/springframework/data/convert/ConfigurableTypeInformationMapper.java b/src/main/java/org/springframework/data/convert/ConfigurableTypeInformationMapper.java index 6b22937cb..c00d32fe9 100644 --- a/src/main/java/org/springframework/data/convert/ConfigurableTypeInformationMapper.java +++ b/src/main/java/org/springframework/data/convert/ConfigurableTypeInformationMapper.java @@ -53,8 +53,8 @@ public class ConfigurableTypeInformationMapper implements TypeInformationMapper for (Entry, String> entry : sourceTypeMap.entrySet()) { - var type = ClassTypeInformation.from(entry.getKey()); - var alias = Alias.of(entry.getValue()); + ClassTypeInformation type = ClassTypeInformation.from(entry.getKey()); + Alias alias = Alias.of(entry.getValue()); if (typeToAlias.containsValue(alias)) { throw new IllegalArgumentException( diff --git a/src/main/java/org/springframework/data/convert/CustomConversions.java b/src/main/java/org/springframework/data/convert/CustomConversions.java index f1d26ceab..4b271c482 100644 --- a/src/main/java/org/springframework/data/convert/CustomConversions.java +++ b/src/main/java/org/springframework/data/convert/CustomConversions.java @@ -116,7 +116,7 @@ public class CustomConversions { this.converterConfiguration = converterConfiguration; - var registeredConverters = collectPotentialConverterRegistrations( + List registeredConverters = collectPotentialConverterRegistrations( converterConfiguration.getStoreConversions(), converterConfiguration.getUserConverters()).stream() // .filter(this::isSupportedConverter) // .filter(this::shouldRegister) // @@ -289,7 +289,7 @@ public class CustomConversions { Assert.notNull(converterRegistration, "Converter registration must not be null!"); - var pair = converterRegistration.getConvertiblePair(); + ConvertiblePair pair = converterRegistration.getConvertiblePair(); if (converterRegistration.isReading()) { @@ -324,7 +324,7 @@ public class CustomConversions { */ private boolean isSupportedConverter(ConverterRegistrationIntent registrationIntent) { - var register = registrationIntent.isUserConverter() || registrationIntent.isStoreConverter() + boolean register = registrationIntent.isUserConverter() || registrationIntent.isStoreConverter() || (registrationIntent.isReading() && registrationIntent.isSimpleSourceType()) || (registrationIntent.isWriting() && registrationIntent.isSimpleTargetType()); @@ -365,7 +365,7 @@ public class CustomConversions { Assert.notNull(sourceType, "Source type must not be null!"); - var target = customWriteTargetTypes.computeIfAbsent(sourceType, getRawWriteTarget); + Class target = customWriteTargetTypes.computeIfAbsent(sourceType, getRawWriteTarget); return Void.class.equals(target) || target == null ? Optional.empty() : Optional.of(target); } @@ -384,7 +384,7 @@ public class CustomConversions { Assert.notNull(sourceType, "Source type must not be null!"); Assert.notNull(requestedTargetType, "Target type must not be null!"); - var target = customWriteTargetTypes.computeIfAbsent(sourceType, requestedTargetType, getWriteTarget); + Class target = customWriteTargetTypes.computeIfAbsent(sourceType, requestedTargetType, getWriteTarget); return Void.class.equals(target) || target == null ? Optional.empty() : Optional.of(target); } @@ -464,13 +464,13 @@ public class CustomConversions { return targetType; } - for (var pair : pairs) { + for (ConvertiblePair pair : pairs) { if (!hasAssignableSourceType(pair, sourceType)) { continue; } - var candidate = pair.getTargetType(); + Class candidate = pair.getTargetType(); if (!requestedTargetTypeIsAssignable(targetType, candidate)) { continue; @@ -527,7 +527,7 @@ public class CustomConversions { public Class computeIfAbsent(Class sourceType, Class targetType, Function> mappingFunction) { - var targetTypes = customReadTargetTypes.get(sourceType); + TargetTypes targetTypes = customReadTargetTypes.get(sourceType); if (targetTypes == null) { targetTypes = customReadTargetTypes.computeIfAbsent(sourceType, TargetTypes::new); @@ -568,7 +568,7 @@ public class CustomConversions { @Nullable public Class computeIfAbsent(Class targetType, Function> mappingFunction) { - var optionalTarget = conversionTargets.get(targetType); + Class optionalTarget = conversionTargets.get(targetType); if (optionalTarget == null) { optionalTarget = mappingFunction.apply(new ConvertiblePair(sourceType, targetType)); @@ -794,9 +794,9 @@ public class CustomConversions { Assert.notNull(converter, "Converter must not be null!"); - var type = converter.getClass(); - var isWriting = isAnnotatedWith(type, WritingConverter.class); - var isReading = isAnnotatedWith(type, ReadingConverter.class); + Class type = converter.getClass(); + boolean isWriting = isAnnotatedWith(type, WritingConverter.class); + boolean isReading = isAnnotatedWith(type, ReadingConverter.class); if (converter instanceof ConverterAware) { @@ -805,7 +805,7 @@ public class CustomConversions { } else if (converter instanceof GenericConverter) { - var convertibleTypes = GenericConverter.class.cast(converter).getConvertibleTypes(); + Set convertibleTypes = GenericConverter.class.cast(converter).getConvertibleTypes(); return convertibleTypes == null // ? Streamable.empty() // @@ -831,8 +831,8 @@ public class CustomConversions { private Streamable getRegistrationFor(Object converter, Class type, boolean isReading, boolean isWriting) { - var converterType = converter.getClass(); - var arguments = GenericTypeResolver.resolveTypeArguments(converterType, type); + Class converterType = converter.getClass(); + Class[] arguments = GenericTypeResolver.resolveTypeArguments(converterType, type); if (arguments == null) { throw new IllegalStateException(String.format("Couldn't resolve type arguments for %s!", converterType)); @@ -883,7 +883,7 @@ public class CustomConversions { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(storeTypeHolder); + int result = ObjectUtils.nullSafeHashCode(storeTypeHolder); result = 31 * result + ObjectUtils.nullSafeHashCode(storeConverters); return result; } diff --git a/src/main/java/org/springframework/data/convert/DefaultConverterBuilder.java b/src/main/java/org/springframework/data/convert/DefaultConverterBuilder.java index 8f215bd49..2dc06055d 100644 --- a/src/main/java/org/springframework/data/convert/DefaultConverterBuilder.java +++ b/src/main/java/org/springframework/data/convert/DefaultConverterBuilder.java @@ -142,7 +142,7 @@ record DefaultConverterBuilder (ConvertiblePair convertiblePair, @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(convertiblePair); + int result = ObjectUtils.nullSafeHashCode(convertiblePair); result = 31 * result + ObjectUtils.nullSafeHashCode(function); return result; } diff --git a/src/main/java/org/springframework/data/convert/DefaultTypeMapper.java b/src/main/java/org/springframework/data/convert/DefaultTypeMapper.java index 2419d24dc..1ccbe9db3 100644 --- a/src/main/java/org/springframework/data/convert/DefaultTypeMapper.java +++ b/src/main/java/org/springframework/data/convert/DefaultTypeMapper.java @@ -96,8 +96,8 @@ public class DefaultTypeMapper implements TypeMapper, BeanClassLoaderAware this.typeCache = new ConcurrentHashMap<>(); this.getAlias = key -> { - for (var mapper : mappers) { - var typeInformation = mapper.resolveTypeFrom(key); + for (TypeInformationMapper mapper : mappers) { + TypeInformation typeInformation = mapper.resolveTypeFrom(key); if (typeInformation != null) { return Optional.of(typeInformation); @@ -126,7 +126,7 @@ public class DefaultTypeMapper implements TypeMapper, BeanClassLoaderAware @Nullable private TypeInformation getFromCacheOrCreate(Alias alias) { - var typeInformation = typeCache.get(alias); + Optional> typeInformation = typeCache.get(alias); if (typeInformation == null) { typeInformation = typeCache.computeIfAbsent(alias, getAlias); @@ -141,22 +141,22 @@ public class DefaultTypeMapper implements TypeMapper, BeanClassLoaderAware Assert.notNull(source, "Source must not be null!"); Assert.notNull(basicType, "Basic type must not be null!"); - var documentsTargetType = getDefaultedTypeToBeUsed(source); + Class documentsTargetType = getDefaultedTypeToBeUsed(source); if (documentsTargetType == null) { return basicType; } - var rawType = basicType.getType(); + Class rawType = basicType.getType(); - var isMoreConcreteCustomType = rawType == null + boolean isMoreConcreteCustomType = rawType == null || rawType.isAssignableFrom(documentsTargetType) && !rawType.equals(documentsTargetType); if (!isMoreConcreteCustomType) { return basicType; } - var targetType = ClassTypeInformation.from(documentsTargetType); + ClassTypeInformation targetType = ClassTypeInformation.from(documentsTargetType); return (TypeInformation) basicType.specialize(targetType); } @@ -171,7 +171,7 @@ public class DefaultTypeMapper implements TypeMapper, BeanClassLoaderAware @Nullable private Class getDefaultedTypeToBeUsed(S source) { - var documentsTargetTypeInformation = readType(source); + TypeInformation documentsTargetTypeInformation = readType(source); documentsTargetTypeInformation = documentsTargetTypeInformation == null ? getFallbackTypeFor(source) : documentsTargetTypeInformation; return documentsTargetTypeInformation == null ? null : documentsTargetTypeInformation.getType(); @@ -198,7 +198,7 @@ public class DefaultTypeMapper implements TypeMapper, BeanClassLoaderAware Assert.notNull(info, "TypeInformation must not be null!"); - var alias = getAliasFor(info); + Alias alias = getAliasFor(info); if (alias.isPresent()) { accessor.writeTypeTo(sink, alias.getValue()); } @@ -226,7 +226,7 @@ public class DefaultTypeMapper implements TypeMapper, BeanClassLoaderAware for (TypeInformationMapper mapper : mappers) { - var alias = mapper.createAliasFor(info); + Alias alias = mapper.createAliasFor(info); if (alias.isPresent()) { return alias; } diff --git a/src/main/java/org/springframework/data/convert/DtoInstantiatingConverter.java b/src/main/java/org/springframework/data/convert/DtoInstantiatingConverter.java index 5674beeea..d3e257631 100644 --- a/src/main/java/org/springframework/data/convert/DtoInstantiatingConverter.java +++ b/src/main/java/org/springframework/data/convert/DtoInstantiatingConverter.java @@ -16,9 +16,11 @@ package org.springframework.data.convert; import org.springframework.core.convert.converter.Converter; +import org.springframework.data.mapping.InstanceCreatorMetadata; import org.springframework.data.mapping.Parameter; import org.springframework.data.mapping.PersistentEntity; import org.springframework.data.mapping.PersistentProperty; +import org.springframework.data.mapping.PersistentPropertyAccessor; import org.springframework.data.mapping.SimplePropertyHandler; import org.springframework.data.mapping.context.MappingContext; import org.springframework.data.mapping.model.EntityInstantiator; @@ -73,18 +75,19 @@ public class DtoInstantiatingConverter implements Converter { return source; } - var sourceEntity = context.getRequiredPersistentEntity(source.getClass()); - var sourceAccessor = sourceEntity.getPropertyAccessor(source); - var targetEntity = context.getRequiredPersistentEntity(targetType); + PersistentEntity> sourceEntity = context + .getRequiredPersistentEntity(source.getClass()); + PersistentPropertyAccessor sourceAccessor = sourceEntity.getPropertyAccessor(source); + PersistentEntity> targetEntity = context.getRequiredPersistentEntity(targetType); @SuppressWarnings({ "rawtypes", "unchecked" }) - var dto = instantiator.createInstance(targetEntity, new ParameterValueProvider() { + Object dto = instantiator.createInstance(targetEntity, new ParameterValueProvider() { @Override @Nullable public Object getParameterValue(Parameter parameter) { - var name = parameter.getName(); + String name = parameter.getName(); if (name == null) { throw new IllegalArgumentException(String.format("Parameter %s does not have a name", parameter)); @@ -94,8 +97,8 @@ public class DtoInstantiatingConverter implements Converter { } }); - var targetAccessor = targetEntity.getPropertyAccessor(dto); - var creator = targetEntity.getInstanceCreatorMetadata(); + PersistentPropertyAccessor targetAccessor = targetEntity.getPropertyAccessor(dto); + InstanceCreatorMetadata> creator = targetEntity.getInstanceCreatorMetadata(); targetEntity.doWithProperties((SimplePropertyHandler) property -> { diff --git a/src/main/java/org/springframework/data/convert/JMoleculesConverters.java b/src/main/java/org/springframework/data/convert/JMoleculesConverters.java index af77decc8..18d49826a 100644 --- a/src/main/java/org/springframework/data/convert/JMoleculesConverters.java +++ b/src/main/java/org/springframework/data/convert/JMoleculesConverters.java @@ -54,10 +54,11 @@ public class JMoleculesConverters { List converters = new ArrayList<>(); - var conversionService = (Supplier) () -> DefaultConversionService.getSharedInstance(); + Supplier conversionService = (Supplier) () -> DefaultConversionService + .getSharedInstance(); - var toPrimitives = new IdentifierToPrimitivesConverter(conversionService); - var toIdentifier = new PrimitivesToIdentifierConverter(conversionService); + IdentifierToPrimitivesConverter toPrimitives = new IdentifierToPrimitivesConverter(conversionService); + PrimitivesToIdentifierConverter toIdentifier = new PrimitivesToIdentifierConverter(conversionService); converters.add(toPrimitives); converters.add(toIdentifier); diff --git a/src/main/java/org/springframework/data/convert/MappingContextTypeInformationMapper.java b/src/main/java/org/springframework/data/convert/MappingContextTypeInformationMapper.java index f2ef0c199..1c0f5a60f 100644 --- a/src/main/java/org/springframework/data/convert/MappingContextTypeInformationMapper.java +++ b/src/main/java/org/springframework/data/convert/MappingContextTypeInformationMapper.java @@ -20,6 +20,7 @@ import java.util.concurrent.ConcurrentHashMap; import org.springframework.data.mapping.Alias; import org.springframework.data.mapping.PersistentEntity; +import org.springframework.data.mapping.PersistentProperty; import org.springframework.data.mapping.context.MappingContext; import org.springframework.data.util.ClassTypeInformation; import org.springframework.data.util.TypeInformation; @@ -61,7 +62,7 @@ public class MappingContextTypeInformationMapper implements TypeInformationMappe return typeMap.computeIfAbsent(type.getRawTypeInformation(), key -> { - var entity = mappingContext.getPersistentEntity(key); + PersistentEntity> entity = mappingContext.getPersistentEntity(key); if (entity == null || entity.getTypeAlias() == null) { return Alias.NONE; @@ -81,7 +82,7 @@ public class MappingContextTypeInformationMapper implements TypeInformationMappe // Reject second alias for same type - var existingAlias = typeMap.getOrDefault(key, Alias.NONE); + Alias existingAlias = typeMap.getOrDefault(key, Alias.NONE); if (existingAlias.isPresentButDifferent(alias)) { @@ -111,7 +112,7 @@ public class MappingContextTypeInformationMapper implements TypeInformationMappe @Override public TypeInformation resolveTypeFrom(Alias alias) { - for (var entry : typeMap.entrySet()) { + for (Map.Entry, Alias> entry : typeMap.entrySet()) { if (entry.getValue().hasSamePresentValueAs(alias)) { return entry.getKey(); } diff --git a/src/main/java/org/springframework/data/convert/SimpleTypeInformationMapper.java b/src/main/java/org/springframework/data/convert/SimpleTypeInformationMapper.java index 1426d7492..32fdc9c91 100644 --- a/src/main/java/org/springframework/data/convert/SimpleTypeInformationMapper.java +++ b/src/main/java/org/springframework/data/convert/SimpleTypeInformationMapper.java @@ -53,7 +53,7 @@ public class SimpleTypeInformationMapper implements TypeInformationMapper, BeanC @Override public TypeInformation resolveTypeFrom(Alias alias) { - var stringAlias = alias.mapTyped(String.class); + String stringAlias = alias.mapTyped(String.class); if (stringAlias != null) { return cache.computeIfAbsent(stringAlias, this::loadClass).orElse(null); diff --git a/src/main/java/org/springframework/data/crossstore/HashMapChangeSet.java b/src/main/java/org/springframework/data/crossstore/HashMapChangeSet.java index d91717f56..2f1e4d894 100644 --- a/src/main/java/org/springframework/data/crossstore/HashMapChangeSet.java +++ b/src/main/java/org/springframework/data/crossstore/HashMapChangeSet.java @@ -61,7 +61,7 @@ public class HashMapChangeSet implements ChangeSet { @Nullable public T get(String key, Class requiredClass, ConversionService conversionService) { - var value = values.get(key); + Object value = values.get(key); if (value == null) { return null; diff --git a/src/main/java/org/springframework/data/domain/AbstractPageRequest.java b/src/main/java/org/springframework/data/domain/AbstractPageRequest.java index 400aaca33..34dbbef63 100644 --- a/src/main/java/org/springframework/data/domain/AbstractPageRequest.java +++ b/src/main/java/org/springframework/data/domain/AbstractPageRequest.java @@ -86,8 +86,8 @@ public abstract class AbstractPageRequest implements Pageable, Serializable { @Override public int hashCode() { - final var prime = 31; - var result = 1; + final int prime = 31; + int result = 1; result = prime * result + page; result = prime * result + size; @@ -106,7 +106,7 @@ public abstract class AbstractPageRequest implements Pageable, Serializable { return false; } - var other = (AbstractPageRequest) obj; + AbstractPageRequest other = (AbstractPageRequest) obj; return this.page == other.page && this.size == other.size; } } diff --git a/src/main/java/org/springframework/data/domain/Chunk.java b/src/main/java/org/springframework/data/domain/Chunk.java index c57520444..4e111f8d6 100644 --- a/src/main/java/org/springframework/data/domain/Chunk.java +++ b/src/main/java/org/springframework/data/domain/Chunk.java @@ -132,8 +132,8 @@ abstract class Chunk implements Slice, Serializable { return false; } - var contentEqual = this.content.equals(that.content); - var pageableEqual = this.pageable.equals(that.pageable); + boolean contentEqual = this.content.equals(that.content); + boolean pageableEqual = this.pageable.equals(that.pageable); return contentEqual && pageableEqual; } @@ -141,7 +141,7 @@ abstract class Chunk implements Slice, Serializable { @Override public int hashCode() { - var result = 17; + int result = 17; result += 31 * pageable.hashCode(); result += 31 * content.hashCode(); diff --git a/src/main/java/org/springframework/data/domain/ExampleMatcher.java b/src/main/java/org/springframework/data/domain/ExampleMatcher.java index 28b7d41d5..fef882668 100644 --- a/src/main/java/org/springframework/data/domain/ExampleMatcher.java +++ b/src/main/java/org/springframework/data/domain/ExampleMatcher.java @@ -124,7 +124,7 @@ public interface ExampleMatcher { Assert.hasText(propertyPath, "PropertyPath must not be empty!"); Assert.notNull(matcherConfigurer, "MatcherConfigurer must not be empty!"); - var genericPropertyMatcher = new GenericPropertyMatcher(); + GenericPropertyMatcher genericPropertyMatcher = new GenericPropertyMatcher(); matcherConfigurer.configureMatcher(genericPropertyMatcher); return withMatcher(propertyPath, genericPropertyMatcher); @@ -463,7 +463,7 @@ public interface ExampleMatcher { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(stringMatcher); + int result = ObjectUtils.nullSafeHashCode(stringMatcher); result = 31 * result + ObjectUtils.nullSafeHashCode(ignoreCase); result = 31 * result + ObjectUtils.nullSafeHashCode(valueTransformer); return result; @@ -753,7 +753,7 @@ public interface ExampleMatcher { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(path); + int result = ObjectUtils.nullSafeHashCode(path); result = 31 * result + ObjectUtils.nullSafeHashCode(stringMatcher); result = 31 * result + ObjectUtils.nullSafeHashCode(ignoreCase); result = 31 * result + ObjectUtils.nullSafeHashCode(valueTransformer); diff --git a/src/main/java/org/springframework/data/domain/PageImpl.java b/src/main/java/org/springframework/data/domain/PageImpl.java index de34ea232..dbe1963a0 100644 --- a/src/main/java/org/springframework/data/domain/PageImpl.java +++ b/src/main/java/org/springframework/data/domain/PageImpl.java @@ -89,8 +89,8 @@ public class PageImpl extends Chunk implements Page { @Override public String toString() { - var contentType = "UNKNOWN"; - var content = getContent(); + String contentType = "UNKNOWN"; + List content = getContent(); if (!content.isEmpty() && content.get(0) != null) { contentType = content.get(0).getClass().getName(); @@ -116,7 +116,7 @@ public class PageImpl extends Chunk implements Page { @Override public int hashCode() { - var result = 17; + int result = 17; result += 31 * (int) (total ^ total >>> 32); result += 31 * super.hashCode(); diff --git a/src/main/java/org/springframework/data/domain/Range.java b/src/main/java/org/springframework/data/domain/Range.java index 2497f043f..361eaaa71 100644 --- a/src/main/java/org/springframework/data/domain/Range.java +++ b/src/main/java/org/springframework/data/domain/Range.java @@ -231,7 +231,7 @@ public final class Range> { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(lowerBound); + int result = ObjectUtils.nullSafeHashCode(lowerBound); result = 31 * result + ObjectUtils.nullSafeHashCode(upperBound); return result; } @@ -426,7 +426,7 @@ public final class Range> { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(value); + int result = ObjectUtils.nullSafeHashCode(value); result = 31 * result + (inclusive ? 1 : 0); return result; } diff --git a/src/main/java/org/springframework/data/domain/SliceImpl.java b/src/main/java/org/springframework/data/domain/SliceImpl.java index ef01af68f..66728e10a 100644 --- a/src/main/java/org/springframework/data/domain/SliceImpl.java +++ b/src/main/java/org/springframework/data/domain/SliceImpl.java @@ -71,8 +71,8 @@ public class SliceImpl extends Chunk { @Override public String toString() { - var contentType = "UNKNOWN"; - var content = getContent(); + String contentType = "UNKNOWN"; + List content = getContent(); if (content.size() > 0) { contentType = content.get(0).getClass().getName(); @@ -98,7 +98,7 @@ public class SliceImpl extends Chunk { @Override public int hashCode() { - var result = 17; + int result = 17; result += 31 * (hasNext ? 1 : 0); result += 31 * super.hashCode(); diff --git a/src/main/java/org/springframework/data/domain/Sort.java b/src/main/java/org/springframework/data/domain/Sort.java index eb2f6317f..e07b56bfb 100644 --- a/src/main/java/org/springframework/data/domain/Sort.java +++ b/src/main/java/org/springframework/data/domain/Sort.java @@ -193,9 +193,9 @@ public class Sort implements Streamable(this.toList()); + ArrayList these = new ArrayList(this.toList()); - for (var order : sort) { + for (Order order : sort) { these.add(order); } @@ -211,7 +211,7 @@ public class Sort implements Streamable implements Example { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(probe); + int result = ObjectUtils.nullSafeHashCode(probe); result = 31 * result + ObjectUtils.nullSafeHashCode(matcher); return result; } diff --git a/src/main/java/org/springframework/data/domain/TypedExampleMatcher.java b/src/main/java/org/springframework/data/domain/TypedExampleMatcher.java index 34959fbac..d848bd582 100644 --- a/src/main/java/org/springframework/data/domain/TypedExampleMatcher.java +++ b/src/main/java/org/springframework/data/domain/TypedExampleMatcher.java @@ -89,8 +89,8 @@ class TypedExampleMatcher implements ExampleMatcher { Assert.hasText(propertyPath, "PropertyPath must not be empty!"); Assert.notNull(genericPropertyMatcher, "GenericPropertyMatcher must not be empty!"); - var propertySpecifiers = new PropertySpecifiers(this.propertySpecifiers); - var propertySpecifier = new PropertySpecifier(propertyPath); + PropertySpecifiers propertySpecifiers = new PropertySpecifiers(this.propertySpecifiers); + PropertySpecifier propertySpecifier = new PropertySpecifier(propertyPath); if (genericPropertyMatcher.ignoreCase != null) { propertySpecifier = propertySpecifier.withIgnoreCase(genericPropertyMatcher.ignoreCase); @@ -114,8 +114,8 @@ class TypedExampleMatcher implements ExampleMatcher { Assert.hasText(propertyPath, "PropertyPath must not be empty!"); Assert.notNull(propertyValueTransformer, "PropertyValueTransformer must not be empty!"); - var propertySpecifiers = new PropertySpecifiers(this.propertySpecifiers); - var propertySpecifier = getOrCreatePropertySpecifier(propertyPath, propertySpecifiers); + PropertySpecifiers propertySpecifiers = new PropertySpecifiers(this.propertySpecifiers); + PropertySpecifier propertySpecifier = getOrCreatePropertySpecifier(propertyPath, propertySpecifiers); propertySpecifiers.add(propertySpecifier.withValueTransformer(propertyValueTransformer)); @@ -129,10 +129,10 @@ class TypedExampleMatcher implements ExampleMatcher { Assert.notEmpty(propertyPaths, "PropertyPaths must not be empty!"); Assert.noNullElements(propertyPaths, "PropertyPaths must not contain null elements!"); - var propertySpecifiers = new PropertySpecifiers(this.propertySpecifiers); + PropertySpecifiers propertySpecifiers = new PropertySpecifiers(this.propertySpecifiers); - for (var propertyPath : propertyPaths) { - var propertySpecifier = getOrCreatePropertySpecifier(propertyPath, propertySpecifiers); + for (String propertyPath : propertyPaths) { + PropertySpecifier propertySpecifier = getOrCreatePropertySpecifier(propertyPath, propertySpecifiers); propertySpecifiers.add(propertySpecifier.withIgnoreCase(true)); } @@ -230,7 +230,7 @@ class TypedExampleMatcher implements ExampleMatcher { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(nullHandler); + int result = ObjectUtils.nullSafeHashCode(nullHandler); result = 31 * result + ObjectUtils.nullSafeHashCode(defaultStringMatcher); result = 31 * result + ObjectUtils.nullSafeHashCode(propertySpecifiers); result = 31 * result + ObjectUtils.nullSafeHashCode(ignoredPaths); diff --git a/src/main/java/org/springframework/data/domain/jaxb/OrderAdapter.java b/src/main/java/org/springframework/data/domain/jaxb/OrderAdapter.java index 787d75946..20b483dee 100644 --- a/src/main/java/org/springframework/data/domain/jaxb/OrderAdapter.java +++ b/src/main/java/org/springframework/data/domain/jaxb/OrderAdapter.java @@ -17,6 +17,7 @@ package org.springframework.data.domain.jaxb; import jakarta.xml.bind.annotation.adapters.XmlAdapter; +import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Order; import org.springframework.data.domain.jaxb.SpringDataJaxb.OrderDto; import org.springframework.lang.Nullable; @@ -38,7 +39,7 @@ public class OrderAdapter extends XmlAdapter { return null; } - var dto = new OrderDto(); + OrderDto dto = new OrderDto(); dto.direction = order.getDirection(); dto.property = order.getProperty(); return dto; @@ -52,8 +53,8 @@ public class OrderAdapter extends XmlAdapter { return null; } - var direction = source.direction; - var property = source.property; + Sort.Direction direction = source.direction; + String property = source.property; if (direction == null || property == null) { return null; diff --git a/src/main/java/org/springframework/data/domain/jaxb/PageAdapter.java b/src/main/java/org/springframework/data/domain/jaxb/PageAdapter.java index 97c8db0ef..fecc335ae 100644 --- a/src/main/java/org/springframework/data/domain/jaxb/PageAdapter.java +++ b/src/main/java/org/springframework/data/domain/jaxb/PageAdapter.java @@ -40,7 +40,7 @@ public class PageAdapter extends XmlAdapter> { return null; } - var dto = new PageDto(); + PageDto dto = new PageDto(); dto.content = source.getContent(); dto.add(getLinks(source)); diff --git a/src/main/java/org/springframework/data/domain/jaxb/PageableAdapter.java b/src/main/java/org/springframework/data/domain/jaxb/PageableAdapter.java index 042c53804..4c04c5c75 100644 --- a/src/main/java/org/springframework/data/domain/jaxb/PageableAdapter.java +++ b/src/main/java/org/springframework/data/domain/jaxb/PageableAdapter.java @@ -42,9 +42,9 @@ class PageableAdapter extends XmlAdapter { return null; } - var dto = new PageRequestDto(); + PageRequestDto dto = new PageRequestDto(); - var sortDto = SortAdapter.INSTANCE.marshal(request.getSort()); + SortDto sortDto = SortAdapter.INSTANCE.marshal(request.getSort()); dto.orders = sortDto == null ? Collections.emptyList() : sortDto.orders; dto.page = request.getPageNumber(); dto.size = request.getPageSize(); @@ -64,7 +64,7 @@ class PageableAdapter extends XmlAdapter { return PageRequest.of(v.page, v.size); } - var sortDto = new SortDto(); + SortDto sortDto = new SortDto(); sortDto.orders = v.orders; return PageRequest.of(v.page, v.size, SortAdapter.INSTANCE.unmarshal(sortDto)); diff --git a/src/main/java/org/springframework/data/domain/jaxb/SortAdapter.java b/src/main/java/org/springframework/data/domain/jaxb/SortAdapter.java index 0b2cfae70..20b253101 100644 --- a/src/main/java/org/springframework/data/domain/jaxb/SortAdapter.java +++ b/src/main/java/org/springframework/data/domain/jaxb/SortAdapter.java @@ -39,7 +39,7 @@ public class SortAdapter extends XmlAdapter { return null; } - var dto = new SortDto(); + SortDto dto = new SortDto(); dto.orders = SpringDataJaxb.marshal(source, OrderAdapter.INSTANCE); return dto; diff --git a/src/main/java/org/springframework/data/domain/jaxb/SpringDataJaxb.java b/src/main/java/org/springframework/data/domain/jaxb/SpringDataJaxb.java index 0a66dbb2a..440ddb49c 100644 --- a/src/main/java/org/springframework/data/domain/jaxb/SpringDataJaxb.java +++ b/src/main/java/org/springframework/data/domain/jaxb/SpringDataJaxb.java @@ -119,7 +119,7 @@ public abstract class SpringDataJaxb { List result = new ArrayList<>(source.size()); - for (var element : source) { + for (S element : source) { try { result.add(adapter.unmarshal(element)); } catch (Exception o_O) { @@ -146,7 +146,7 @@ public abstract class SpringDataJaxb { List result = new ArrayList<>(); - for (var element : source) { + for (T element : source) { try { result.add(adapter.marshal(element)); } catch (Exception o_O) { diff --git a/src/main/java/org/springframework/data/geo/Box.java b/src/main/java/org/springframework/data/geo/Box.java index c2b2790c6..10f4cccae 100644 --- a/src/main/java/org/springframework/data/geo/Box.java +++ b/src/main/java/org/springframework/data/geo/Box.java @@ -89,7 +89,7 @@ public class Box implements Shape { @Override public int hashCode() { - var result = 31; + int result = 31; result += 17 * first.hashCode(); result += 17 * second.hashCode(); diff --git a/src/main/java/org/springframework/data/geo/Circle.java b/src/main/java/org/springframework/data/geo/Circle.java index 8e52473b1..d26b7d384 100644 --- a/src/main/java/org/springframework/data/geo/Circle.java +++ b/src/main/java/org/springframework/data/geo/Circle.java @@ -111,7 +111,7 @@ public class Circle implements Shape { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(center); + int result = ObjectUtils.nullSafeHashCode(center); result = 31 * result + ObjectUtils.nullSafeHashCode(radius); return result; } diff --git a/src/main/java/org/springframework/data/geo/Distance.java b/src/main/java/org/springframework/data/geo/Distance.java index 492b50a7b..e7c3b9be0 100644 --- a/src/main/java/org/springframework/data/geo/Distance.java +++ b/src/main/java/org/springframework/data/geo/Distance.java @@ -121,7 +121,7 @@ public final class Distance implements Serializable, Comparable { Assert.notNull(other, "Distance to add must not be null!"); - var newNormalizedValue = getNormalizedValue() + other.getNormalizedValue(); + double newNormalizedValue = getNormalizedValue() + other.getNormalizedValue(); return new Distance(newNormalizedValue * metric.getMultiplier(), metric); } @@ -138,8 +138,8 @@ public final class Distance implements Serializable, Comparable { Assert.notNull(other, "Distance to must not be null!"); Assert.notNull(metric, "Result metric must not be null!"); - var newLeft = getNormalizedValue() * metric.getMultiplier(); - var newRight = other.getNormalizedValue() * metric.getMultiplier(); + double newLeft = getNormalizedValue() * metric.getMultiplier(); + double newRight = other.getNormalizedValue() * metric.getMultiplier(); return new Distance(newLeft + newRight, metric); } @@ -165,7 +165,7 @@ public final class Distance implements Serializable, Comparable { return 1; } - var difference = this.getNormalizedValue() - that.getNormalizedValue(); + double difference = this.getNormalizedValue() - that.getNormalizedValue(); return difference == 0 ? 0 : difference > 0 ? 1 : -1; } @@ -173,7 +173,7 @@ public final class Distance implements Serializable, Comparable { @Override public String toString() { - var builder = new StringBuilder(); + StringBuilder builder = new StringBuilder(); builder.append(value); if (metric != Metrics.NEUTRAL) { diff --git a/src/main/java/org/springframework/data/geo/GeoResult.java b/src/main/java/org/springframework/data/geo/GeoResult.java index 0782eddb9..456c7669f 100644 --- a/src/main/java/org/springframework/data/geo/GeoResult.java +++ b/src/main/java/org/springframework/data/geo/GeoResult.java @@ -71,7 +71,7 @@ public final class GeoResult implements Serializable { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(content); + int result = ObjectUtils.nullSafeHashCode(content); result = 31 * result + ObjectUtils.nullSafeHashCode(distance); return result; } diff --git a/src/main/java/org/springframework/data/geo/GeoResults.java b/src/main/java/org/springframework/data/geo/GeoResults.java index 188397c40..a95c69a05 100644 --- a/src/main/java/org/springframework/data/geo/GeoResults.java +++ b/src/main/java/org/springframework/data/geo/GeoResults.java @@ -120,7 +120,7 @@ public class GeoResults implements Iterable>, Serializable { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(results); + int result = ObjectUtils.nullSafeHashCode(results); result = 31 * result + ObjectUtils.nullSafeHashCode(averageDistance); return result; } @@ -140,7 +140,7 @@ public class GeoResults implements Iterable>, Serializable { return new Distance(0, metric); } - var averageDistance = results.stream()// + double averageDistance = results.stream()// .mapToDouble(it -> it.getDistance().getValue())// .average().orElse(0); diff --git a/src/main/java/org/springframework/data/geo/Point.java b/src/main/java/org/springframework/data/geo/Point.java index c0b08f0a1..590fceeee 100644 --- a/src/main/java/org/springframework/data/geo/Point.java +++ b/src/main/java/org/springframework/data/geo/Point.java @@ -83,9 +83,9 @@ public class Point implements Serializable { @Override public int hashCode() { - var result = 1; + int result = 1; - var temp = Double.doubleToLongBits(x); + long temp = Double.doubleToLongBits(x); result = 31 * result + (int) (temp ^ temp >>> 32); temp = Double.doubleToLongBits(y); diff --git a/src/main/java/org/springframework/data/geo/format/DistanceFormatter.java b/src/main/java/org/springframework/data/geo/format/DistanceFormatter.java index e2de75b75..a207855c6 100644 --- a/src/main/java/org/springframework/data/geo/format/DistanceFormatter.java +++ b/src/main/java/org/springframework/data/geo/format/DistanceFormatter.java @@ -82,7 +82,7 @@ public enum DistanceFormatter implements Converter, Formatter< */ private static Distance doConvert(String source) { - for (var metric : SUPPORTED_METRICS.entrySet()) { + for (Entry metric : SUPPORTED_METRICS.entrySet()) { if (source.endsWith(metric.getKey())) { return fromString(source, metric); } @@ -105,7 +105,7 @@ public enum DistanceFormatter implements Converter, Formatter< */ private static Distance fromString(String source, Entry metric) { - var amountString = source.substring(0, source.indexOf(metric.getKey())); + String amountString = source.substring(0, source.indexOf(metric.getKey())); try { return new Distance(Double.parseDouble(amountString), metric.getValue()); diff --git a/src/main/java/org/springframework/data/geo/format/PointFormatter.java b/src/main/java/org/springframework/data/geo/format/PointFormatter.java index 693d58e63..affa2edf5 100644 --- a/src/main/java/org/springframework/data/geo/format/PointFormatter.java +++ b/src/main/java/org/springframework/data/geo/format/PointFormatter.java @@ -41,7 +41,7 @@ public enum PointFormatter implements Converter, Formatter @Override public Point convert(String source) { - var parts = source.split(","); + String[] parts = source.split(","); if (parts.length != 2) { throw new IllegalArgumentException(String.format(INVALID_FORMAT, source)); @@ -49,8 +49,8 @@ public enum PointFormatter implements Converter, Formatter try { - var latitude = Double.parseDouble(parts[0]); - var longitude = Double.parseDouble(parts[1]); + double latitude = Double.parseDouble(parts[0]); + double longitude = Double.parseDouble(parts[1]); return new Point(longitude, latitude); diff --git a/src/main/java/org/springframework/data/history/Revision.java b/src/main/java/org/springframework/data/history/Revision.java index 6fb319d16..9722a62e7 100755 --- a/src/main/java/org/springframework/data/history/Revision.java +++ b/src/main/java/org/springframework/data/history/Revision.java @@ -140,7 +140,7 @@ public final class Revision, T> implements Comp @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(metadata); + int result = ObjectUtils.nullSafeHashCode(metadata); result = 31 * result + ObjectUtils.nullSafeHashCode(entity); return result; } diff --git a/src/main/java/org/springframework/data/history/RevisionSort.java b/src/main/java/org/springframework/data/history/RevisionSort.java index de6bca9ed..feb0c1241 100644 --- a/src/main/java/org/springframework/data/history/RevisionSort.java +++ b/src/main/java/org/springframework/data/history/RevisionSort.java @@ -76,7 +76,7 @@ public class RevisionSort extends Sort { Assert.notNull(sort, "Sort must not be null!"); - var order = sort.getOrderFor(PROPERTY); + Order order = sort.getOrderFor(PROPERTY); return order == null ? Direction.ASC : order.getDirection(); } } diff --git a/src/main/java/org/springframework/data/history/Revisions.java b/src/main/java/org/springframework/data/history/Revisions.java index 9692a0167..85960d2f9 100644 --- a/src/main/java/org/springframework/data/history/Revisions.java +++ b/src/main/java/org/springframework/data/history/Revisions.java @@ -89,7 +89,7 @@ public class Revisions, T> implements Streamabl * @return */ public Revision getLatestRevision() { - var index = latestLast ? revisions.size() - 1 : 0; + int index = latestLast ? revisions.size() - 1 : 0; return revisions.get(index); } diff --git a/src/main/java/org/springframework/data/mapping/AccessOptions.java b/src/main/java/org/springframework/data/mapping/AccessOptions.java index 0ced22aff..44bb0bb92 100644 --- a/src/main/java/org/springframework/data/mapping/AccessOptions.java +++ b/src/main/java/org/springframework/data/mapping/AccessOptions.java @@ -186,7 +186,7 @@ public class AccessOptions { Assert.isTrue(type.isAssignableFrom(property.getType()), () -> String .format("Cannot register a property handler for %s on a property of type %s!", type, property.getType())); - var caster = (Function) it -> type.cast(it); + Function caster = (Function) it -> type.cast(it); return registerHandler(property, caster.andThen(handler)); } @@ -201,7 +201,7 @@ public class AccessOptions { @Nullable Object postProcess(PersistentProperty property, @Nullable Object value) { - var handler = handlers.get(property); + Function handler = handlers.get(property); return handler == null ? value : handler.apply(value); } diff --git a/src/main/java/org/springframework/data/mapping/IdentifierAccessor.java b/src/main/java/org/springframework/data/mapping/IdentifierAccessor.java index 3cfe58963..e49575e83 100644 --- a/src/main/java/org/springframework/data/mapping/IdentifierAccessor.java +++ b/src/main/java/org/springframework/data/mapping/IdentifierAccessor.java @@ -45,7 +45,7 @@ public interface IdentifierAccessor { */ default Object getRequiredIdentifier() { - var identifier = getIdentifier(); + Object identifier = getIdentifier(); if (identifier != null) { return identifier; diff --git a/src/main/java/org/springframework/data/mapping/InstanceCreatorMetadataSupport.java b/src/main/java/org/springframework/data/mapping/InstanceCreatorMetadataSupport.java index 5db5e0bd8..18f4f66aa 100644 --- a/src/main/java/org/springframework/data/mapping/InstanceCreatorMetadataSupport.java +++ b/src/main/java/org/springframework/data/mapping/InstanceCreatorMetadataSupport.java @@ -87,13 +87,13 @@ class InstanceCreatorMetadataSupport> impleme Assert.notNull(property, "Property must not be null!"); - var cached = isPropertyParameterCache.get(property); + Boolean cached = isPropertyParameterCache.get(property); if (cached != null) { return cached; } - var result = doGetIsCreatorParameter(property); + boolean result = doGetIsCreatorParameter(property); isPropertyParameterCache.put(property, result); diff --git a/src/main/java/org/springframework/data/mapping/Parameter.java b/src/main/java/org/springframework/data/mapping/Parameter.java index 394c5a13c..7053ee3cb 100644 --- a/src/main/java/org/springframework/data/mapping/Parameter.java +++ b/src/main/java/org/springframework/data/mapping/Parameter.java @@ -71,7 +71,7 @@ public class Parameter> { throw new IllegalStateException(); } - var owningType = entity.getType(); + Class owningType = entity.getType(); return owningType.isMemberClass() && type.getType().equals(owningType.getEnclosingClass()); }); @@ -179,7 +179,7 @@ public class Parameter> { */ @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(name); + int result = ObjectUtils.nullSafeHashCode(name); result = 31 * result + ObjectUtils.nullSafeHashCode(type); result = 31 * result + ObjectUtils.nullSafeHashCode(key); result = 31 * result + ObjectUtils.nullSafeHashCode(entity); @@ -194,10 +194,10 @@ public class Parameter> { */ boolean maps(PersistentProperty property) { - var entity = this.entity; - var name = this.name; + PersistentEntity entity = this.entity; + String name = this.name; - var referencedProperty = entity == null ? null : name == null ? null : entity.getPersistentProperty(name); + P referencedProperty = entity == null ? null : name == null ? null : entity.getPersistentProperty(name); return property.equals(referencedProperty); } diff --git a/src/main/java/org/springframework/data/mapping/PersistentEntity.java b/src/main/java/org/springframework/data/mapping/PersistentEntity.java index a70334b6b..b3b8624e3 100644 --- a/src/main/java/org/springframework/data/mapping/PersistentEntity.java +++ b/src/main/java/org/springframework/data/mapping/PersistentEntity.java @@ -125,7 +125,7 @@ public interface PersistentEntity> extends It */ default P getRequiredIdProperty() { - var property = getIdProperty(); + P property = getIdProperty(); if (property != null) { return property; @@ -153,7 +153,7 @@ public interface PersistentEntity> extends It */ default P getRequiredVersionProperty() { - var property = getVersionProperty(); + P property = getVersionProperty(); if (property != null) { return property; @@ -180,7 +180,7 @@ public interface PersistentEntity> extends It */ default P getRequiredPersistentProperty(String name) { - var property = getPersistentProperty(name); + P property = getPersistentProperty(name); if (property != null) { return property; @@ -199,7 +199,7 @@ public interface PersistentEntity> extends It @Nullable default P getPersistentProperty(Class annotationType) { - var it = getPersistentProperties(annotationType).iterator(); + Iterator

it = getPersistentProperties(annotationType).iterator(); return it.hasNext() ? it.next() : null; } @@ -305,7 +305,7 @@ public interface PersistentEntity> extends It */ default A getRequiredAnnotation(Class annotationType) throws IllegalStateException { - var annotation = findAnnotation(annotationType); + A annotation = findAnnotation(annotationType); if (annotation != null) { return annotation; diff --git a/src/main/java/org/springframework/data/mapping/PersistentProperty.java b/src/main/java/org/springframework/data/mapping/PersistentProperty.java index 30c710101..1b9c9ca79 100644 --- a/src/main/java/org/springframework/data/mapping/PersistentProperty.java +++ b/src/main/java/org/springframework/data/mapping/PersistentProperty.java @@ -89,7 +89,7 @@ public interface PersistentProperty

> { default Method getRequiredGetter() { - var getter = getGetter(); + Method getter = getGetter(); if (getter == null) { throw new IllegalArgumentException(String.format("No getter available for persistent property %s!", this)); @@ -109,7 +109,7 @@ public interface PersistentProperty

> { default Method getRequiredSetter() { - var setter = getSetter(); + Method setter = getSetter(); if (setter == null) { throw new IllegalArgumentException(String.format("No setter available for persistent property %s!", this)); @@ -147,7 +147,7 @@ public interface PersistentProperty

> { default Method getRequiredWither() { - var wither = getWither(); + Method wither = getWither(); if (wither == null) { throw new IllegalArgumentException(String.format("No wither available for persistent property %s!", this)); @@ -161,7 +161,7 @@ public interface PersistentProperty

> { default Field getRequiredField() { - var field = getField(); + Field field = getField(); if (field == null) { throw new IllegalArgumentException(String.format("No field backing persistent property %s!", this)); @@ -190,7 +190,7 @@ public interface PersistentProperty

> { */ default Association

getRequiredAssociation() { - var association = getAssociation(); + Association

association = getAssociation(); if (association != null) { return association; @@ -336,7 +336,7 @@ public interface PersistentProperty

> { */ default A getRequiredAnnotation(Class annotationType) throws IllegalStateException { - var annotation = findAnnotation(annotationType); + A annotation = findAnnotation(annotationType); if (annotation != null) { return annotation; diff --git a/src/main/java/org/springframework/data/mapping/PersistentPropertyAccessor.java b/src/main/java/org/springframework/data/mapping/PersistentPropertyAccessor.java index 8629d3b8a..20e13b5d2 100644 --- a/src/main/java/org/springframework/data/mapping/PersistentPropertyAccessor.java +++ b/src/main/java/org/springframework/data/mapping/PersistentPropertyAccessor.java @@ -61,26 +61,27 @@ public interface PersistentPropertyAccessor { Assert.notNull(path, "PersistentPropertyPath must not be null!"); Assert.isTrue(!path.isEmpty(), "PersistentPropertyPath must not be empty!"); - var parentPath = path.getParentPath(); - var leafProperty = path.getRequiredLeafProperty(); - var parentProperty = parentPath.isEmpty() ? null : parentPath.getLeafProperty(); + PersistentPropertyPath> parentPath = path.getParentPath(); + PersistentProperty> leafProperty = path.getRequiredLeafProperty(); + PersistentProperty> parentProperty = parentPath.isEmpty() ? null + : parentPath.getLeafProperty(); if (parentProperty != null && (parentProperty.isCollectionLike() || parentProperty.isMap())) { throw new MappingException( String.format("Cannot traverse collection or map intermediate %s", parentPath.toDotPath())); } - var parent = parentPath.isEmpty() ? getBean() : getProperty(parentPath); + Object parent = parentPath.isEmpty() ? getBean() : getProperty(parentPath); if (parent == null) { - var nullIntermediateMessage = "Cannot lookup property %s on null intermediate! Original path was: %s on %s."; + String nullIntermediateMessage = "Cannot lookup property %s on null intermediate! Original path was: %s on %s."; throw new MappingException( String.format(nullIntermediateMessage, parentProperty, path.toDotPath(), getBean().getClass().getName())); } - var accessor = parent == getBean() // + PersistentPropertyAccessor accessor = parent == getBean() // ? this // : leafProperty.getOwner().getPropertyAccessor(parent); @@ -90,7 +91,7 @@ public interface PersistentPropertyAccessor { return; } - var bean = accessor.getBean(); + Object bean = accessor.getBean(); if (bean != parent) { setProperty(parentPath, bean); @@ -140,7 +141,7 @@ public interface PersistentPropertyAccessor { default Object getProperty(PersistentPropertyPath> path, TraversalContext context) { Object bean = getBean(); - var current = bean; + Object current = bean; if (path.isEmpty()) { return bean; @@ -150,14 +151,14 @@ public interface PersistentPropertyAccessor { if (current == null) { - var nullIntermediateMessage = "Cannot lookup property %s on null intermediate! Original path was: %s on %s."; + String nullIntermediateMessage = "Cannot lookup property %s on null intermediate! Original path was: %s on %s."; throw new MappingException( String.format(nullIntermediateMessage, property, path.toDotPath(), bean.getClass().getName())); } - var entity = property.getOwner(); - var accessor = entity.getPropertyAccessor(current); + PersistentEntity> entity = property.getOwner(); + PersistentPropertyAccessor accessor = entity.getPropertyAccessor(current); current = context.postProcess(property, accessor.getProperty(property)); } diff --git a/src/main/java/org/springframework/data/mapping/PersistentPropertyPath.java b/src/main/java/org/springframework/data/mapping/PersistentPropertyPath.java index 65b828b0c..4be58391e 100644 --- a/src/main/java/org/springframework/data/mapping/PersistentPropertyPath.java +++ b/src/main/java/org/springframework/data/mapping/PersistentPropertyPath.java @@ -76,7 +76,7 @@ public interface PersistentPropertyPath

> extends default P getRequiredLeafProperty() { - var property = getLeafProperty(); + P property = getLeafProperty(); if (property == null) { throw new IllegalStateException("No leaf property found!"); diff --git a/src/main/java/org/springframework/data/mapping/PropertyPath.java b/src/main/java/org/springframework/data/mapping/PropertyPath.java index 75d4a553c..e51a3369a 100644 --- a/src/main/java/org/springframework/data/mapping/PropertyPath.java +++ b/src/main/java/org/springframework/data/mapping/PropertyPath.java @@ -22,6 +22,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Stack; +import java.util.regex.Matcher; import java.util.regex.Pattern; import org.springframework.data.util.ClassTypeInformation; @@ -82,8 +83,8 @@ public class PropertyPath implements Streamable { Assert.notNull(owningType, "Owning type must not be null!"); Assert.notNull(base, "Previously found properties must not be null!"); - var propertyName = Introspector.decapitalize(name); - var propertyType = owningType.getProperty(propertyName); + String propertyName = Introspector.decapitalize(name); + TypeInformation propertyType = owningType.getProperty(propertyName); if (propertyType == null) { throw new PropertyReferenceException(propertyName, owningType, base); @@ -122,7 +123,7 @@ public class PropertyPath implements Streamable { */ public PropertyPath getLeafProperty() { - var result = this; + PropertyPath result = this; while (result.hasNext()) { result = result.requiredNext(); @@ -208,7 +209,7 @@ public class PropertyPath implements Streamable { Assert.hasText(path, "Path must not be null or empty!"); - var lookup = toDotPath().concat(".").concat(path); + String lookup = toDotPath().concat(".").concat(path); return PropertyPath.from(lookup, owningType); } @@ -226,7 +227,7 @@ public class PropertyPath implements Streamable { @Nullable public PropertyPath next() { - var result = current; + PropertyPath result = current; if (result == null) { return null; @@ -278,7 +279,7 @@ public class PropertyPath implements Streamable { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(owningType); + int result = ObjectUtils.nullSafeHashCode(owningType); result = 31 * result + ObjectUtils.nullSafeHashCode(name); result = 31 * result + ObjectUtils.nullSafeHashCode(typeInformation); result = 31 * result + ObjectUtils.nullSafeHashCode(actualTypeInformation); @@ -295,7 +296,7 @@ public class PropertyPath implements Streamable { */ private PropertyPath requiredNext() { - var result = next; + PropertyPath result = next; if (result == null) { throw new IllegalStateException( @@ -334,17 +335,17 @@ public class PropertyPath implements Streamable { List iteratorSource = new ArrayList<>(); - var matcher = isQuoted(it.path) ? SPLITTER_FOR_QUOTED.matcher(it.path.replace("\\Q", "").replace("\\E", "")) + Matcher matcher = isQuoted(it.path) ? SPLITTER_FOR_QUOTED.matcher(it.path.replace("\\Q", "").replace("\\E", "")) : SPLITTER.matcher("_" + it.path); while (matcher.find()) { iteratorSource.add(matcher.group(1)); } - var parts = iteratorSource.iterator(); + Iterator parts = iteratorSource.iterator(); PropertyPath result = null; - var current = new Stack(); + Stack current = new Stack(); while (parts.hasNext()) { if (result == null) { @@ -377,9 +378,9 @@ public class PropertyPath implements Streamable { */ private static PropertyPath create(String source, Stack base) { - var previous = base.peek(); + PropertyPath previous = base.peek(); - var propertyPath = create(source, previous.typeInformation.getRequiredActualType(), base); + PropertyPath propertyPath = create(source, previous.typeInformation.getRequiredActualType(), base); previous.next = propertyPath; return propertyPath; } @@ -443,13 +444,13 @@ public class PropertyPath implements Streamable { exception = e; } - var matcher = NESTED_PROPERTY_PATTERN.matcher(source); + Matcher matcher = NESTED_PROPERTY_PATTERN.matcher(source); if (matcher.find() && matcher.start() != 0) { - var position = matcher.start(); - var head = source.substring(0, position); - var tail = source.substring(position); + int position = matcher.start(); + String head = source.substring(0, position); + String tail = source.substring(position); try { return create(head, type, tail + addTail, base); @@ -508,7 +509,7 @@ public class PropertyPath implements Streamable { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(type); + int result = ObjectUtils.nullSafeHashCode(type); result = 31 * result + ObjectUtils.nullSafeHashCode(path); return result; } diff --git a/src/main/java/org/springframework/data/mapping/PropertyReferenceException.java b/src/main/java/org/springframework/data/mapping/PropertyReferenceException.java index abb9e3d92..e14d30958 100644 --- a/src/main/java/org/springframework/data/mapping/PropertyReferenceException.java +++ b/src/main/java/org/springframework/data/mapping/PropertyReferenceException.java @@ -95,12 +95,12 @@ public class PropertyReferenceException extends RuntimeException { @Override public String getMessage() { - var builder = new StringBuilder( + StringBuilder builder = new StringBuilder( String.format(ERROR_TEMPLATE, propertyName, type.getType().getSimpleName())); - var potentialMatches = getPropertyMatches(); + Collection potentialMatches = getPropertyMatches(); if (!potentialMatches.isEmpty()) { - var matches = StringUtils.collectionToDelimitedString(potentialMatches, ",", "'", "'"); + String matches = StringUtils.collectionToDelimitedString(potentialMatches, ",", "'", "'"); builder.append(String.format(HINTS_TEMPLATE, matches)); } diff --git a/src/main/java/org/springframework/data/mapping/TargetAwareIdentifierAccessor.java b/src/main/java/org/springframework/data/mapping/TargetAwareIdentifierAccessor.java index b3e5f2f2a..8130339db 100644 --- a/src/main/java/org/springframework/data/mapping/TargetAwareIdentifierAccessor.java +++ b/src/main/java/org/springframework/data/mapping/TargetAwareIdentifierAccessor.java @@ -35,7 +35,7 @@ public abstract class TargetAwareIdentifierAccessor implements IdentifierAccesso @Override public Object getRequiredIdentifier() { - var identifier = getIdentifier(); + Object identifier = getIdentifier(); if (identifier != null) { return identifier; diff --git a/src/main/java/org/springframework/data/mapping/TraversalContext.java b/src/main/java/org/springframework/data/mapping/TraversalContext.java index ed5769b23..8187617bc 100644 --- a/src/main/java/org/springframework/data/mapping/TraversalContext.java +++ b/src/main/java/org/springframework/data/mapping/TraversalContext.java @@ -124,7 +124,7 @@ public class TraversalContext { Assert.isTrue(type.isAssignableFrom(property.getType()), () -> String .format("Cannot register a property handler for %s on a property of type %s!", type, property.getType())); - var caster = (Function) it -> type.cast(it); + Function caster = (Function) it -> type.cast(it); return registerHandler(property, caster.andThen(handler)); } @@ -139,7 +139,7 @@ public class TraversalContext { @Nullable Object postProcess(PersistentProperty property, @Nullable Object value) { - var handler = handlers.get(property); + Function handler = handlers.get(property); return handler == null ? value : handler.apply(value); } diff --git a/src/main/java/org/springframework/data/mapping/callback/DefaultEntityCallbacks.java b/src/main/java/org/springframework/data/mapping/callback/DefaultEntityCallbacks.java index c535af868..30f7ea1d2 100644 --- a/src/main/java/org/springframework/data/mapping/callback/DefaultEntityCallbacks.java +++ b/src/main/java/org/springframework/data/mapping/callback/DefaultEntityCallbacks.java @@ -19,6 +19,7 @@ import java.lang.reflect.Method; import java.util.Map; import java.util.function.BiFunction; +import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.BeanFactory; @@ -64,22 +65,22 @@ class DefaultEntityCallbacks implements EntityCallbacks { Assert.notNull(entity, "Entity must not be null!"); - var entityType = (Class) (entity != null ? ClassUtils.getUserClass(entity.getClass()) + Class entityType = (Class) (entity != null ? ClassUtils.getUserClass(entity.getClass()) : callbackDiscoverer.resolveDeclaredEntityType(callbackType).getRawClass()); - var callbackMethod = callbackMethodCache.computeIfAbsent(callbackType, it -> { + Method callbackMethod = callbackMethodCache.computeIfAbsent(callbackType, it -> { - var method = EntityCallbackDiscoverer.lookupCallbackMethod(it, entityType, args); + Method method = EntityCallbackDiscoverer.lookupCallbackMethod(it, entityType, args); ReflectionUtils.makeAccessible(method); return method; }); - var value = entity; + T value = entity; - for (var callback : callbackDiscoverer.getEntityCallbacks(entityType, + for (EntityCallback callback : callbackDiscoverer.getEntityCallbacks(entityType, ResolvableType.forClass(callbackType))) { - var callbackFunction = EntityCallbackDiscoverer + BiFunction, T, Object> callbackFunction = EntityCallbackDiscoverer .computeCallbackInvokerFunction(callback, callbackMethod, args); value = callbackInvoker.invokeCallback(callback, value, callbackFunction); } @@ -100,7 +101,7 @@ class DefaultEntityCallbacks implements EntityCallbacks { try { - var value = callbackInvokerFunction.apply(callback, entity); + Object value = callbackInvokerFunction.apply(callback, entity); if (value != null) { return (T) value; @@ -111,12 +112,12 @@ class DefaultEntityCallbacks implements EntityCallbacks { } catch (IllegalArgumentException | ClassCastException ex) { - var msg = ex.getMessage(); + String msg = ex.getMessage(); if (msg == null || EntityCallbackInvoker.matchesClassCastMessage(msg, entity.getClass())) { // Possibly a lambda-defined listener which we could not resolve the generic event type for // -> let's suppress the exception and just log a debug message. - var logger = LogFactory.getLog(getClass()); + Log logger = LogFactory.getLog(getClass()); if (logger.isDebugEnabled()) { logger.debug("Non-matching callback type for entity callback: " + callback, ex); } diff --git a/src/main/java/org/springframework/data/mapping/callback/DefaultReactiveEntityCallbacks.java b/src/main/java/org/springframework/data/mapping/callback/DefaultReactiveEntityCallbacks.java index e43adca75..d3f935be5 100644 --- a/src/main/java/org/springframework/data/mapping/callback/DefaultReactiveEntityCallbacks.java +++ b/src/main/java/org/springframework/data/mapping/callback/DefaultReactiveEntityCallbacks.java @@ -21,6 +21,7 @@ import java.lang.reflect.Method; import java.util.Map; import java.util.function.BiFunction; +import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.reactivestreams.Publisher; @@ -65,22 +66,22 @@ class DefaultReactiveEntityCallbacks implements ReactiveEntityCallbacks { Assert.notNull(entity, "Entity must not be null!"); - var entityType = (Class) (entity != null ? ClassUtils.getUserClass(entity.getClass()) + Class entityType = (Class) (entity != null ? ClassUtils.getUserClass(entity.getClass()) : callbackDiscoverer.resolveDeclaredEntityType(callbackType).getRawClass()); - var callbackMethod = callbackMethodCache.computeIfAbsent(callbackType, it -> { + Method callbackMethod = callbackMethodCache.computeIfAbsent(callbackType, it -> { - var method = EntityCallbackDiscoverer.lookupCallbackMethod(it, entityType, args); + Method method = EntityCallbackDiscoverer.lookupCallbackMethod(it, entityType, args); ReflectionUtils.makeAccessible(method); return method; }); - var deferredCallbackChain = Mono.just(entity); + Mono deferredCallbackChain = Mono.just(entity); - for (var callback : callbackDiscoverer.getEntityCallbacks(entityType, + for (EntityCallback callback : callbackDiscoverer.getEntityCallbacks(entityType, ResolvableType.forClass(callbackType))) { - var callbackFunction = EntityCallbackDiscoverer + BiFunction, T, Object> callbackFunction = EntityCallbackDiscoverer .computeCallbackInvokerFunction(callback, callbackMethod, args); deferredCallbackChain = deferredCallbackChain @@ -103,7 +104,7 @@ class DefaultReactiveEntityCallbacks implements ReactiveEntityCallbacks { try { - var value = callbackInvokerFunction.apply(callback, entity); + Object value = callbackInvokerFunction.apply(callback, entity); if (value != null) { return value instanceof Publisher ? Mono.from((Publisher) value) : Mono.just((T) value); @@ -113,12 +114,12 @@ class DefaultReactiveEntityCallbacks implements ReactiveEntityCallbacks { String.format("Callback invocation on %s returned null value for %s", callback.getClass(), entity)); } catch (ClassCastException ex) { - var msg = ex.getMessage(); + String msg = ex.getMessage(); if (msg == null || EntityCallbackInvoker.matchesClassCastMessage(msg, entity.getClass())) { // Possibly a lambda-defined listener which we could not resolve the generic event type for // -> let's suppress the exception and just log a debug message. - var logger = LogFactory.getLog(getClass()); + Log logger = LogFactory.getLog(getClass()); if (logger.isDebugEnabled()) { logger.debug("Non-matching callback type for entity callback: " + callback, ex); } diff --git a/src/main/java/org/springframework/data/mapping/callback/EntityCallbackDiscoverer.java b/src/main/java/org/springframework/data/mapping/callback/EntityCallbackDiscoverer.java index 036c79d91..213993dd0 100644 --- a/src/main/java/org/springframework/data/mapping/callback/EntityCallbackDiscoverer.java +++ b/src/main/java/org/springframework/data/mapping/callback/EntityCallbackDiscoverer.java @@ -79,7 +79,7 @@ class EntityCallbackDiscoverer { // Explicitly remove target for a proxy, if registered already, // in order to avoid double invocations of the same callback. - var singletonTarget = AopProxyUtils.getSingletonTarget(callback); + Object singletonTarget = AopProxyUtils.getSingletonTarget(callback); if (singletonTarget instanceof EntityCallback) { this.defaultRetriever.entityCallbacks.remove(singletonTarget); } @@ -134,10 +134,10 @@ class EntityCallbackDiscoverer { Collection> getEntityCallbacks(Class entity, ResolvableType callbackType) { Class sourceType = entity; - var cacheKey = new CallbackCacheKey(callbackType, sourceType); + CallbackCacheKey cacheKey = new CallbackCacheKey(callbackType, sourceType); // Quick check for existing entry on ConcurrentHashMap... - var retriever = this.retrieverCache.get(cacheKey); + CallbackRetriever retriever = this.retrieverCache.get(cacheKey); if (retriever != null) { return (Collection>) (Collection) retriever.getEntityCallbacks(); } @@ -152,7 +152,7 @@ class EntityCallbackDiscoverer { return (Collection>) (Collection) retriever.getEntityCallbacks(); } retriever = new CallbackRetriever(true); - var callbacks = retrieveEntityCallbacks(ResolvableType.forClass(sourceType), + Collection> callbacks = retrieveEntityCallbacks(ResolvableType.forClass(sourceType), callbackType, retriever); this.retrieverCache.put(cacheKey, retriever); return (Collection>) (Collection) callbacks; @@ -166,7 +166,7 @@ class EntityCallbackDiscoverer { @Nullable ResolvableType resolveDeclaredEntityType(Class callbackType) { - var eventType = entityTypeCache.get(callbackType); + ResolvableType eventType = entityTypeCache.get(callbackType); if (eventType == null) { eventType = ResolvableType.forClass(callbackType).as(EntityCallback.class).getGeneric(); @@ -196,7 +196,7 @@ class EntityCallbackDiscoverer { callbackBeans = new LinkedHashSet<>(this.defaultRetriever.entityCallbackBeans); } - for (var callback : callbacks) { + for (EntityCallback callback : callbacks) { if (supportsEvent(callback, entityType, callbackType)) { if (retriever != null) { retriever.getEntityCallbacks().add(callback); @@ -206,10 +206,10 @@ class EntityCallbackDiscoverer { } if (!callbackBeans.isEmpty()) { - var beanFactory = getRequiredBeanFactory(); - for (var callbackBeanName : callbackBeans) { + BeanFactory beanFactory = getRequiredBeanFactory(); + for (String callbackBeanName : callbackBeans) { try { - var callbackImplType = beanFactory.getType(callbackBeanName); + Class callbackImplType = beanFactory.getType(callbackBeanName); if (callbackImplType == null || supportsEvent(callbackImplType, entityType)) { EntityCallback callback = beanFactory.getBean(callbackBeanName, EntityCallback.class); if (!allCallbacks.contains(callback) && supportsEvent(callback, entityType, callbackType)) { @@ -253,7 +253,7 @@ class EntityCallbackDiscoverer { */ protected boolean supportsEvent(Class callback, ResolvableType entityType) { - var declaredEventType = resolveDeclaredEntityType(callback); + ResolvableType declaredEventType = resolveDeclaredEntityType(callback); return (declaredEventType == null || declaredEventType.isAssignableFrom(entityType)); } @@ -331,7 +331,7 @@ class EntityCallbackDiscoverer { return (entityCallback, entity) -> { - var invocationArgs = new Object[args.length + 1]; + Object[] invocationArgs = new Object[args.length + 1]; invocationArgs[0] = entity; if (args.length > 0) { System.arraycopy(args, 0, invocationArgs, 1, args.length); @@ -371,8 +371,8 @@ class EntityCallbackDiscoverer { allCallbacks.addAll(this.entityCallbacks); if (!this.entityCallbackBeans.isEmpty()) { - var beanFactory = getRequiredBeanFactory(); - for (var callbackBeanName : this.entityCallbackBeans) { + BeanFactory beanFactory = getRequiredBeanFactory(); + for (String callbackBeanName : this.entityCallbackBeans) { try { EntityCallback callback = beanFactory.getBean(callbackBeanName, EntityCallback.class); if (this.preFiltered || !allCallbacks.contains(callback)) { @@ -422,7 +422,7 @@ class EntityCallbackDiscoverer { return true; } - var otherKey = (CallbackCacheKey) other; + CallbackCacheKey otherKey = (CallbackCacheKey) other; return (this.callbackType.equals(otherKey.callbackType) && ObjectUtils.nullSafeEquals(this.entityType, otherKey.entityType)); diff --git a/src/main/java/org/springframework/data/mapping/callback/EntityCallbackInvoker.java b/src/main/java/org/springframework/data/mapping/callback/EntityCallbackInvoker.java index 701ba85e0..03ad874df 100644 --- a/src/main/java/org/springframework/data/mapping/callback/EntityCallbackInvoker.java +++ b/src/main/java/org/springframework/data/mapping/callback/EntityCallbackInvoker.java @@ -48,7 +48,7 @@ interface EntityCallbackInvoker { } // On Java 9, the message used to contain the module name: "java.base/java.lang.String cannot be cast..." - var moduleSeparatorIndex = exceptionMessage.indexOf('/'); + int moduleSeparatorIndex = exceptionMessage.indexOf('/'); if (moduleSeparatorIndex != -1 && exceptionMessage.startsWith(eventClass.getName(), moduleSeparatorIndex + 1)) { return true; } diff --git a/src/main/java/org/springframework/data/mapping/callback/EntityCallbacks.java b/src/main/java/org/springframework/data/mapping/callback/EntityCallbacks.java index 8063ebae7..75161d531 100644 --- a/src/main/java/org/springframework/data/mapping/callback/EntityCallbacks.java +++ b/src/main/java/org/springframework/data/mapping/callback/EntityCallbacks.java @@ -55,8 +55,8 @@ public interface EntityCallbacks { */ static EntityCallbacks create(EntityCallback... callbacks) { - var entityCallbacks = create(); - for (var callback : callbacks) { + EntityCallbacks entityCallbacks = create(); + for (EntityCallback callback : callbacks) { entityCallbacks.addEntityCallback(callback); } return entityCallbacks; diff --git a/src/main/java/org/springframework/data/mapping/callback/ReactiveEntityCallbacks.java b/src/main/java/org/springframework/data/mapping/callback/ReactiveEntityCallbacks.java index c12baded2..781db6ae4 100644 --- a/src/main/java/org/springframework/data/mapping/callback/ReactiveEntityCallbacks.java +++ b/src/main/java/org/springframework/data/mapping/callback/ReactiveEntityCallbacks.java @@ -58,8 +58,8 @@ public interface ReactiveEntityCallbacks { */ static ReactiveEntityCallbacks create(EntityCallback... callbacks) { - var entityCallbacks = create(); - for (var callback : callbacks) { + ReactiveEntityCallbacks entityCallbacks = create(); + for (EntityCallback callback : callbacks) { entityCallbacks.addEntityCallback(callback); } return entityCallbacks; diff --git a/src/main/java/org/springframework/data/mapping/context/AbstractMappingContext.java b/src/main/java/org/springframework/data/mapping/context/AbstractMappingContext.java index 70550e4c5..deeec8c62 100644 --- a/src/main/java/org/springframework/data/mapping/context/AbstractMappingContext.java +++ b/src/main/java/org/springframework/data/mapping/context/AbstractMappingContext.java @@ -17,6 +17,7 @@ package org.springframework.data.mapping.context; import java.beans.PropertyDescriptor; import java.lang.reflect.Field; +import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.Collection; import java.util.Collections; @@ -112,8 +113,8 @@ public abstract class AbstractMappingContext(this); - var instantiators = new EntityInstantiators(); - var accessorFactory = NativeDetector.inNativeImage() + EntityInstantiators instantiators = new EntityInstantiators(); + PersistentPropertyAccessorFactory accessorFactory = NativeDetector.inNativeImage() ? BeanWrapperPropertyAccessorFactory.INSTANCE : new ClassGeneratingPropertyAccessorFactory(); @@ -196,7 +197,7 @@ public abstract class AbstractMappingContext entity = persistentEntities.get(ClassTypeInformation.from(type)); return entity == null ? false : entity.isPresent(); } @@ -211,7 +212,7 @@ public abstract class AbstractMappingContext entity = persistentEntities.get(type); if (entity != null) { return entity.orElse(null); @@ -250,7 +251,7 @@ public abstract class AbstractMappingContext typeInfo = persistentProperty.getTypeInformation(); return getPersistentEntity(typeInfo.getRequiredActualType()); } @@ -313,7 +314,7 @@ public abstract class AbstractMappingContext persistentEntity = persistentEntities.get(typeInformation); if (persistentEntity != null) { return persistentEntity; @@ -358,9 +359,9 @@ public abstract class AbstractMappingContext type = userTypeInformation.getType(); - var entity = createPersistentEntity(userTypeInformation); + E entity = createPersistentEntity(userTypeInformation); entity.setEvaluationContextProvider(evaluationContextProvider); // Eagerly cache the entity as we might have to find it during recursive lookups. @@ -371,14 +372,14 @@ public abstract class AbstractMappingContext descriptors = new HashMap<>(); - for (var descriptor : pds) { + for (PropertyDescriptor descriptor : pds) { descriptors.put(descriptor.getName(), descriptor); } - var persistentPropertyCreator = new PersistentPropertyCreator(entity, descriptors); + PersistentPropertyCreator persistentPropertyCreator = new PersistentPropertyCreator(entity, descriptors); ReflectionUtils.doWithFields(type, persistentPropertyCreator, PersistentPropertyFilter.INSTANCE); persistentPropertyCreator.addPropertiesForRemainingDescriptors(); @@ -490,12 +491,12 @@ public abstract class AbstractMappingContext type = entity.getTypeInformation(); ReflectionUtils.makeAccessible(field); - var property = Optional.ofNullable(descriptors.get(fieldName))// + Property property = Optional.ofNullable(descriptors.get(fieldName))// .map(it -> Property.of(type, field, it))// .orElseGet(() -> Property.of(type, field)); @@ -521,7 +522,7 @@ public abstract class AbstractMappingContext declaringClass = getDeclaringClass(property); + Class existingDeclaringClass = getDeclaringClass(existingProperty); - var propertyType = getPropertyType(property); - var existingPropertyType = getPropertyType(existingProperty); + Class propertyType = getPropertyType(property); + Class existingPropertyType = getPropertyType(existingProperty); if (!propertyType.isAssignableFrom(existingPropertyType)) { @@ -584,12 +585,12 @@ public abstract class AbstractMappingContext getDeclaringClass(PersistentProperty persistentProperty) { - var field = persistentProperty.getField(); + Field field = persistentProperty.getField(); if (field != null) { return field.getDeclaringClass(); } - var accessor = persistentProperty.getGetter(); + Method accessor = persistentProperty.getGetter(); if (accessor == null) { accessor = persistentProperty.getSetter(); @@ -608,22 +609,22 @@ public abstract class AbstractMappingContext getPropertyType(PersistentProperty persistentProperty) { - var field = persistentProperty.getField(); + Field field = persistentProperty.getField(); if (field != null) { return field.getType(); } - var getter = persistentProperty.getGetter(); + Method getter = persistentProperty.getGetter(); if (getter != null) { return getter.getReturnType(); } - var setter = persistentProperty.getSetter(); + Method setter = persistentProperty.getSetter(); if (setter != null) { return setter.getParameterTypes()[0]; } - var wither = persistentProperty.getWither(); + Method wither = persistentProperty.getWither(); if (wither != null) { return wither.getParameterTypes()[0]; } diff --git a/src/main/java/org/springframework/data/mapping/context/DefaultPersistentPropertyPath.java b/src/main/java/org/springframework/data/mapping/context/DefaultPersistentPropertyPath.java index a8a3ca2c0..68a327588 100644 --- a/src/main/java/org/springframework/data/mapping/context/DefaultPersistentPropertyPath.java +++ b/src/main/java/org/springframework/data/mapping/context/DefaultPersistentPropertyPath.java @@ -80,7 +80,7 @@ class DefaultPersistentPropertyPath

> implements } @SuppressWarnings("null") - var leafPropertyType = getLeafProperty().getActualType(); + Class leafPropertyType = getLeafProperty().getActualType(); Assert.isTrue(property.getOwner().getType().equals(leafPropertyType), () -> String.format("Cannot append property %s to type %s!", property.getName(), leafPropertyType.getName())); @@ -112,7 +112,7 @@ class DefaultPersistentPropertyPath

> implements Assert.hasText(delimiter, "Delimiter must not be null or empty!"); Assert.notNull(converter, "Converter must not be null!"); - var result = properties.stream() // + String result = properties.stream() // .map(converter::convert) // .filter(StringUtils::hasText) // .collect(Collectors.joining(delimiter)); @@ -134,15 +134,15 @@ class DefaultPersistentPropertyPath

> implements Assert.notNull(path, "PersistentPropertyPath must not be null!"); - var iterator = path.iterator(); + Iterator

iterator = path.iterator(); - for (var property : this) { + for (P property : this) { if (!iterator.hasNext()) { return false; } - var reference = iterator.next(); + P reference = iterator.next(); if (!property.equals(reference)) { return false; @@ -159,9 +159,9 @@ class DefaultPersistentPropertyPath

> implements } List

result = new ArrayList<>(); - var iterator = iterator(); + Iterator

iterator = iterator(); - for (var i = 0; i < base.getLength(); i++) { + for (int i = 0; i < base.getLength(); i++) { iterator.next(); } @@ -174,7 +174,7 @@ class DefaultPersistentPropertyPath

> implements public PersistentPropertyPath

getParentPath() { - var size = properties.size(); + int size = properties.size(); return size == 0 ? this : new DefaultPersistentPropertyPath<>(properties.subList(0, size - 1)); } diff --git a/src/main/java/org/springframework/data/mapping/context/InvalidPersistentPropertyPath.java b/src/main/java/org/springframework/data/mapping/context/InvalidPersistentPropertyPath.java index ea8e1ec02..75f6a6a69 100644 --- a/src/main/java/org/springframework/data/mapping/context/InvalidPersistentPropertyPath.java +++ b/src/main/java/org/springframework/data/mapping/context/InvalidPersistentPropertyPath.java @@ -109,14 +109,14 @@ public class InvalidPersistentPropertyPath extends MappingException { return ""; } - var dotPath = path.toDotPath(); + String dotPath = path.toDotPath(); return dotPath == null ? "" : dotPath; } private static String createMessage(TypeInformation type, String unresolvableSegment) { - var potentialMatches = detectPotentialMatches(unresolvableSegment, type.getType()); + Set potentialMatches = detectPotentialMatches(unresolvableSegment, type.getType()); Object match = StringUtils.collectionToCommaDelimitedString(potentialMatches); return String.format(DEFAULT_MESSAGE, unresolvableSegment, type.getType(), match); diff --git a/src/main/java/org/springframework/data/mapping/context/MappingContext.java b/src/main/java/org/springframework/data/mapping/context/MappingContext.java index d305e224b..6481d92d9 100644 --- a/src/main/java/org/springframework/data/mapping/context/MappingContext.java +++ b/src/main/java/org/springframework/data/mapping/context/MappingContext.java @@ -70,7 +70,7 @@ public interface MappingContext, P extends Pers */ default E getRequiredPersistentEntity(Class type) throws MappingException { - var entity = getPersistentEntity(type); + E entity = getPersistentEntity(type); if (entity != null) { return entity; @@ -110,7 +110,7 @@ public interface MappingContext, P extends Pers */ default E getRequiredPersistentEntity(TypeInformation type) throws MappingException { - var entity = getPersistentEntity(type); + E entity = getPersistentEntity(type); if (entity != null) { return entity; @@ -143,7 +143,7 @@ public interface MappingContext, P extends Pers */ default E getRequiredPersistentEntity(P persistentProperty) throws MappingException { - var entity = getPersistentEntity(persistentProperty); + E entity = getPersistentEntity(persistentProperty); if (entity != null) { return entity; diff --git a/src/main/java/org/springframework/data/mapping/context/PersistentEntities.java b/src/main/java/org/springframework/data/mapping/context/PersistentEntities.java index 698ba03c6..f38b9a7b6 100644 --- a/src/main/java/org/springframework/data/mapping/context/PersistentEntities.java +++ b/src/main/java/org/springframework/data/mapping/context/PersistentEntities.java @@ -192,13 +192,13 @@ public class PersistentEntities implements Streamable getEntityUltimatelyReferredToBy(PersistentProperty property) { - var propertyType = property.getTypeInformation().getActualType(); + TypeInformation propertyType = property.getTypeInformation().getActualType(); if (propertyType == null || !property.isAssociation()) { return null; } - var associationTargetType = property.getAssociationTargetType(); + Class associationTargetType = property.getAssociationTargetType(); return associationTargetType == null // ? getEntityIdentifiedBy(propertyType) // @@ -216,7 +216,7 @@ public class PersistentEntities implements Streamable> entity = getEntityUltimatelyReferredToBy(property); return entity == null // ? property.getTypeInformation().getRequiredActualType() // @@ -240,10 +240,10 @@ public class PersistentEntities implements Streamable> persistentProperties : context .getPersistentEntities()) { - var idProperty = persistentProperties.getIdProperty(); + PersistentProperty> idProperty = persistentProperties.getIdProperty(); if (idProperty != null && type.equals(idProperty.getTypeInformation().getActualType())) { - var owner = idProperty.getOwner(); + PersistentEntity> owner = idProperty.getOwner(); entities.add(owner); } } @@ -251,7 +251,7 @@ public class PersistentEntities implements Streamable 1) { - var message = "Found multiple entities identified by " + type.getType() + ": "; + String message = "Found multiple entities identified by " + type.getType() + ": "; message += entities.stream().map(it -> it.getType().getName()).collect(Collectors.joining(", ")); message += "! Introduce dedicated unique identifier types or explicitly define the target type in @Reference!"; diff --git a/src/main/java/org/springframework/data/mapping/context/PersistentPropertyPathFactory.java b/src/main/java/org/springframework/data/mapping/context/PersistentPropertyPathFactory.java index 7d0b4ad81..82a32cb2f 100644 --- a/src/main/java/org/springframework/data/mapping/context/PersistentPropertyPathFactory.java +++ b/src/main/java/org/springframework/data/mapping/context/PersistentPropertyPathFactory.java @@ -19,6 +19,7 @@ import java.util.*; import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collectors; +import java.util.stream.Stream; import org.springframework.data.mapping.AssociationHandler; import org.springframework.data.mapping.PersistentEntity; @@ -180,26 +181,26 @@ class PersistentPropertyPathFactory, P extends */ private PersistentPropertyPath

createPersistentPropertyPath(String propertyPath, TypeInformation type) { - var trimmedPath = propertyPath.trim(); + String trimmedPath = propertyPath.trim(); List parts = trimmedPath.isEmpty() // ? Collections.emptyList() // : Arrays.asList(trimmedPath.split("\\.")); DefaultPersistentPropertyPath

path = DefaultPersistentPropertyPath.empty(); - var iterator = parts.iterator(); - var current = context.getRequiredPersistentEntity(type); + Iterator iterator = parts.iterator(); + E current = context.getRequiredPersistentEntity(type); while (iterator.hasNext()) { - var segment = iterator.next(); - final var currentPath = path; + String segment = iterator.next(); + final DefaultPersistentPropertyPath

currentPath = path; - var pair = getPair(path, iterator, segment, current); + Pair, E> pair = getPair(path, iterator, segment, current); if (pair == null) { - var source = StringUtils.collectionToDelimitedString(parts, "."); + String source = StringUtils.collectionToDelimitedString(parts, "."); throw new InvalidPersistentPropertyPath(source, type, segment, currentPath); } @@ -215,7 +216,7 @@ class PersistentPropertyPathFactory, P extends private Pair, E> getPair(DefaultPersistentPropertyPath

path, Iterator iterator, String segment, E entity) { - var property = entity.getPersistentProperty(segment); + P property = entity.getPersistentProperty(segment); if (property == null) { return null; @@ -227,13 +228,13 @@ class PersistentPropertyPathFactory, P extends private Collection> from(TypeInformation type, Predicate filter, Predicate

traversalGuard, DefaultPersistentPropertyPath

basePath) { - var actualType = type.getActualType(); + TypeInformation actualType = type.getActualType(); if (actualType == null) { return Collections.emptyList(); } - var entity = context.getRequiredPersistentEntity(actualType); + E entity = context.getRequiredPersistentEntity(actualType); return from(entity, filter, traversalGuard, basePath); } @@ -242,16 +243,16 @@ class PersistentPropertyPathFactory, P extends Set> properties = new HashSet<>(); - var propertyTester = (PropertyHandler

) persistentProperty -> { + PropertyHandler

propertyTester = (PropertyHandler

) persistentProperty -> { - var typeInformation = persistentProperty.getTypeInformation(); - var actualPropertyType = typeInformation.getActualType(); + TypeInformation typeInformation = persistentProperty.getTypeInformation(); + TypeInformation actualPropertyType = typeInformation.getActualType(); if (basePath.containsPropertyOfType(actualPropertyType)) { return; } - var currentPath = basePath.append(persistentProperty); + DefaultPersistentPropertyPath

currentPath = basePath.append(persistentProperty); if (filter.test(persistentProperty)) { properties.add(currentPath); @@ -264,7 +265,7 @@ class PersistentPropertyPathFactory, P extends entity.doWithProperties(propertyTester); - var handler = (AssociationHandler

) association -> propertyTester + AssociationHandler

handler = (AssociationHandler

) association -> propertyTester .doWithPersistentProperty(association.getInverse()); entity.doWithAssociations(handler); @@ -313,7 +314,7 @@ class PersistentPropertyPathFactory, P extends @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(type); + int result = ObjectUtils.nullSafeHashCode(type); result = 31 * result + ObjectUtils.nullSafeHashCode(path); return result; } @@ -374,7 +375,7 @@ class PersistentPropertyPathFactory, P extends return false; } - var dotPath = path.toDotPath(); + String dotPath = path.toDotPath(); return stream().anyMatch(it -> dotPath.equals(it.toDotPath())); } @@ -389,7 +390,7 @@ class PersistentPropertyPathFactory, P extends Assert.notNull(predicate, "Predicate must not be null!"); - var paths = this.stream() // + List> paths = this.stream() // .filter(it -> !it.stream().anyMatch(predicate)) // .collect(Collectors.toList()); @@ -418,10 +419,11 @@ class PersistentPropertyPathFactory, P extends @SuppressWarnings("null") public int compare(PersistentPropertyPath left, PersistentPropertyPath right) { - var mapper = (Function, Integer>) it -> it.getName().length(); + Function, Integer> mapper = (Function, Integer>) it -> it.getName() + .length(); - var leftNames = left.stream().map(mapper); - var rightNames = right.stream().map(mapper); + Stream leftNames = left.stream().map(mapper); + Stream rightNames = right.stream().map(mapper); return StreamUtils.zip(leftNames, rightNames, (l, r) -> l - r) // .filter(it -> it != 0) // diff --git a/src/main/java/org/springframework/data/mapping/model/AbstractPersistentProperty.java b/src/main/java/org/springframework/data/mapping/model/AbstractPersistentProperty.java index 4fb2e9ebe..0d8b62ae0 100644 --- a/src/main/java/org/springframework/data/mapping/model/AbstractPersistentProperty.java +++ b/src/main/java/org/springframework/data/mapping/model/AbstractPersistentProperty.java @@ -210,7 +210,7 @@ public abstract class AbstractPersistentProperty

@Override public Class getAssociationTargetType() { - var result = getAssociationTargetTypeInformation(); + TypeInformation result = getAssociationTargetTypeInformation(); return result != null ? result.getType() : null; } @@ -253,7 +253,7 @@ public abstract class AbstractPersistentProperty

if (isMap()) { - var mapValueType = information.getMapValueType(); + TypeInformation mapValueType = information.getMapValueType(); if (mapValueType != null) { return mapValueType.getType(); @@ -278,7 +278,7 @@ public abstract class AbstractPersistentProperty

protected TypeInformation getActualTypeInformation() { - var targetType = associationTargetType.getNullable(); + TypeInformation targetType = associationTargetType.getNullable(); return targetType == null ? information.getRequiredActualType() : targetType; } @@ -308,10 +308,10 @@ public abstract class AbstractPersistentProperty

private Set> detectEntityTypes(SimpleTypeHolder simpleTypes) { - var typeToStartWith = getAssociationTargetTypeInformation(); + TypeInformation typeToStartWith = getAssociationTargetTypeInformation(); typeToStartWith = typeToStartWith == null ? information : typeToStartWith; - var result = detectEntityTypes(typeToStartWith); + Set> result = detectEntityTypes(typeToStartWith); return result.stream() .filter(it -> !simpleTypes.isSimpleType(it.getType())) @@ -331,7 +331,7 @@ public abstract class AbstractPersistentProperty

result.addAll(detectEntityTypes(source.getComponentType())); } - var actualType = source.getActualType(); + TypeInformation actualType = source.getActualType(); if (source.equals(actualType)) { result.add(source); diff --git a/src/main/java/org/springframework/data/mapping/model/AnnotationBasedPersistentProperty.java b/src/main/java/org/springframework/data/mapping/model/AnnotationBasedPersistentProperty.java index 75d76bf2a..9e5eac17f 100644 --- a/src/main/java/org/springframework/data/mapping/model/AnnotationBasedPersistentProperty.java +++ b/src/main/java/org/springframework/data/mapping/model/AnnotationBasedPersistentProperty.java @@ -33,9 +33,9 @@ import org.springframework.data.annotation.ReadOnlyProperty; import org.springframework.data.annotation.Reference; import org.springframework.data.annotation.Transient; import org.springframework.data.annotation.Version; -import org.springframework.data.convert.ValueConverter; import org.springframework.data.convert.PropertyValueConverter; import org.springframework.data.convert.ValueConversionContext; +import org.springframework.data.convert.ValueConverter; import org.springframework.data.mapping.Association; import org.springframework.data.mapping.MappingException; import org.springframework.data.mapping.PersistentEntity; @@ -67,7 +67,7 @@ public abstract class AnnotationBasedPersistentProperty

usePropertyAccess = Lazy.of(() -> { - var accessType = findPropertyOrOwnerAnnotation(AccessType.class); + AccessType accessType = findPropertyOrOwnerAnnotation(AccessType.class); return accessType != null && Type.PROPERTY.equals(accessType.value()) || super.usePropertyAccess(); }); @@ -108,7 +108,7 @@ public abstract class AnnotationBasedPersistentProperty

{ - for (var annotation : it.getAnnotations()) { + for (Annotation annotation : it.getAnnotations()) { - var annotationType = annotation.annotationType(); + Class annotationType = annotation.annotationType(); - var mergedAnnotation = AnnotatedElementUtils.getMergedAnnotation(it, annotationType); + Annotation mergedAnnotation = AnnotatedElementUtils.getMergedAnnotation(it, annotationType); validateAnnotation(mergedAnnotation, "Ambiguous mapping! Annotation %s configured " @@ -141,10 +141,10 @@ public abstract class AnnotationBasedPersistentProperty

{ - for (var annotation : it.getAnnotations()) { + for (Annotation annotation : it.getAnnotations()) { - var annotationType = annotation.annotationType(); - var mergedAnnotation = AnnotatedElementUtils.getMergedAnnotation(it, annotationType); + Class annotationType = annotation.annotationType(); + Annotation mergedAnnotation = AnnotatedElementUtils.getMergedAnnotation(it, annotationType); validateAnnotation(mergedAnnotation, "Ambiguous mapping! Annotation %s configured " + "on field %s and one of its accessor methods in class %s!", @@ -165,7 +165,7 @@ public abstract class AnnotationBasedPersistentProperty

annotationType = candidate.annotationType(); if (!annotationType.getName().startsWith(SPRING_DATA_PACKAGE)) { return; @@ -240,7 +240,7 @@ public abstract class AnnotationBasedPersistentProperty

Optional doFindAnnotation(Class annotationType) { - var annotation = annotationCache.get(annotationType); + Optional annotation = annotationCache.get(annotationType); if (annotation != null) { return (Optional) annotation; @@ -259,7 +259,7 @@ public abstract class AnnotationBasedPersistentProperty

A findPropertyOrOwnerAnnotation(Class annotationType) { - var annotation = findAnnotation(annotationType); + A annotation = findAnnotation(annotationType); return annotation != null ? annotation : getOwner().findAnnotation(annotationType); } @@ -303,7 +303,7 @@ public abstract class AnnotationBasedPersistentProperty

> implement propertyCache.computeIfAbsent(property.getName(), key -> property); - var candidate = returnPropertyIfBetterIdPropertyCandidateOrNull(property); + P candidate = returnPropertyIfBetterIdPropertyCandidateOrNull(property); if (candidate != null) { this.idProperty = candidate; @@ -190,7 +199,7 @@ public class BasicPersistentEntity> implement if (property.isVersionProperty()) { - var versionProperty = this.versionProperty; + P versionProperty = this.versionProperty; if (versionProperty != null) { @@ -223,7 +232,7 @@ public class BasicPersistentEntity> implement return null; } - var idProperty = this.idProperty; + P idProperty = this.idProperty; if (idProperty != null) { throw new MappingException(String.format("Attempt to add id property %s but already have property %s registered " @@ -255,7 +264,7 @@ public class BasicPersistentEntity> implement private List

doFindPersistentProperty(Class annotationType) { - var annotatedProperties = properties.stream() // + List

annotatedProperties = properties.stream() // .filter(it -> it.isAnnotationPresent(annotationType)) // .collect(Collectors.toList()); @@ -284,7 +293,7 @@ public class BasicPersistentEntity> implement Assert.notNull(handler, "PropertyHandler must not be null!"); - for (var property : persistentPropertiesCache) { + for (P property : persistentPropertiesCache) { handler.doWithPersistentProperty(property); } } @@ -303,7 +312,7 @@ public class BasicPersistentEntity> implement Assert.notNull(handler, "Handler must not be null!"); - for (var association : associations) { + for (Association

association : associations) { handler.doWithAssociation(association); } } @@ -394,7 +403,7 @@ public class BasicPersistentEntity> implement @Override public Iterator

iterator() { - var iterator = properties.iterator(); + Iterator

iterator = properties.iterator(); return new Iterator

() { @@ -465,7 +474,7 @@ public class BasicPersistentEntity> implement */ private static Alias getAliasFromAnnotation(Class type) { - var typeAlias = AnnotatedElementUtils.findMergedAnnotation(type, TypeAlias.class); + TypeAlias typeAlias = AnnotatedElementUtils.findMergedAnnotation(type, TypeAlias.class); if (typeAlias != null && StringUtils.hasText(typeAlias.value())) { return Alias.of(typeAlias.value()); diff --git a/src/main/java/org/springframework/data/mapping/model/BeanWrapper.java b/src/main/java/org/springframework/data/mapping/model/BeanWrapper.java index 21ad71da6..879a3b29f 100644 --- a/src/main/java/org/springframework/data/mapping/model/BeanWrapper.java +++ b/src/main/java/org/springframework/data/mapping/model/BeanWrapper.java @@ -19,7 +19,10 @@ import kotlin.reflect.KCallable; import kotlin.reflect.KParameter; import kotlin.reflect.KParameter.Kind; +import java.lang.reflect.Field; +import java.lang.reflect.Method; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import org.springframework.data.mapping.MappingException; @@ -61,7 +64,7 @@ class BeanWrapper implements PersistentPropertyAccessor { if (property.isImmutable()) { - var wither = property.getWither(); + Method wither = property.getWither(); if (wither != null) { @@ -82,14 +85,14 @@ class BeanWrapper implements PersistentPropertyAccessor { if (!property.usePropertyAccess()) { - var field = property.getRequiredField(); + Field field = property.getRequiredField(); ReflectionUtils.makeAccessible(field); ReflectionUtils.setField(field, bean, value); return; } - var setter = property.getRequiredSetter(); + Method setter = property.getRequiredSetter(); ReflectionUtils.makeAccessible(setter); ReflectionUtils.invokeMethod(setter, bean, value); @@ -122,13 +125,13 @@ class BeanWrapper implements PersistentPropertyAccessor { if (!property.usePropertyAccess()) { - var field = property.getRequiredField(); + Field field = property.getRequiredField(); ReflectionUtils.makeAccessible(field); return ReflectionUtils.getField(field, bean); } - var getter = property.getRequiredGetter(); + Method getter = property.getRequiredGetter(); ReflectionUtils.makeAccessible(getter); return ReflectionUtils.invokeMethod(getter, bean); @@ -160,8 +163,8 @@ class BeanWrapper implements PersistentPropertyAccessor { */ static Object setProperty(PersistentProperty property, T bean, @Nullable Object value) { - var type = property.getOwner().getType(); - var copy = copyMethodCache.computeIfAbsent(type, it -> getCopyMethod(it, property)); + Class type = property.getOwner().getType(); + KCallable copy = copyMethodCache.computeIfAbsent(type, it -> getCopyMethod(it, property)); if (copy == null) { throw new UnsupportedOperationException(String.format( @@ -176,9 +179,9 @@ class BeanWrapper implements PersistentPropertyAccessor { Map args = new LinkedHashMap<>(2, 1); - var parameters = callable.getParameters(); + List parameters = callable.getParameters(); - for (var parameter : parameters) { + for (KParameter parameter : parameters) { if (parameter.getKind() == Kind.INSTANCE) { args.put(parameter, bean); diff --git a/src/main/java/org/springframework/data/mapping/model/CamelCaseSplittingFieldNamingStrategy.java b/src/main/java/org/springframework/data/mapping/model/CamelCaseSplittingFieldNamingStrategy.java index cd2f3294f..b2a60f424 100644 --- a/src/main/java/org/springframework/data/mapping/model/CamelCaseSplittingFieldNamingStrategy.java +++ b/src/main/java/org/springframework/data/mapping/model/CamelCaseSplittingFieldNamingStrategy.java @@ -48,12 +48,12 @@ public class CamelCaseSplittingFieldNamingStrategy implements FieldNamingStrateg @Override public String getFieldName(PersistentProperty property) { - var parts = ParsingUtils.splitCamelCaseToLower(property.getName()); + List parts = ParsingUtils.splitCamelCaseToLower(property.getName()); List result = new ArrayList<>(); - for (var part : parts) { + for (String part : parts) { - var candidate = preparePart(part); + String candidate = preparePart(part); if (StringUtils.hasText(candidate)) { result.add(candidate); diff --git a/src/main/java/org/springframework/data/mapping/model/ClassGeneratingEntityInstantiator.java b/src/main/java/org/springframework/data/mapping/model/ClassGeneratingEntityInstantiator.java index 28cb61f02..90c73dc46 100644 --- a/src/main/java/org/springframework/data/mapping/model/ClassGeneratingEntityInstantiator.java +++ b/src/main/java/org/springframework/data/mapping/model/ClassGeneratingEntityInstantiator.java @@ -17,6 +17,8 @@ package org.springframework.data.mapping.model; import static org.springframework.asm.Opcodes.*; +import java.lang.reflect.Constructor; +import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.Arrays; import java.util.HashMap; @@ -87,7 +89,7 @@ class ClassGeneratingEntityInstantiator implements EntityInstantiator { public , P extends PersistentProperty

> T createInstance(E entity, ParameterValueProvider

provider) { - var instantiator = this.entityInstantiators.get(entity.getTypeInformation()); + EntityInstantiator instantiator = this.entityInstantiators.get(entity.getTypeInformation()); if (instantiator == null) { instantiator = potentiallyCreateAndRegisterEntityInstantiator(entity); @@ -103,8 +105,8 @@ class ClassGeneratingEntityInstantiator implements EntityInstantiator { private synchronized EntityInstantiator potentiallyCreateAndRegisterEntityInstantiator( PersistentEntity entity) { - var map = this.entityInstantiators; - var instantiator = map.get(entity.getTypeInformation()); + Map, EntityInstantiator> map = this.entityInstantiators; + EntityInstantiator instantiator = map.get(entity.getTypeInformation()); if (instantiator != null) { return instantiator; @@ -176,7 +178,7 @@ class ClassGeneratingEntityInstantiator implements EntityInstantiator { return true; } - var type = entity.getType(); + Class type = entity.getType(); if (type.isInterface() // || type.isArray() // @@ -186,7 +188,7 @@ class ClassGeneratingEntityInstantiator implements EntityInstantiator { return true; } - var creatorMetadata = entity.getInstanceCreatorMetadata(); + InstanceCreatorMetadata> creatorMetadata = entity.getInstanceCreatorMetadata(); if (creatorMetadata == null) { return true; @@ -268,7 +270,7 @@ class ClassGeneratingEntityInstantiator implements EntityInstantiator { public , P extends PersistentProperty

> T createInstance(E entity, ParameterValueProvider

provider) { - var params = extractInvocationArguments(entity.getInstanceCreatorMetadata(), provider); + Object[] params = extractInvocationArguments(entity.getInstanceCreatorMetadata(), provider); try { return (T) instantiator.newInstance(params); @@ -292,9 +294,9 @@ class ClassGeneratingEntityInstantiator implements EntityInstantiator { return allocateArguments(0); } - var params = allocateArguments(constructor.getParameterCount()); + Object[] params = allocateArguments(constructor.getParameterCount()); - var index = 0; + int index = 0; for (Parameter parameter : constructor.getParameters()) { params[index++] = provider.getParameterValue(parameter); } @@ -335,7 +337,7 @@ class ClassGeneratingEntityInstantiator implements EntityInstantiator { public , P extends PersistentProperty

> T createInstance(E entity, ParameterValueProvider

provider) { - var params = extractInvocationArguments(entity.getInstanceCreatorMetadata(), provider); + Object[] params = extractInvocationArguments(entity.getInstanceCreatorMetadata(), provider); throw new MappingInstantiationException(entity, Arrays.asList(params), new BeanInstantiationException(typeToCreate, "Class is abstract")); @@ -401,9 +403,9 @@ class ClassGeneratingEntityInstantiator implements EntityInstantiator { public Class generateCustomInstantiatorClass(PersistentEntity entity, @Nullable InstanceCreatorMetadata constructor) { - var className = generateClassName(entity); - var type = entity.getType(); - var classLoader = type.getClassLoader(); + String className = generateClassName(entity); + Class type = entity.getType(); + ClassLoader classLoader = type.getClassLoader(); if (ClassUtils.isPresent(className, classLoader)) { @@ -414,7 +416,7 @@ class ClassGeneratingEntityInstantiator implements EntityInstantiator { } } - var bytecode = generateBytecode(className, entity, constructor); + byte[] bytecode = generateBytecode(className, entity, constructor); try { return ReflectUtils.defineClass(className, bytecode, classLoader, type.getProtectionDomain(), type); @@ -442,7 +444,7 @@ class ClassGeneratingEntityInstantiator implements EntityInstantiator { public byte[] generateBytecode(String internalClassName, PersistentEntity entity, @Nullable InstanceCreatorMetadata entityCreator) { - var cw = new ClassWriter(ClassWriter.COMPUTE_MAXS); + ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS); cw.visit(Opcodes.V1_6, ACC_PUBLIC + ACC_SUPER, internalClassName.replace('.', '/'), null, JAVA_LANG_OBJECT, IMPLEMENTED_INTERFACES); @@ -458,7 +460,7 @@ class ClassGeneratingEntityInstantiator implements EntityInstantiator { private void visitDefaultConstructor(ClassWriter cw) { - var mv = cw.visitMethod(ACC_PUBLIC, INIT, "()V", null, null); + MethodVisitor mv = cw.visitMethod(ACC_PUBLIC, INIT, "()V", null, null); mv.visitCode(); mv.visitVarInsn(ALOAD, 0); mv.visitMethodInsn(INVOKESPECIAL, JAVA_LANG_OBJECT, INIT, "()V", false); @@ -477,9 +479,9 @@ class ClassGeneratingEntityInstantiator implements EntityInstantiator { private void visitCreateMethod(ClassWriter cw, PersistentEntity entity, @Nullable InstanceCreatorMetadata entityCreator) { - var entityTypeResourcePath = Type.getInternalName(entity.getType()); + String entityTypeResourcePath = Type.getInternalName(entity.getType()); - var mv = cw.visitMethod(ACC_PUBLIC + ACC_VARARGS, CREATE_METHOD_NAME, + MethodVisitor mv = cw.visitMethod(ACC_PUBLIC + ACC_VARARGS, CREATE_METHOD_NAME, "([" + BytecodeUtil.referenceName(Object.class) + ")" + BytecodeUtil.referenceName(Object.class), null, null); mv.visitCode(); @@ -502,8 +504,8 @@ class ClassGeneratingEntityInstantiator implements EntityInstantiator { private static void visitConstructorCreation(PreferredConstructor constructor, MethodVisitor mv, String entityTypeResourcePath) { - var ctor = constructor.getConstructor(); - var parameterTypes = ctor.getParameterTypes(); + Constructor ctor = constructor.getConstructor(); + Class[] parameterTypes = ctor.getParameterTypes(); List> parameters = constructor.getParameters(); visitParameterTypes(mv, parameterTypes, parameters); @@ -514,8 +516,8 @@ class ClassGeneratingEntityInstantiator implements EntityInstantiator { private static void visitFactoryMethodCreation(FactoryMethod factoryMethod, MethodVisitor mv, String entityTypeResourcePath) { - var method = factoryMethod.getFactoryMethod(); - var parameterTypes = method.getParameterTypes(); + Method method = factoryMethod.getFactoryMethod(); + Class[] parameterTypes = method.getParameterTypes(); List> parameters = factoryMethod.getParameters(); visitParameterTypes(mv, parameterTypes, parameters); @@ -527,7 +529,7 @@ class ClassGeneratingEntityInstantiator implements EntityInstantiator { private static void visitParameterTypes(MethodVisitor mv, Class[] parameterTypes, List> parameters) { - for (var i = 0; i < parameterTypes.length; i++) { + for (int i = 0; i < parameterTypes.length; i++) { mv.visitVarInsn(ALOAD, 1); @@ -538,7 +540,7 @@ class ClassGeneratingEntityInstantiator implements EntityInstantiator { if (parameterTypes[i].isPrimitive()) { mv.visitInsn(DUP); - var parameterName = parameters.size() > i ? parameters.get(i).getName() : null; + String parameterName = parameters.size() > i ? parameters.get(i).getName() : null; insertAssertNotNull(mv, parameterName == null ? String.format("at index %d", i) : parameterName); insertUnboxInsns(mv, Type.getType(parameterTypes[i]).toString().charAt(0), ""); diff --git a/src/main/java/org/springframework/data/mapping/model/ClassGeneratingPropertyAccessorFactory.java b/src/main/java/org/springframework/data/mapping/model/ClassGeneratingPropertyAccessorFactory.java index be7665eeb..600244566 100644 --- a/src/main/java/org/springframework/data/mapping/model/ClassGeneratingPropertyAccessorFactory.java +++ b/src/main/java/org/springframework/data/mapping/model/ClassGeneratingPropertyAccessorFactory.java @@ -78,11 +78,11 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert @Override public PersistentPropertyAccessor getPropertyAccessor(PersistentEntity entity, T bean) { - var constructor = constructorMap.get(entity); + Constructor constructor = constructorMap.get(entity); if (constructor == null) { - var accessorClass = potentiallyCreateAndRegisterPersistentPropertyAccessorClass( + Class> accessorClass = potentiallyCreateAndRegisterPersistentPropertyAccessorClass( entity); constructor = accessorClass.getConstructors()[0]; @@ -91,7 +91,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert this.constructorMap = constructorMap; } - var args = argumentCache.get(); + Object[] args = argumentCache.get(); args[0] = bean; try { @@ -131,7 +131,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert private static boolean isTypeInjectable(PersistentEntity entity) { - var type = entity.getType(); + Class type = entity.getType(); return type.getClassLoader() != null && (type.getPackage() == null || !type.getPackage().getName().startsWith("java")) && ClassUtils.isPresent(PersistentPropertyAccessor.class.getName(), type.getClassLoader()) @@ -141,7 +141,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert private boolean hasUniquePropertyHashCodes(PersistentEntity entity) { Set hashCodes = new HashSet<>(); - var propertyCount = new AtomicInteger(); + AtomicInteger propertyCount = new AtomicInteger(); entity.doWithProperties((SimplePropertyHandler) property -> { @@ -167,8 +167,8 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert private synchronized Class> potentiallyCreateAndRegisterPersistentPropertyAccessorClass( PersistentEntity entity) { - var map = this.propertyAccessorClasses; - var propertyAccessorClass = map.get(entity.getTypeInformation()); + Map, Class>> map = this.propertyAccessorClasses; + Class> propertyAccessorClass = map.get(entity.getTypeInformation()); if (propertyAccessorClass != null) { return propertyAccessorClass; @@ -309,9 +309,9 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert */ static Class generateCustomAccessorClass(PersistentEntity entity) { - var className = generateClassName(entity); - var type = entity.getType(); - var classLoader = type.getClassLoader(); + String className = generateClassName(entity); + Class type = entity.getType(); + ClassLoader classLoader = type.getClassLoader(); if (ClassUtils.isPresent(className, classLoader)) { @@ -322,7 +322,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert } } - var bytecode = generateBytecode(className.replace('.', '/'), entity); + byte[] bytecode = generateBytecode(className.replace('.', '/'), entity); try { @@ -338,10 +338,10 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert */ static byte[] generateBytecode(String internalClassName, PersistentEntity entity) { - var cw = new ClassWriter(ClassWriter.COMPUTE_MAXS); + ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS); cw.visit(Opcodes.V1_6, ACC_PUBLIC + ACC_SUPER, internalClassName, null, JAVA_LANG_OBJECT, IMPLEMENTED_INTERFACES); - var persistentProperties = getPersistentProperties(entity); + List> persistentProperties = getPersistentProperties(entity); visitFields(entity, persistentProperties, cw); visitDefaultConstructor(entity, internalClassName, cw); @@ -388,7 +388,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert cw.visitField(ACC_PRIVATE, BEAN_FIELD, getAccessibleTypeReferenceName(entity), null, null).visitEnd(); - for (var property : persistentProperties) { + for (PersistentProperty property : persistentProperties) { if (property.isImmutable()) { if (generateMethodHandle(entity, property.getWither())) { @@ -438,7 +438,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert mv = cw.visitMethod(ACC_PUBLIC, INIT, String.format("(%s)V", getAccessibleTypeReferenceName(entity)), null, null); mv.visitCode(); - var l0 = new Label(); + Label l0 = new Label(); mv.visitLabel(l0); mv.visitVarInsn(ALOAD, 0); mv.visitMethodInsn(INVOKESPECIAL, JAVA_LANG_OBJECT, INIT, "()V", false); @@ -456,7 +456,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert mv.visitFieldInsn(PUTFIELD, internalClassName, BEAN_FIELD, getAccessibleTypeReferenceName(entity)); mv.visitInsn(RETURN); - var l3 = new Label(); + Label l3 = new Label(); mv.visitLabel(l3); mv.visitLocalVariable(THIS_REF, referenceName(internalClassName), null, l0, l3, 0); mv.visitLocalVariable(BEAN_FIELD, getAccessibleTypeReferenceName(entity), null, l0, l3, 1); @@ -485,10 +485,10 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert private static void visitStaticInitializer(PersistentEntity entity, List> persistentProperties, String internalClassName, ClassWriter cw) { - var mv = cw.visitMethod(ACC_STATIC, CLINIT, "()V", null, null); + MethodVisitor mv = cw.visitMethod(ACC_STATIC, CLINIT, "()V", null, null); mv.visitCode(); - var l0 = new Label(); - var l1 = new Label(); + Label l0 = new Label(); + Label l1 = new Label(); mv.visitLabel(l0); // lookup = MethodHandles.lookup() @@ -496,9 +496,9 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert String.format("()%s", referenceName(JAVA_LANG_INVOKE_METHOD_HANDLES_LOOKUP)), false); mv.visitVarInsn(ASTORE, 0); - var entityClasses = getPropertyDeclaratingClasses(persistentProperties); + List> entityClasses = getPropertyDeclaratingClasses(persistentProperties); - for (var entityClass : entityClasses) { + for (Class entityClass : entityClasses) { mv.visitLdcInsn(entityClass.getName()); mv.visitMethodInsn(INVOKESTATIC, JAVA_LANG_CLASS, "forName", @@ -506,7 +506,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert mv.visitVarInsn(ASTORE, classVariableIndex5(entityClasses, entityClass)); } - for (var property : persistentProperties) { + for (PersistentProperty property : persistentProperties) { if (property.usePropertyAccess()) { @@ -539,9 +539,9 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert mv.visitLocalVariable("getter", referenceName(JAVA_LANG_REFLECT_METHOD), null, l0, l1, 3); mv.visitLocalVariable("wither", referenceName(JAVA_LANG_REFLECT_METHOD), null, l0, l1, 4); - for (var entityClass : entityClasses) { + for (Class entityClass : entityClasses) { - var index = classVariableIndex5(entityClasses, entityClass); + int index = classVariableIndex5(entityClasses, entityClass); mv.visitLocalVariable(String.format("class_%d", index), referenceName(JAVA_LANG_CLASS), null, l0, l1, index); } @@ -577,7 +577,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert List> entityClasses, String internalClassName) { // getter = .class.getDeclaredMethod() - var getter = property.getGetter(); + Method getter = property.getGetter(); if (getter != null) { @@ -629,7 +629,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert mv.visitInsn(DUP); mv.visitInsn(ICONST_0); - var parameterType = method.getParameterTypes()[0]; + Class parameterType = method.getParameterTypes()[0]; if (parameterType.isPrimitive()) { mv.visitFieldInsn(GETSTATIC, Type.getInternalName(autoboxType(method.getParameterTypes()[0])), "TYPE", @@ -672,7 +672,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert // field = .class.getDeclaredField() - var field = property.getField(); + Field field = property.getField(); if (field != null) { mv.visitVarInsn(ALOAD, classVariableIndex5(entityClasses, field.getDeclaringClass())); @@ -710,10 +710,10 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert private static void visitBeanGetter(PersistentEntity entity, String internalClassName, ClassWriter cw) { // public Object getBean() - var mv = cw.visitMethod(ACC_PUBLIC, "getBean", String.format("()%s", referenceName(JAVA_LANG_OBJECT)), + MethodVisitor mv = cw.visitMethod(ACC_PUBLIC, "getBean", String.format("()%s", referenceName(JAVA_LANG_OBJECT)), null, null); mv.visitCode(); - var l0 = new Label(); + Label l0 = new Label(); // return this.bean mv.visitLabel(l0); @@ -723,7 +723,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert mv.visitInsn(ARETURN); - var l1 = new Label(); + Label l1 = new Label(); mv.visitLabel(l1); mv.visitLocalVariable(THIS_REF, referenceName(internalClassName), null, l0, l1, 0); mv.visitMaxs(1, 1); @@ -754,13 +754,13 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert private static void visitGetProperty(PersistentEntity entity, List> persistentProperties, String internalClassName, ClassWriter cw) { - var mv = cw.visitMethod(ACC_PUBLIC, "getProperty", + MethodVisitor mv = cw.visitMethod(ACC_PUBLIC, "getProperty", "(Lorg/springframework/data/mapping/PersistentProperty;)Ljava/lang/Object;", "(Lorg/springframework/data/mapping/PersistentProperty<*>;)Ljava/lang/Object;", null); mv.visitCode(); - var l0 = new Label(); - var l1 = new Label(); + Label l0 = new Label(); + Label l1 = new Label(); mv.visitLabel(l0); // Assert.notNull(property) @@ -793,21 +793,21 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert private static void visitGetPropertySwitch(PersistentEntity entity, List> persistentProperties, String internalClassName, MethodVisitor mv) { - var propertyStackMap = createPropertyStackMap(persistentProperties); + Map propertyStackMap = createPropertyStackMap(persistentProperties); - var hashes = new int[propertyStackMap.size()]; - var switchJumpLabels = new Label[propertyStackMap.size()]; + int[] hashes = new int[propertyStackMap.size()]; + Label[] switchJumpLabels = new Label[propertyStackMap.size()]; List stackmap = new ArrayList<>(propertyStackMap.values()); Collections.sort(stackmap); - for (var i = 0; i < stackmap.size(); i++) { + for (int i = 0; i < stackmap.size(); i++) { - var propertyStackAddress = stackmap.get(i); + PropertyStackAddress propertyStackAddress = stackmap.get(i); hashes[i] = propertyStackAddress.hash; switchJumpLabels[i] = propertyStackAddress.label; } - var dfltLabel = new Label(); + Label dfltLabel = new Label(); mv.visitVarInsn(ALOAD, 1); mv.visitMethodInsn(INVOKEINTERFACE, PERSISTENT_PROPERTY, "getName", @@ -815,7 +815,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert mv.visitMethodInsn(INVOKEVIRTUAL, JAVA_LANG_STRING, "hashCode", "()I", false); mv.visitLookupSwitchInsn(dfltLabel, hashes, switchJumpLabels); - for (var property : persistentProperties) { + for (PersistentProperty property : persistentProperties) { mv.visitLabel(propertyStackMap.get(property.getName()).label); mv.visitFrame(Opcodes.F_SAME, 0, null, 0, null); @@ -839,7 +839,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert private static void visitGetProperty0(PersistentEntity entity, PersistentProperty property, MethodVisitor mv, String internalClassName) { - var getter = property.getGetter(); + Method getter = property.getGetter(); if (property.usePropertyAccess() && getter != null) { if (generateMethodHandle(entity, getter)) { @@ -853,9 +853,9 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert // bean.get… mv.visitVarInsn(ALOAD, 2); - var invokeOpCode = INVOKEVIRTUAL; - var declaringClass = getter.getDeclaringClass(); - var interfaceDefinition = declaringClass.isInterface(); + int invokeOpCode = INVOKEVIRTUAL; + Class declaringClass = getter.getDeclaringClass(); + boolean interfaceDefinition = declaringClass.isInterface(); if (interfaceDefinition) { invokeOpCode = INVOKEINTERFACE; @@ -867,7 +867,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert } } else { - var field = property.getRequiredField(); + Field field = property.getRequiredField(); if (generateMethodHandle(entity, field)) { // $fieldGetter.invoke(bean) @@ -917,12 +917,12 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert private static void visitSetProperty(PersistentEntity entity, List> persistentProperties, String internalClassName, ClassWriter cw) { - var mv = cw.visitMethod(ACC_PUBLIC, "setProperty", + MethodVisitor mv = cw.visitMethod(ACC_PUBLIC, "setProperty", "(Lorg/springframework/data/mapping/PersistentProperty;Ljava/lang/Object;)V", "(Lorg/springframework/data/mapping/PersistentProperty<*>;Ljava/lang/Object;)V", null); mv.visitCode(); - var l0 = new Label(); + Label l0 = new Label(); mv.visitLabel(l0); visitAssertNotNull(mv); @@ -935,7 +935,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert visitSetPropertySwitch(entity, persistentProperties, internalClassName, mv); - var l1 = new Label(); + Label l1 = new Label(); mv.visitLabel(l1); visitThrowUnsupportedOperationException(mv, "No accessor to set property %s!"); @@ -957,20 +957,20 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert private static void visitSetPropertySwitch(PersistentEntity entity, List> persistentProperties, String internalClassName, MethodVisitor mv) { - var propertyStackMap = createPropertyStackMap(persistentProperties); + Map propertyStackMap = createPropertyStackMap(persistentProperties); - var hashes = new int[propertyStackMap.size()]; - var switchJumpLabels = new Label[propertyStackMap.size()]; + int[] hashes = new int[propertyStackMap.size()]; + Label[] switchJumpLabels = new Label[propertyStackMap.size()]; List stackmap = new ArrayList<>(propertyStackMap.values()); Collections.sort(stackmap); - for (var i = 0; i < stackmap.size(); i++) { - var propertyStackAddress = stackmap.get(i); + for (int i = 0; i < stackmap.size(); i++) { + PropertyStackAddress propertyStackAddress = stackmap.get(i); hashes[i] = propertyStackAddress.hash; switchJumpLabels[i] = propertyStackAddress.label; } - var dfltLabel = new Label(); + Label dfltLabel = new Label(); mv.visitVarInsn(ALOAD, 1); mv.visitMethodInsn(INVOKEINTERFACE, PERSISTENT_PROPERTY, "getName", @@ -978,7 +978,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert mv.visitMethodInsn(INVOKEVIRTUAL, JAVA_LANG_STRING, "hashCode", "()I", false); mv.visitLookupSwitchInsn(dfltLabel, hashes, switchJumpLabels); - for (var property : persistentProperties) { + for (PersistentProperty property : persistentProperties) { mv.visitLabel(propertyStackMap.get(property.getName()).label); mv.visitFrame(Opcodes.F_SAME, 0, null, 0, null); @@ -1001,8 +1001,8 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert private static void visitSetProperty0(PersistentEntity entity, PersistentProperty property, MethodVisitor mv, String internalClassName) { - var setter = property.getSetter(); - var wither = property.getWither(); + Method setter = property.getSetter(); + Method wither = property.getWither(); if (property.isImmutable()) { @@ -1080,7 +1080,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert private static void visitKotlinCopy(PersistentEntity entity, PersistentProperty property, MethodVisitor mv, String internalClassName) { - var kotlinCopyMethod = KotlinCopyMethod.findCopyMethod(entity.getType()) + KotlinCopyMethod kotlinCopyMethod = KotlinCopyMethod.findCopyMethod(entity.getType()) .orElseThrow(() -> new IllegalStateException( String.format("No usable .copy(…) method found in entity %s", entity.getType().getName()))); @@ -1096,17 +1096,17 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert visitInvokeMethodSingleArg(mv, kotlinCopyMethod.getPublicCopyMethod()); } else { - var copy = kotlinCopyMethod.getSyntheticCopyMethod(); - var parameterTypes = copy.getParameterTypes(); + Method copy = kotlinCopyMethod.getSyntheticCopyMethod(); + Class[] parameterTypes = copy.getParameterTypes(); // PersonWithId.copy$default..(bean, object, MASK, null) mv.visitVarInsn(ALOAD, 3); - var copyByProperty = kotlinCopyMethod.forProperty(property) + KotlinCopyMethod.KotlinCopyByProperty copyByProperty = kotlinCopyMethod.forProperty(property) .orElseThrow(() -> new IllegalStateException( String.format("No usable .copy(…) method found for property %s", property))); - for (var i = 1; i < kotlinCopyMethod.getParameterCount(); i++) { + for (int i = 1; i < kotlinCopyMethod.getParameterCount(); i++) { if (copyByProperty.getParameterPosition() == i) { @@ -1125,7 +1125,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert mv.visitInsn(Opcodes.ACONST_NULL); - var invokeOpCode = getInvokeOp(copy, false); + int invokeOpCode = getInvokeOp(copy, false); mv.visitMethodInsn(invokeOpCode, Type.getInternalName(copy.getDeclaringClass()), copy.getName(), getArgumentSignature(copy), false); @@ -1185,7 +1185,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert private static void visitSetField(PersistentEntity entity, PersistentProperty property, MethodVisitor mv, String internalClassName) { - var field = property.getField(); + Field field = property.getField(); if (field != null) { if (generateSetterMethodHandle(entity, field)) { // $fieldSetter.invoke(bean, object) @@ -1200,7 +1200,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert mv.visitVarInsn(ALOAD, 3); mv.visitVarInsn(ALOAD, 2); - var fieldType = field.getType(); + Class fieldType = field.getType(); mv.visitTypeInsn(CHECKCAST, Type.getInternalName(autoboxType(fieldType))); autoboxIfNeeded(autoboxType(fieldType), fieldType, mv); @@ -1220,10 +1220,10 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert */ private static String getArgumentSignature(Method method) { - var result = new StringBuilder("("); + StringBuilder result = new StringBuilder("("); List argumentTypes = new ArrayList<>(); - for (var parameterType : method.getParameterTypes()) { + for (Class parameterType : method.getParameterTypes()) { result.append("%s"); argumentTypes.add(signatureTypeName(parameterType)); @@ -1319,7 +1319,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert if (isAccessible(entity)) { if (Modifier.isProtected(member.getModifiers()) || isDefault(member.getModifiers())) { - var declaringPackage = member.getDeclaringClass().getPackage(); + Package declaringPackage = member.getDeclaringClass().getPackage(); if (declaringPackage != null && !declaringPackage.equals(entity.getType().getPackage())) { return true; @@ -1348,15 +1348,15 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert private static void visitInvokeMethodSingleArg(MethodVisitor mv, Method method) { - var parameterTypes = method.getParameterTypes(); - var parameterType = parameterTypes[0]; - var declaringClass = method.getDeclaringClass(); - var interfaceDefinition = declaringClass.isInterface(); + Class[] parameterTypes = method.getParameterTypes(); + Class parameterType = parameterTypes[0]; + Class declaringClass = method.getDeclaringClass(); + boolean interfaceDefinition = declaringClass.isInterface(); mv.visitTypeInsn(CHECKCAST, Type.getInternalName(autoboxType(parameterType))); autoboxIfNeeded(autoboxType(parameterType), parameterType, mv); - var invokeOpCode = getInvokeOp(method, interfaceDefinition); + int invokeOpCode = getInvokeOp(method, interfaceDefinition); mv.visitMethodInsn(invokeOpCode, Type.getInternalName(method.getDeclaringClass()), method.getName(), String.format("(%s)%s", signatureTypeName(parameterType), signatureTypeName(method.getReturnType())), @@ -1365,7 +1365,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert private static int getInvokeOp(Method method, boolean interfaceDefinition) { - var invokeOpCode = Modifier.isStatic(method.getModifiers()) ? INVOKESTATIC : INVOKEVIRTUAL; + int invokeOpCode = Modifier.isStatic(method.getModifiers()) ? INVOKESTATIC : INVOKEVIRTUAL; if (interfaceDefinition) { invokeOpCode = INVOKEINTERFACE; @@ -1378,7 +1378,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert Map stackmap = new HashMap<>(); - for (var property : persistentProperties) { + for (PersistentProperty property : persistentProperties) { stackmap.put(property.getName(), new PropertyStackAddress(new Label(), property.getName().hashCode())); } return stackmap; @@ -1435,7 +1435,7 @@ public class ClassGeneratingPropertyAccessorFactory implements PersistentPropert */ private static boolean hasKotlinCopyMethod(PersistentProperty property) { - var type = property.getOwner().getType(); + Class type = property.getOwner().getType(); if (isAccessible(type) && KotlinDetector.isKotlinType(type)) { return KotlinCopyMethod.findCopyMethod(type).filter(it -> it.supportsProperty(property)).isPresent(); diff --git a/src/main/java/org/springframework/data/mapping/model/ConvertingPropertyAccessor.java b/src/main/java/org/springframework/data/mapping/model/ConvertingPropertyAccessor.java index 327da9e80..be6ef3736 100644 --- a/src/main/java/org/springframework/data/mapping/model/ConvertingPropertyAccessor.java +++ b/src/main/java/org/springframework/data/mapping/model/ConvertingPropertyAccessor.java @@ -63,7 +63,7 @@ public class ConvertingPropertyAccessor extends SimplePersistentPropertyPathA @Override public void setProperty(PersistentPropertyPath> path, @Nullable Object value) { - var converted = convertIfNecessary(value, path.getRequiredLeafProperty().getType()); + Object converted = convertIfNecessary(value, path.getRequiredLeafProperty().getType()); super.setProperty(path, converted); } diff --git a/src/main/java/org/springframework/data/mapping/model/DefaultSpELExpressionEvaluator.java b/src/main/java/org/springframework/data/mapping/model/DefaultSpELExpressionEvaluator.java index 4381a7bc5..86c6947f4 100644 --- a/src/main/java/org/springframework/data/mapping/model/DefaultSpELExpressionEvaluator.java +++ b/src/main/java/org/springframework/data/mapping/model/DefaultSpELExpressionEvaluator.java @@ -18,6 +18,7 @@ package org.springframework.data.mapping.model; import org.springframework.data.mapping.Parameter; import org.springframework.expression.EvaluationContext; +import org.springframework.expression.Expression; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.lang.Nullable; import org.springframework.util.Assert; @@ -46,7 +47,7 @@ public class DefaultSpELExpressionEvaluator implements SpELExpressionEvaluator { @SuppressWarnings("unchecked") public T evaluate(String expression) { - var parseExpression = factory.getParser().parseExpression(expression); + Expression parseExpression = factory.getParser().parseExpression(expression); return (T) parseExpression.getValue(factory.getEvaluationContext(source)); } } diff --git a/src/main/java/org/springframework/data/mapping/model/EntityInstantiators.java b/src/main/java/org/springframework/data/mapping/model/EntityInstantiators.java index 1c9870808..aab81dbdb 100644 --- a/src/main/java/org/springframework/data/mapping/model/EntityInstantiators.java +++ b/src/main/java/org/springframework/data/mapping/model/EntityInstantiators.java @@ -87,13 +87,13 @@ public class EntityInstantiators { public EntityInstantiator getInstantiatorFor(PersistentEntity entity) { Assert.notNull(entity, "Entity must not be null!"); - var type = entity.getType(); + Class type = entity.getType(); if (!customInstantiators.containsKey(type)) { return fallback; } - var instantiator = customInstantiators.get(entity.getType()); + EntityInstantiator instantiator = customInstantiators.get(entity.getType()); return instantiator == null ? fallback : instantiator; } } diff --git a/src/main/java/org/springframework/data/mapping/model/InstanceCreatorMetadataDiscoverer.java b/src/main/java/org/springframework/data/mapping/model/InstanceCreatorMetadataDiscoverer.java index 16df63dc0..512352f51 100644 --- a/src/main/java/org/springframework/data/mapping/model/InstanceCreatorMetadataDiscoverer.java +++ b/src/main/java/org/springframework/data/mapping/model/InstanceCreatorMetadataDiscoverer.java @@ -17,6 +17,7 @@ package org.springframework.data.mapping.model; import java.lang.annotation.Annotation; import java.lang.reflect.AnnotatedElement; +import java.lang.reflect.Constructor; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.ArrayList; @@ -26,12 +27,13 @@ import org.springframework.core.DefaultParameterNameDiscoverer; import org.springframework.core.ParameterNameDiscoverer; import org.springframework.core.annotation.MergedAnnotations; import org.springframework.data.annotation.PersistenceCreator; -import org.springframework.data.mapping.InstanceCreatorMetadata; import org.springframework.data.mapping.FactoryMethod; +import org.springframework.data.mapping.InstanceCreatorMetadata; import org.springframework.data.mapping.MappingException; import org.springframework.data.mapping.Parameter; import org.springframework.data.mapping.PersistentEntity; import org.springframework.data.mapping.PersistentProperty; +import org.springframework.data.util.TypeInformation; import org.springframework.lang.Nullable; /** @@ -55,11 +57,11 @@ class InstanceCreatorMetadataDiscoverer { @Nullable public static > InstanceCreatorMetadata

discover(PersistentEntity entity) { - var declaredConstructors = entity.getType().getDeclaredConstructors(); - var declaredMethods = entity.getType().getDeclaredMethods(); + Constructor[] declaredConstructors = entity.getType().getDeclaredConstructors(); + Method[] declaredMethods = entity.getType().getDeclaredMethods(); - var hasAnnotatedFactoryMethod = findAnnotation(PersistenceCreator.class, declaredMethods); - var hasAnnotatedConstructor = findAnnotation(PersistenceCreator.class, declaredConstructors); + boolean hasAnnotatedFactoryMethod = findAnnotation(PersistenceCreator.class, declaredMethods); + boolean hasAnnotatedConstructor = findAnnotation(PersistenceCreator.class, declaredConstructors); if (hasAnnotatedConstructor && hasAnnotatedFactoryMethod) { throw new MappingException( @@ -69,7 +71,7 @@ class InstanceCreatorMetadataDiscoverer { if (hasAnnotatedFactoryMethod) { - var candidates = discoverFactoryMethods(entity, declaredMethods); + List candidates = discoverFactoryMethods(entity, declaredMethods); if (candidates.size() == 1) { return getFactoryMethod(entity, candidates.get(0)); @@ -84,7 +86,7 @@ class InstanceCreatorMetadataDiscoverer { List candidates = new ArrayList<>(); - for (var method : declaredMethods) { + for (Method method : declaredMethods) { validateMethod(method); @@ -105,16 +107,16 @@ class InstanceCreatorMetadataDiscoverer { PersistentEntity entity, Method method) { Parameter[] parameters = new Parameter[method.getParameterCount()]; - var parameterAnnotations = method.getParameterAnnotations(); - var types = entity.getTypeInformation().getParameterTypes(method); + Annotation[][] parameterAnnotations = method.getParameterAnnotations(); + List> types = entity.getTypeInformation().getParameterTypes(method); - var parameterNames = PARAMETER_NAME_DISCOVERER.getParameterNames(method); + String[] parameterNames = PARAMETER_NAME_DISCOVERER.getParameterNames(method); - for (var i = 0; i < parameters.length; i++) { + for (int i = 0; i < parameters.length; i++) { - var name = parameterNames == null || parameterNames.length <= i ? null : parameterNames[i]; - var type = types.get(i); - var annotations = parameterAnnotations[i]; + String name = parameterNames == null || parameterNames.length <= i ? null : parameterNames[i]; + TypeInformation type = types.get(i); + Annotation[] annotations = parameterAnnotations[i]; parameters[i] = new Parameter(name, type, annotations, entity); } @@ -150,7 +152,7 @@ class InstanceCreatorMetadataDiscoverer { private static boolean findAnnotation(Class annotationType, AnnotatedElement... elements) { - for (var element : elements) { + for (AnnotatedElement element : elements) { if (MergedAnnotations.from(element).isPresent(annotationType)) { return true; } diff --git a/src/main/java/org/springframework/data/mapping/model/InstantiationAwarePropertyAccessor.java b/src/main/java/org/springframework/data/mapping/model/InstantiationAwarePropertyAccessor.java index 4577a30c0..d560fbc7c 100644 --- a/src/main/java/org/springframework/data/mapping/model/InstantiationAwarePropertyAccessor.java +++ b/src/main/java/org/springframework/data/mapping/model/InstantiationAwarePropertyAccessor.java @@ -19,7 +19,9 @@ import java.util.function.Function; import org.springframework.core.KotlinDetector; import org.springframework.data.annotation.PersistenceConstructor; +import org.springframework.data.mapping.InstanceCreatorMetadata; import org.springframework.data.mapping.Parameter; +import org.springframework.data.mapping.PersistentEntity; import org.springframework.data.mapping.PersistentProperty; import org.springframework.data.mapping.PersistentPropertyAccessor; import org.springframework.lang.Nullable; @@ -70,8 +72,8 @@ public class InstantiationAwarePropertyAccessor implements PersistentProperty @Override public void setProperty(PersistentProperty property, @Nullable Object value) { - var owner = property.getOwner(); - var delegate = delegateFunction.apply(this.bean); + PersistentEntity> owner = property.getOwner(); + PersistentPropertyAccessor delegate = delegateFunction.apply(this.bean); if (!property.isImmutable() || property.getWither() != null || KotlinDetector.isKotlinType(owner.getType())) { @@ -81,7 +83,7 @@ public class InstantiationAwarePropertyAccessor implements PersistentProperty return; } - var creator = owner.getInstanceCreatorMetadata(); + InstanceCreatorMetadata> creator = owner.getInstanceCreatorMetadata(); if (creator == null) { throw new IllegalStateException(String.format(NO_SETTER_OR_CONSTRUCTOR, property.getName(), owner.getType())); @@ -100,7 +102,7 @@ public class InstantiationAwarePropertyAccessor implements PersistentProperty } }); - var instantiator = instantiators.getInstantiatorFor(owner); + EntityInstantiator instantiator = instantiators.getInstantiatorFor(owner); this.bean = (T) instantiator.createInstance(owner, new ParameterValueProvider() { diff --git a/src/main/java/org/springframework/data/mapping/model/KotlinClassGeneratingEntityInstantiator.java b/src/main/java/org/springframework/data/mapping/model/KotlinClassGeneratingEntityInstantiator.java index 59aef0dbf..2f0b1d905 100644 --- a/src/main/java/org/springframework/data/mapping/model/KotlinClassGeneratingEntityInstantiator.java +++ b/src/main/java/org/springframework/data/mapping/model/KotlinClassGeneratingEntityInstantiator.java @@ -46,17 +46,18 @@ class KotlinClassGeneratingEntityInstantiator extends ClassGeneratingEntityInsta @Override protected EntityInstantiator doCreateEntityInstantiator(PersistentEntity entity) { - var creator = entity.getInstanceCreatorMetadata(); + InstanceCreatorMetadata> creator = entity.getInstanceCreatorMetadata(); if (KotlinReflectionUtils.isSupportedKotlinClass(entity.getType()) && creator instanceof PreferredConstructor constructor) { - var defaultConstructor = new DefaultingKotlinConstructorResolver(entity) + PreferredConstructor> defaultConstructor = new DefaultingKotlinConstructorResolver( + entity) .getDefaultConstructor(); if (defaultConstructor != null) { - var instantiator = createObjectInstantiator(entity, defaultConstructor); + ObjectInstantiator instantiator = createObjectInstantiator(entity, defaultConstructor); return new DefaultingKotlinClassInstantiatorAdapter(instantiator, constructor); } @@ -79,8 +80,8 @@ class KotlinClassGeneratingEntityInstantiator extends ClassGeneratingEntityInsta @SuppressWarnings("unchecked") DefaultingKotlinConstructorResolver(PersistentEntity entity) { - var hit = resolveDefaultConstructor(entity); - var creator = entity.getInstanceCreatorMetadata(); + Constructor hit = resolveDefaultConstructor(entity); + InstanceCreatorMetadata> creator = entity.getInstanceCreatorMetadata(); if ((hit != null) && creator instanceof PreferredConstructor persistenceConstructor) { this.defaultConstructor = new PreferredConstructor<>(hit, @@ -98,9 +99,9 @@ class KotlinClassGeneratingEntityInstantiator extends ClassGeneratingEntityInsta } Constructor hit = null; - var constructor = persistenceConstructor.getConstructor(); + Constructor constructor = persistenceConstructor.getConstructor(); - for (var candidate : entity.getType().getDeclaredConstructors()) { + for (Constructor candidate : entity.getType().getDeclaredConstructors()) { // use only synthetic constructors if (!candidate.isSynthetic()) { @@ -109,15 +110,15 @@ class KotlinClassGeneratingEntityInstantiator extends ClassGeneratingEntityInsta // candidates must contain at least two additional parameters (int, DefaultConstructorMarker). // Number of defaulting masks derives from the original constructor arg count - var syntheticParameters = KotlinDefaultMask.getMaskCount(constructor.getParameterCount()) + int syntheticParameters = KotlinDefaultMask.getMaskCount(constructor.getParameterCount()) + /* DefaultConstructorMarker */ 1; if ((constructor.getParameterCount() + syntheticParameters) != candidate.getParameterCount()) { continue; } - var constructorParameters = constructor.getParameters(); - var candidateParameters = candidate.getParameters(); + java.lang.reflect.Parameter[] constructorParameters = constructor.getParameters(); + java.lang.reflect.Parameter[] candidateParameters = candidate.getParameters(); if (!candidateParameters[candidateParameters.length - 1].getType().getName() .equals("kotlin.jvm.internal.DefaultConstructorMarker")) { @@ -173,7 +174,7 @@ class KotlinClassGeneratingEntityInstantiator extends ClassGeneratingEntityInsta DefaultingKotlinClassInstantiatorAdapter(ObjectInstantiator instantiator, PreferredConstructor constructor) { - var kotlinConstructor = ReflectJvmMapping.getKotlinFunction(constructor.getConstructor()); + KFunction kotlinConstructor = ReflectJvmMapping.getKotlinFunction(constructor.getConstructor()); if (kotlinConstructor == null) { throw new IllegalArgumentException( @@ -191,7 +192,7 @@ class KotlinClassGeneratingEntityInstantiator extends ClassGeneratingEntityInsta public , P extends PersistentProperty

> T createInstance(E entity, ParameterValueProvider

provider) { - var params = extractInvocationArguments(entity.getInstanceCreatorMetadata(), provider); + Object[] params = extractInvocationArguments(entity.getInstanceCreatorMetadata(), provider); try { return (T) instantiator.newInstance(params); @@ -207,25 +208,25 @@ class KotlinClassGeneratingEntityInstantiator extends ClassGeneratingEntityInsta throw new IllegalArgumentException("EntityCreator must not be null!"); } - var params = allocateArguments(synthetic.getParameterCount() + Object[] params = allocateArguments(synthetic.getParameterCount() + KotlinDefaultMask.getMaskCount(synthetic.getParameterCount()) + /* DefaultConstructorMarker */1); - var userParameterCount = kParameters.size(); + int userParameterCount = kParameters.size(); - var parameters = entityCreator.getParameters(); + List> parameters = entityCreator.getParameters(); // Prepare user-space arguments - for (var i = 0; i < userParameterCount; i++) { + for (int i = 0; i < userParameterCount; i++) { - var parameter = parameters.get(i); + Parameter parameter = parameters.get(i); params[i] = provider.getParameterValue(parameter); } - var defaultMask = KotlinDefaultMask.from(constructor, it -> { + KotlinDefaultMask defaultMask = KotlinDefaultMask.from(constructor, it -> { - var index = kParameters.indexOf(it); + int index = kParameters.indexOf(it); - var parameter = parameters.get(index); - var type = parameter.getType().getType(); + Parameter parameter = parameters.get(index); + Class type = parameter.getType().getType(); if (it.isOptional() && (params[index] == null)) { if (type.isPrimitive()) { @@ -239,9 +240,9 @@ class KotlinClassGeneratingEntityInstantiator extends ClassGeneratingEntityInsta return true; }); - var defaulting = defaultMask.getDefaulting(); + int[] defaulting = defaultMask.getDefaulting(); // append nullability masks to creation arguments - for (var i = 0; i < defaulting.length; i++) { + for (int i = 0; i < defaulting.length; i++) { params[userParameterCount + i] = defaulting[i]; } diff --git a/src/main/java/org/springframework/data/mapping/model/KotlinCopyMethod.java b/src/main/java/org/springframework/data/mapping/model/KotlinCopyMethod.java index 79f643188..7614a802f 100644 --- a/src/main/java/org/springframework/data/mapping/model/KotlinCopyMethod.java +++ b/src/main/java/org/springframework/data/mapping/model/KotlinCopyMethod.java @@ -16,6 +16,7 @@ package org.springframework.data.mapping.model; import kotlin.jvm.JvmClassMappingKt; +import kotlin.reflect.KClass; import kotlin.reflect.KFunction; import kotlin.reflect.KParameter; import kotlin.reflect.KParameter.Kind; @@ -25,6 +26,7 @@ import kotlin.reflect.jvm.ReflectJvmMapping; import java.lang.reflect.Method; import java.lang.reflect.Modifier; +import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -76,13 +78,13 @@ class KotlinCopyMethod { Assert.notNull(type, "Type must not be null!"); - var syntheticCopyMethod = findSyntheticCopyMethod(type); + Optional syntheticCopyMethod = findSyntheticCopyMethod(type); if (!syntheticCopyMethod.isPresent()) { return Optional.empty(); } - var publicCopyMethod = syntheticCopyMethod.flatMap(KotlinCopyMethod::findPublicCopyMethod); + Optional publicCopyMethod = syntheticCopyMethod.flatMap(KotlinCopyMethod::findPublicCopyMethod); return publicCopyMethod.map(method -> new KotlinCopyMethod(method, syntheticCopyMethod.get())); } @@ -121,7 +123,7 @@ class KotlinCopyMethod { */ Optional forProperty(PersistentProperty property) { - var index = KotlinCopyByProperty.findIndex(copyFunction, property.getName()); + int index = KotlinCopyByProperty.findIndex(copyFunction, property.getName()); if (index == -1) { return Optional.empty(); @@ -147,9 +149,9 @@ class KotlinCopyMethod { return false; } - var parameterTypes = publicCopyMethod.getParameterTypes(); + Class[] parameterTypes = publicCopyMethod.getParameterTypes(); - for (var i = 0; i < parameterTypes.length; i++) { + for (int i = 0; i < parameterTypes.length; i++) { if (!parameterTypes[i].equals(persistentProperties.get(i).getType())) { return false; } @@ -160,16 +162,16 @@ class KotlinCopyMethod { private static Optional findPublicCopyMethod(Method defaultKotlinMethod) { - var type = defaultKotlinMethod.getDeclaringClass(); - var kotlinClass = JvmClassMappingKt.getKotlinClass(type); + Class type = defaultKotlinMethod.getDeclaringClass(); + KClass kotlinClass = JvmClassMappingKt.getKotlinClass(type); - var primaryConstructor = KClasses.getPrimaryConstructor(kotlinClass); + KFunction primaryConstructor = KClasses.getPrimaryConstructor(kotlinClass); if (primaryConstructor == null) { return Optional.empty(); } - var constructorArguments = getComponentArguments(primaryConstructor); + List constructorArguments = getComponentArguments(primaryConstructor); return Arrays.stream(type.getDeclaredMethods()).filter(it -> it.getName().equals("copy") // && !it.isSynthetic() // @@ -178,7 +180,7 @@ class KotlinCopyMethod { && it.getParameterCount() == constructorArguments.size()) // .filter(it -> { - var kotlinFunction = ReflectJvmMapping.getKotlinFunction(it); + KFunction kotlinFunction = ReflectJvmMapping.getKotlinFunction(it); if (kotlinFunction == null) { return false; @@ -190,10 +192,10 @@ class KotlinCopyMethod { private static boolean parameterMatches(List constructorArguments, KFunction kotlinFunction) { - var foundInstance = false; - var constructorArgIndex = 0; + boolean foundInstance = false; + int constructorArgIndex = 0; - for (var parameter : kotlinFunction.getParameters()) { + for (KParameter parameter : kotlinFunction.getParameters()) { if (parameter.getKind() == Kind.INSTANCE) { foundInstance = true; @@ -204,7 +206,7 @@ class KotlinCopyMethod { return false; } - var constructorParameter = constructorArguments.get(constructorArgIndex); + KParameter constructorParameter = constructorArguments.get(constructorArgIndex); if (constructorParameter.getName() == null || !constructorParameter.getName().equals(parameter.getName()) || !constructorParameter.getType().equals(parameter.getType())) { @@ -219,8 +221,8 @@ class KotlinCopyMethod { private static Optional findSyntheticCopyMethod(Class type) { - var kotlinClass = JvmClassMappingKt.getKotlinClass(type); - var primaryConstructor = KClasses.getPrimaryConstructor(kotlinClass); + KClass kotlinClass = JvmClassMappingKt.getKotlinClass(type); + KFunction primaryConstructor = KClasses.getPrimaryConstructor(kotlinClass); if (primaryConstructor == null) { return Optional.empty(); @@ -240,9 +242,9 @@ class KotlinCopyMethod { */ private static boolean matchesPrimaryConstructor(Class[] parameterTypes, KFunction primaryConstructor) { - var constructorArguments = getComponentArguments(primaryConstructor); + List constructorArguments = getComponentArguments(primaryConstructor); - var defaultingArgs = KotlinDefaultMask.from(primaryConstructor, kParameter -> false).getDefaulting().length; + int defaultingArgs = KotlinDefaultMask.from(primaryConstructor, kParameter -> false).getDefaulting().length; if (parameterTypes.length != 1 /* $this */ + constructorArguments.size() + defaultingArgs + 1 /* object marker */) { return false; @@ -253,9 +255,9 @@ class KotlinCopyMethod { return false; } - for (var i = 0; i < constructorArguments.size(); i++) { + for (int i = 0; i < constructorArguments.size(); i++) { - var kParameter = constructorArguments.get(i); + KParameter kParameter = constructorArguments.get(i); if (!isAssignableFrom(parameterTypes[i + 1], kParameter.getType())) { return false; @@ -274,9 +276,9 @@ class KotlinCopyMethod { private static boolean isAssignableFrom(Class target, KType source) { - var parameterType = ReflectJvmMapping.getJavaType(source); + Type parameterType = ReflectJvmMapping.getJavaType(source); - var rawClass = ResolvableType.forType(parameterType).getRawClass(); + Class rawClass = ResolvableType.forType(parameterType).getRawClass(); return rawClass == null || target.isAssignableFrom(rawClass); } @@ -300,7 +302,7 @@ class KotlinCopyMethod { static int findIndex(KFunction function, String parameterName) { - for (var parameter : function.getParameters()) { + for (KParameter parameter : function.getParameters()) { if (parameterName.equals(parameter.getName())) { return parameter.getIndex(); } diff --git a/src/main/java/org/springframework/data/mapping/model/KotlinDefaultMask.java b/src/main/java/org/springframework/data/mapping/model/KotlinDefaultMask.java index c8bebe20f..c06e53c30 100644 --- a/src/main/java/org/springframework/data/mapping/model/KotlinDefaultMask.java +++ b/src/main/java/org/springframework/data/mapping/model/KotlinDefaultMask.java @@ -45,7 +45,7 @@ public class KotlinDefaultMask { */ public void forEach(IntConsumer maskCallback) { - for (var i : defaulting) { + for (int i : defaulting) { maskCallback.accept(i); } } @@ -71,12 +71,12 @@ public class KotlinDefaultMask { public static KotlinDefaultMask from(KFunction function, Predicate isPresent) { List masks = new ArrayList<>(); - var index = 0; - var mask = 0; + int index = 0; + int mask = 0; - var parameters = function.getParameters(); + List parameters = function.getParameters(); - for (var parameter : parameters) { + for (KParameter parameter : parameters) { if (index != 0 && index % Integer.SIZE == 0) { masks.add(mask); diff --git a/src/main/java/org/springframework/data/mapping/model/MappingInstantiationException.java b/src/main/java/org/springframework/data/mapping/model/MappingInstantiationException.java index 2832bb9df..2c34f4c04 100644 --- a/src/main/java/org/springframework/data/mapping/model/MappingInstantiationException.java +++ b/src/main/java/org/springframework/data/mapping/model/MappingInstantiationException.java @@ -15,9 +15,11 @@ */ package org.springframework.data.mapping.model; +import kotlin.reflect.KFunction; import kotlin.reflect.jvm.ReflectJvmMapping; import java.lang.reflect.Constructor; +import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -87,7 +89,7 @@ public class MappingInstantiationException extends RuntimeException { Optional> constructor = Optional.ofNullable(it.getInstanceCreatorMetadata()); List toStringArgs = new ArrayList<>(arguments.size()); - for (var o : arguments) { + for (Object o : arguments) { toStringArgs.add(ObjectUtils.nullSafeToString(o)); } @@ -113,11 +115,11 @@ public class MappingInstantiationException extends RuntimeException { private static String toString(PreferredConstructor preferredConstructor) { - var constructor = preferredConstructor.getConstructor(); + Constructor constructor = preferredConstructor.getConstructor(); if (KotlinReflectionUtils.isSupportedKotlinClass(constructor.getDeclaringClass())) { - var kotlinFunction = ReflectJvmMapping.getKotlinFunction(constructor); + KFunction kotlinFunction = ReflectJvmMapping.getKotlinFunction(constructor); if (kotlinFunction != null) { return kotlinFunction.toString(); @@ -129,11 +131,11 @@ public class MappingInstantiationException extends RuntimeException { private static String toString(FactoryMethod factoryMethod) { - var constructor = factoryMethod.getFactoryMethod(); + Method constructor = factoryMethod.getFactoryMethod(); if (KotlinReflectionUtils.isSupportedKotlinClass(constructor.getDeclaringClass())) { - var kotlinFunction = ReflectJvmMapping.getKotlinFunction(constructor); + KFunction kotlinFunction = ReflectJvmMapping.getKotlinFunction(constructor); if (kotlinFunction != null) { return kotlinFunction.toString(); diff --git a/src/main/java/org/springframework/data/mapping/model/PersistentEntityIsNewStrategy.java b/src/main/java/org/springframework/data/mapping/model/PersistentEntityIsNewStrategy.java index 91f8173ca..246bde31b 100644 --- a/src/main/java/org/springframework/data/mapping/model/PersistentEntityIsNewStrategy.java +++ b/src/main/java/org/springframework/data/mapping/model/PersistentEntityIsNewStrategy.java @@ -53,7 +53,7 @@ class PersistentEntityIsNewStrategy implements IsNewStrategy { ? entity.getRequiredVersionProperty().getType() // : entity.hasIdProperty() ? entity.getRequiredIdProperty().getType() : null; - var type = valueType; + Class type = valueType; if (type != null && type.isPrimitive()) { @@ -89,7 +89,7 @@ class PersistentEntityIsNewStrategy implements IsNewStrategy { @Override public boolean isNew(Object entity) { - var value = valueLookup.apply(entity); + Object value = valueLookup.apply(entity); if (value == null) { return true; diff --git a/src/main/java/org/springframework/data/mapping/model/PersistentEntityParameterValueProvider.java b/src/main/java/org/springframework/data/mapping/model/PersistentEntityParameterValueProvider.java index 726363413..d964b143d 100644 --- a/src/main/java/org/springframework/data/mapping/model/PersistentEntityParameterValueProvider.java +++ b/src/main/java/org/springframework/data/mapping/model/PersistentEntityParameterValueProvider.java @@ -15,6 +15,7 @@ */ package org.springframework.data.mapping.model; +import org.springframework.data.mapping.InstanceCreatorMetadata; import org.springframework.data.mapping.MappingException; import org.springframework.data.mapping.Parameter; import org.springframework.data.mapping.PersistentEntity; @@ -47,19 +48,19 @@ public class PersistentEntityParameterValueProvider

T getParameterValue(Parameter parameter) { - var creator = entity.getInstanceCreatorMetadata(); + InstanceCreatorMetadata

creator = entity.getInstanceCreatorMetadata(); if (creator != null && creator.isParentParameter(parameter)) { return (T) parent; } - var name = parameter.getName(); + String name = parameter.getName(); if (name == null) { throw new MappingException(String.format("Parameter %s does not have a name!", parameter)); } - var property = entity.getPersistentProperty(name); + P property = entity.getPersistentProperty(name); if (property == null) { throw new MappingException( diff --git a/src/main/java/org/springframework/data/mapping/model/PreferredConstructorDiscoverer.java b/src/main/java/org/springframework/data/mapping/model/PreferredConstructorDiscoverer.java index 653723793..ac8c0ef4b 100644 --- a/src/main/java/org/springframework/data/mapping/model/PreferredConstructorDiscoverer.java +++ b/src/main/java/org/springframework/data/mapping/model/PreferredConstructorDiscoverer.java @@ -16,9 +16,11 @@ package org.springframework.data.mapping.model; import kotlin.jvm.JvmClassMappingKt; +import kotlin.reflect.KFunction; import kotlin.reflect.full.KClasses; import kotlin.reflect.jvm.ReflectJvmMapping; +import java.lang.annotation.Annotation; import java.lang.reflect.Constructor; import java.util.ArrayList; import java.util.Arrays; @@ -104,7 +106,7 @@ public interface PreferredConstructorDiscoverer> candidates = new ArrayList<>(); Constructor noArg = null; - for (var candidate : rawOwningType.getDeclaredConstructors()) { + for (Constructor candidate : rawOwningType.getDeclaredConstructors()) { // Synthetic constructors should not be considered if (candidate.isSynthetic()) { @@ -151,14 +153,14 @@ public interface PreferredConstructorDiscoverer { - var primaryConstructor = KClasses + KFunction primaryConstructor = KClasses .getPrimaryConstructor(JvmClassMappingKt.getKotlinClass(type.getType())); if (primaryConstructor == null) { return DEFAULT.discover(type, entity); } - var javaConstructor = ReflectJvmMapping.getJavaConstructor(primaryConstructor); + Constructor javaConstructor = ReflectJvmMapping.getJavaConstructor(primaryConstructor); return javaConstructor != null ? buildPreferredConstructor(javaConstructor, type, entity) : null; }); @@ -196,17 +198,17 @@ public interface PreferredConstructorDiscoverer((Constructor) constructor); } - var parameterTypes = typeInformation.getParameterTypes(constructor); - var parameterNames = PARAMETER_NAME_DISCOVERER.getParameterNames(constructor); + List> parameterTypes = typeInformation.getParameterTypes(constructor); + String[] parameterNames = PARAMETER_NAME_DISCOVERER.getParameterNames(constructor); Parameter[] parameters = new Parameter[parameterTypes.size()]; - var parameterAnnotations = constructor.getParameterAnnotations(); + Annotation[][] parameterAnnotations = constructor.getParameterAnnotations(); - for (var i = 0; i < parameterTypes.size(); i++) { + for (int i = 0; i < parameterTypes.size(); i++) { - var name = parameterNames == null || parameterNames.length <= i ? null : parameterNames[i]; - var type = parameterTypes.get(i); - var annotations = parameterAnnotations[i]; + String name = parameterNames == null || parameterNames.length <= i ? null : parameterNames[i]; + TypeInformation type = parameterTypes.get(i); + Annotation[] annotations = parameterAnnotations[i]; parameters[i] = new Parameter(name, type, annotations, entity); } diff --git a/src/main/java/org/springframework/data/mapping/model/Property.java b/src/main/java/org/springframework/data/mapping/model/Property.java index 5ce6be576..c403a70ba 100644 --- a/src/main/java/org/springframework/data/mapping/model/Property.java +++ b/src/main/java/org/springframework/data/mapping/model/Property.java @@ -264,8 +264,8 @@ public class Property { private static Optional findWither(TypeInformation owner, String propertyName, Class rawType) { - var resultHolder = new AtomicReference(); - var methodName = String.format("with%s", StringUtils.capitalize(propertyName)); + AtomicReference resultHolder = new AtomicReference(); + String methodName = String.format("with%s", StringUtils.capitalize(propertyName)); ReflectionUtils.doWithMethods(owner.getType(), it -> { @@ -274,7 +274,7 @@ public class Property { } }, it -> isMethodWithSingleParameterOfType(it, methodName, rawType)); - var method = resultHolder.get(); + Method method = resultHolder.get(); return method != null ? Optional.of(method) : Optional.empty(); } diff --git a/src/main/java/org/springframework/data/mapping/model/ReflectionEntityInstantiator.java b/src/main/java/org/springframework/data/mapping/model/ReflectionEntityInstantiator.java index 52ec9837c..6be9ec56c 100644 --- a/src/main/java/org/springframework/data/mapping/model/ReflectionEntityInstantiator.java +++ b/src/main/java/org/springframework/data/mapping/model/ReflectionEntityInstantiator.java @@ -23,6 +23,7 @@ import java.util.Collections; import org.springframework.beans.BeanInstantiationException; import org.springframework.beans.BeanUtils; import org.springframework.data.mapping.FactoryMethod; +import org.springframework.data.mapping.InstanceCreatorMetadata; import org.springframework.data.mapping.Parameter; import org.springframework.data.mapping.PersistentEntity; import org.springframework.data.mapping.PersistentProperty; @@ -46,15 +47,15 @@ enum ReflectionEntityInstantiator implements EntityInstantiator { public , P extends PersistentProperty

> T createInstance(E entity, ParameterValueProvider

provider) { - var creator = entity.getInstanceCreatorMetadata(); + InstanceCreatorMetadata

creator = entity.getInstanceCreatorMetadata(); if (creator == null) { return instantiateClass(entity); } - var parameterCount = creator.getParameterCount(); + int parameterCount = creator.getParameterCount(); - var params = parameterCount == 0 ? EMPTY_ARGS : new Object[parameterCount]; - var i = 0; + Object[] params = parameterCount == 0 ? EMPTY_ARGS : new Object[parameterCount]; + int i = 0; for (Parameter parameter : creator.getParameters()) { params[i++] = provider.getParameterValue(parameter); } @@ -62,7 +63,7 @@ enum ReflectionEntityInstantiator implements EntityInstantiator { if (creator instanceof FactoryMethod method) { try { - var t = (T) ReflectionUtils.invokeMethod(method.getFactoryMethod(), null, params); + T t = (T) ReflectionUtils.invokeMethod(method.getFactoryMethod(), null, params); if (t == null) { throw new IllegalStateException("Method %s returned null!".formatted(method.getFactoryMethod())); @@ -87,8 +88,8 @@ enum ReflectionEntityInstantiator implements EntityInstantiator { try { Class clazz = entity.getType(); if (clazz.isArray()) { - var ctype = clazz; - var dims = 0; + Class ctype = clazz; + int dims = 0; while (ctype.isArray()) { ctype = ctype.getComponentType(); dims++; diff --git a/src/main/java/org/springframework/data/mapping/model/SimplePersistentPropertyPathAccessor.java b/src/main/java/org/springframework/data/mapping/model/SimplePersistentPropertyPathAccessor.java index 8ffd44f23..181048fe8 100644 --- a/src/main/java/org/springframework/data/mapping/model/SimplePersistentPropertyPathAccessor.java +++ b/src/main/java/org/springframework/data/mapping/model/SimplePersistentPropertyPathAccessor.java @@ -32,6 +32,7 @@ import org.springframework.data.mapping.AccessOptions.GetOptions.GetNulls; import org.springframework.data.mapping.AccessOptions.SetOptions; import org.springframework.data.mapping.AccessOptions.SetOptions.SetNulls; import org.springframework.data.mapping.MappingException; +import org.springframework.data.mapping.PersistentEntity; import org.springframework.data.mapping.PersistentProperty; import org.springframework.data.mapping.PersistentPropertyAccessor; import org.springframework.data.mapping.PersistentPropertyPath; @@ -81,7 +82,7 @@ class SimplePersistentPropertyPathAccessor implements PersistentPropertyPathA public Object getProperty(PersistentPropertyPath> path, GetOptions options) { Object bean = getBean(); - var current = bean; + Object current = bean; if (path.isEmpty()) { return bean; @@ -93,8 +94,8 @@ class SimplePersistentPropertyPathAccessor implements PersistentPropertyPathA return handleNull(path, options.getNullValues().toNullHandling()); } - var entity = property.getOwner(); - var accessor = entity.getPropertyAccessor(current); + PersistentEntity> entity = property.getOwner(); + PersistentPropertyAccessor accessor = entity.getPropertyAccessor(current); current = accessor.getProperty(property); } @@ -120,18 +121,18 @@ class SimplePersistentPropertyPathAccessor implements PersistentPropertyPathA Assert.notNull(path, "PersistentPropertyPath must not be null!"); Assert.isTrue(!path.isEmpty(), "PersistentPropertyPath must not be empty!"); - var parentPath = path.getParentPath(); - var leafProperty = path.getRequiredLeafProperty(); + PersistentPropertyPath> parentPath = path.getParentPath(); + PersistentProperty> leafProperty = path.getRequiredLeafProperty(); if (!options.propagate(parentPath.getLeafProperty())) { return; } - var lookupOptions = options.getNullHandling() != REJECT + GetOptions lookupOptions = options.getNullHandling() != REJECT ? DEFAULT_GET_OPTIONS.withNullValues(GetNulls.EARLY_RETURN) : DEFAULT_GET_OPTIONS; - var parent = parentPath.isEmpty() ? getBean() : getProperty(parentPath, lookupOptions); + Object parent = parentPath.isEmpty() ? getBean() : getProperty(parentPath, lookupOptions); if (parent == null) { handleNull(path, options.getNullHandling()); @@ -144,7 +145,7 @@ class SimplePersistentPropertyPathAccessor implements PersistentPropertyPathA return; } - var parentProperty = parentPath.getRequiredLeafProperty(); + PersistentProperty> parentProperty = parentPath.getRequiredLeafProperty(); Object newValue; @@ -168,7 +169,7 @@ class SimplePersistentPropertyPathAccessor implements PersistentPropertyPathA return; } - var result = CollectionFactory.createApproximateMap(source, source.size()); + Map result = CollectionFactory.createApproximateMap(source, source.size()); for (Entry entry : source.entrySet()) { result.put(entry.getKey(), setValue(entry.getValue(), leafProperty, value)); @@ -197,14 +198,14 @@ class SimplePersistentPropertyPathAccessor implements PersistentPropertyPathA return null; } - var nullIntermediateMessage = "Cannot lookup property %s on null intermediate! Original path was: %s on %s."; + String nullIntermediateMessage = "Cannot lookup property %s on null intermediate! Original path was: %s on %s."; if (SetNulls.SKIP_AND_LOG.equals(handling)) { logger.info(nullIntermediateMessage); return null; } - var parentPath = path.getParentPath(); + PersistentPropertyPath> parentPath = path.getParentPath(); throw new MappingException(String.format(nullIntermediateMessage, parentPath.getLeafProperty(), path.toDotPath(), getBean().getClass().getName())); @@ -221,7 +222,7 @@ class SimplePersistentPropertyPathAccessor implements PersistentPropertyPathA */ private static Object setValue(Object parent, PersistentProperty property, @Nullable Object newValue) { - var accessor = property.getAccessorForOwner(parent); + PersistentPropertyAccessor accessor = property.getAccessorForOwner(parent); accessor.setProperty(property, newValue); return accessor.getBean(); } @@ -241,7 +242,7 @@ class SimplePersistentPropertyPathAccessor implements PersistentPropertyPathA Assert.notNull(property, "Property must not be null!"); Assert.notNull(type, "Type must not be null!"); - var value = getProperty(property); + Object value = getProperty(property); if (value == null) { return null; diff --git a/src/main/java/org/springframework/data/mapping/model/SimpleTypeHolder.java b/src/main/java/org/springframework/data/mapping/model/SimpleTypeHolder.java index 1783d48cd..93e1f06a4 100644 --- a/src/main/java/org/springframework/data/mapping/model/SimpleTypeHolder.java +++ b/src/main/java/org/springframework/data/mapping/model/SimpleTypeHolder.java @@ -122,7 +122,7 @@ public class SimpleTypeHolder { private void registerCachePositives(Map, Boolean> source) { - for (var entry : source.entrySet()) { + for (Map.Entry, Boolean> entry : source.entrySet()) { if (!entry.getValue()) { continue; @@ -142,8 +142,8 @@ public class SimpleTypeHolder { Assert.notNull(type, "Type must not be null!"); - var localSimpleTypes = this.simpleTypes; - var isSimpleType = localSimpleTypes.get(type); + Map, Boolean> localSimpleTypes = this.simpleTypes; + Boolean isSimpleType = localSimpleTypes.get(type); if (Object.class.equals(type) || Enum.class.isAssignableFrom(type)) { return true; @@ -153,13 +153,13 @@ public class SimpleTypeHolder { return isSimpleType; } - var typeName = type.getName(); + String typeName = type.getName(); if (typeName.startsWith("java.lang") || type.getName().startsWith("java.time") || typeName.equals("kotlin.Unit")) { return true; } - for (var simpleType : localSimpleTypes.keySet()) { + for (Class simpleType : localSimpleTypes.keySet()) { if (simpleType.isAssignableFrom(type)) { diff --git a/src/main/java/org/springframework/data/mapping/model/SpELContext.java b/src/main/java/org/springframework/data/mapping/model/SpELContext.java index 8c3a5ab51..07a356a3a 100644 --- a/src/main/java/org/springframework/data/mapping/model/SpELContext.java +++ b/src/main/java/org/springframework/data/mapping/model/SpELContext.java @@ -92,7 +92,7 @@ public class SpELContext { public EvaluationContext getEvaluationContext(Object source) { - var evaluationContext = new StandardEvaluationContext(source); + StandardEvaluationContext evaluationContext = new StandardEvaluationContext(source); evaluationContext.addPropertyAccessor(accessor); if (factory != null) { diff --git a/src/main/java/org/springframework/data/mapping/model/SpELExpressionParameterValueProvider.java b/src/main/java/org/springframework/data/mapping/model/SpELExpressionParameterValueProvider.java index c24460840..dca6bd170 100644 --- a/src/main/java/org/springframework/data/mapping/model/SpELExpressionParameterValueProvider.java +++ b/src/main/java/org/springframework/data/mapping/model/SpELExpressionParameterValueProvider.java @@ -49,7 +49,7 @@ public class SpELExpressionParameterValueProvider

interfaceClass) { - var methods = ReflectionUtils.getAllDeclaredMethods(interfaceClass); + Method[] methods = ReflectionUtils.getAllDeclaredMethods(interfaceClass); - for (var method : methods) { + for (Method method : methods) { if (method.isDefault()) { return true; } @@ -70,21 +70,21 @@ public class DefaultMethodInvokingMethodInterceptor implements MethodInterceptor @Override public Object invoke(@SuppressWarnings("null") MethodInvocation invocation) throws Throwable { - var method = invocation.getMethod(); + Method method = invocation.getMethod(); if (!method.isDefault()) { return invocation.proceed(); } - var arguments = invocation.getArguments(); - var proxy = ((ProxyMethodInvocation) invocation).getProxy(); + Object[] arguments = invocation.getArguments(); + Object proxy = ((ProxyMethodInvocation) invocation).getProxy(); return getMethodHandle(method).bindTo(proxy).invokeWithArguments(arguments); } private MethodHandle getMethodHandle(Method method) throws Exception { - var handle = methodHandleCache.get(method); + MethodHandle handle = methodHandleCache.get(method); if (handle == null) { @@ -127,7 +127,7 @@ public class DefaultMethodInvokingMethodInterceptor implements MethodInterceptor private Lookup getLookup(Class declaringClass, Method privateLookupIn) { - var lookup = MethodHandles.lookup(); + Lookup lookup = MethodHandles.lookup(); try { return (Lookup) privateLookupIn.invoke(MethodHandles.class, declaringClass, lookup); @@ -152,7 +152,7 @@ public class DefaultMethodInvokingMethodInterceptor implements MethodInterceptor throw new IllegalStateException("Could not obtain MethodHandles.lookup constructor!"); } - var constructor = this.constructor.get(); + Constructor constructor = this.constructor.get(); return constructor.newInstance(method.getDeclaringClass()).unreflectSpecial(method, method.getDeclaringClass()); } @@ -184,7 +184,7 @@ public class DefaultMethodInvokingMethodInterceptor implements MethodInterceptor private static MethodHandle doLookup(Method method, Lookup lookup) throws NoSuchMethodException, IllegalAccessException { - var methodType = MethodType.methodType(method.getReturnType(), method.getParameterTypes()); + MethodType methodType = MethodType.methodType(method.getReturnType(), method.getParameterTypes()); if (Modifier.isStatic(method.getModifiers())) { return lookup.findStatic(method.getDeclaringClass(), method.getName(), methodType); @@ -215,7 +215,7 @@ public class DefaultMethodInvokingMethodInterceptor implements MethodInterceptor */ public static MethodHandleLookup getMethodHandleLookup() { - for (var it : MethodHandleLookup.values()) { + for (MethodHandleLookup it : MethodHandleLookup.values()) { if (it.isAvailable()) { return it; @@ -230,7 +230,7 @@ public class DefaultMethodInvokingMethodInterceptor implements MethodInterceptor try { - var constructor = Lookup.class.getDeclaredConstructor(Class.class); + Constructor constructor = Lookup.class.getDeclaredConstructor(Class.class); ReflectionUtils.makeAccessible(constructor); return constructor; diff --git a/src/main/java/org/springframework/data/projection/DefaultProjectionInformation.java b/src/main/java/org/springframework/data/projection/DefaultProjectionInformation.java index 358d3a540..41b211871 100644 --- a/src/main/java/org/springframework/data/projection/DefaultProjectionInformation.java +++ b/src/main/java/org/springframework/data/projection/DefaultProjectionInformation.java @@ -17,6 +17,7 @@ package org.springframework.data.projection; import java.beans.PropertyDescriptor; import java.io.IOException; +import java.lang.reflect.Method; import java.util.Arrays; import java.util.Comparator; import java.util.List; @@ -33,6 +34,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.core.log.LogMessage; import org.springframework.core.type.AnnotationMetadata; import org.springframework.core.type.MethodMetadata; +import org.springframework.core.type.classreading.MetadataReader; import org.springframework.core.type.classreading.SimpleMetadataReaderFactory; import org.springframework.data.util.StreamUtils; import org.springframework.util.Assert; @@ -103,7 +105,7 @@ class DefaultProjectionInformation implements ProjectionInformation { */ private static boolean hasDefaultGetter(PropertyDescriptor descriptor) { - var method = descriptor.getReadMethod(); + Method method = descriptor.getReadMethod(); return method != null && method.isDefault(); } @@ -153,13 +155,13 @@ class DefaultProjectionInformation implements ProjectionInformation { */ private Stream collectDescriptors() { - var allButDefaultGetters = Arrays.stream(BeanUtils.getPropertyDescriptors(type)) // + Stream allButDefaultGetters = Arrays.stream(BeanUtils.getPropertyDescriptors(type)) // .filter(it -> !hasDefaultGetter(it)); - var ownDescriptors = metadata.map(it -> filterAndOrder(allButDefaultGetters, it)) + Stream ownDescriptors = metadata.map(it -> filterAndOrder(allButDefaultGetters, it)) .orElse(allButDefaultGetters); - var superTypeDescriptors = metadata.map(this::fromMetadata) // + Stream superTypeDescriptors = metadata.map(this::fromMetadata) // .orElseGet(this::fromType) // .flatMap(it -> new PropertyDescriptorSource(it).collectDescriptors()); @@ -177,7 +179,7 @@ class DefaultProjectionInformation implements ProjectionInformation { private static Stream filterAndOrder(Stream source, AnnotationMetadata metadata) { - var orderedMethods = getMethodOrder(metadata); + Map orderedMethods = getMethodOrder(metadata); if (orderedMethods.isEmpty()) { return source; @@ -218,8 +220,8 @@ class DefaultProjectionInformation implements ProjectionInformation { try { - var factory = new SimpleMetadataReaderFactory(type.getClassLoader()); - var metadataReader = factory.getMetadataReader(ClassUtils.getQualifiedName(type)); + SimpleMetadataReaderFactory factory = new SimpleMetadataReaderFactory(type.getClassLoader()); + MetadataReader metadataReader = factory.getMetadataReader(ClassUtils.getQualifiedName(type)); return Optional.of(metadataReader.getAnnotationMetadata()); @@ -254,7 +256,7 @@ class DefaultProjectionInformation implements ProjectionInformation { */ private static Map getMethodOrder(AnnotationMetadata metadata) { - var methods = metadata.getDeclaredMethods() // + List methods = metadata.getDeclaredMethods() // .stream() // .map(MethodMetadata::getMethodName) // .distinct() // diff --git a/src/main/java/org/springframework/data/projection/MapAccessingMethodInterceptor.java b/src/main/java/org/springframework/data/projection/MapAccessingMethodInterceptor.java index dee0e34e6..75359d251 100644 --- a/src/main/java/org/springframework/data/projection/MapAccessingMethodInterceptor.java +++ b/src/main/java/org/springframework/data/projection/MapAccessingMethodInterceptor.java @@ -15,6 +15,7 @@ */ package org.springframework.data.projection; +import java.lang.reflect.Method; import java.util.Map; import org.aopalliance.intercept.MethodInterceptor; @@ -45,13 +46,13 @@ class MapAccessingMethodInterceptor implements MethodInterceptor { @Override public Object invoke(@SuppressWarnings("null") MethodInvocation invocation) throws Throwable { - var method = invocation.getMethod(); + Method method = invocation.getMethod(); if (ReflectionUtils.isObjectMethod(method)) { return invocation.proceed(); } - var accessor = new Accessor(method); + Accessor accessor = new Accessor(method); if (accessor.isGetter()) { return map.get(accessor.getPropertyName()); diff --git a/src/main/java/org/springframework/data/projection/ProjectingMethodInterceptor.java b/src/main/java/org/springframework/data/projection/ProjectingMethodInterceptor.java index 3d32bcf9c..15861f51a 100644 --- a/src/main/java/org/springframework/data/projection/ProjectingMethodInterceptor.java +++ b/src/main/java/org/springframework/data/projection/ProjectingMethodInterceptor.java @@ -66,11 +66,11 @@ class ProjectingMethodInterceptor implements MethodInterceptor { public Object invoke(@SuppressWarnings("null") @NonNull MethodInvocation invocation) throws Throwable { TypeInformation type = ClassTypeInformation.fromReturnTypeOf(invocation.getMethod()); - var resultType = type; - var typeToReturn = type; + TypeInformation resultType = type; + TypeInformation typeToReturn = type; - var result = delegate.invoke(invocation); - var applyWrapper = false; + Object result = delegate.invoke(invocation); + boolean applyWrapper = false; if (NullableWrapperConverters.supports(type.getType()) && (result == null || !NullableWrapperConverters.supports(result.getClass()))) { @@ -94,7 +94,7 @@ class ProjectingMethodInterceptor implements MethodInterceptor { return null; } - var targetType = type.getType(); + Class targetType = type.getType(); if (type.isCollectionLike() && !ClassUtils.isPrimitiveArray(targetType)) { return projectCollectionElements(asCollection(result), type); @@ -123,9 +123,9 @@ class ProjectingMethodInterceptor implements MethodInterceptor { */ private Object projectCollectionElements(Collection sources, TypeInformation type) { - var rawType = type.getType(); - var componentType = type.getComponentType(); - var result = CollectionFactory.createCollection(rawType.isArray() ? List.class : rawType, + Class rawType = type.getType(); + TypeInformation componentType = type.getComponentType(); + Collection result = CollectionFactory.createCollection(rawType.isArray() ? List.class : rawType, componentType != null ? componentType.getType() : null, sources.size()); for (Object source : sources) { @@ -149,7 +149,7 @@ class ProjectingMethodInterceptor implements MethodInterceptor { */ private Map projectMapValues(Map sources, TypeInformation type) { - var result = CollectionFactory.createMap(type.getType(), sources.size()); + Map result = CollectionFactory.createMap(type.getType(), sources.size()); for (Entry source : sources.entrySet()) { result.put(source.getKey(), getProjection(source.getValue(), type.getRequiredMapValueType().getType())); diff --git a/src/main/java/org/springframework/data/projection/PropertyAccessingMethodInterceptor.java b/src/main/java/org/springframework/data/projection/PropertyAccessingMethodInterceptor.java index d6bd75636..a30d697d9 100644 --- a/src/main/java/org/springframework/data/projection/PropertyAccessingMethodInterceptor.java +++ b/src/main/java/org/springframework/data/projection/PropertyAccessingMethodInterceptor.java @@ -53,13 +53,13 @@ class PropertyAccessingMethodInterceptor implements MethodInterceptor { @Override public Object invoke(@SuppressWarnings("null") MethodInvocation invocation) throws Throwable { - var method = invocation.getMethod(); + Method method = invocation.getMethod(); if (ReflectionUtils.isObjectMethod(method)) { return invocation.proceed(); } - var descriptor = BeanUtils.findPropertyForMethod(method); + PropertyDescriptor descriptor = BeanUtils.findPropertyForMethod(method); if (descriptor == null) { throw new IllegalStateException("Invoked method is not a property accessor!"); diff --git a/src/main/java/org/springframework/data/projection/ProxyProjectionFactory.java b/src/main/java/org/springframework/data/projection/ProxyProjectionFactory.java index b67fd2d7e..57b6be70c 100644 --- a/src/main/java/org/springframework/data/projection/ProxyProjectionFactory.java +++ b/src/main/java/org/springframework/data/projection/ProxyProjectionFactory.java @@ -103,7 +103,7 @@ class ProxyProjectionFactory implements ProjectionFactory, BeanClassLoaderAware return (T) source; } - var factory = new ProxyFactory(); + ProxyFactory factory = new ProxyFactory(); factory.setTarget(source); factory.setOpaque(true); factory.setInterfaces(projectionType, TargetAware.class); @@ -162,7 +162,7 @@ class ProxyProjectionFactory implements ProjectionFactory, BeanClassLoaderAware */ private MethodInterceptor getMethodInterceptor(Object source, Class projectionType) { - var propertyInvocationInterceptor = getFactoryFor(source, projectionType) + MethodInterceptor propertyInvocationInterceptor = getFactoryFor(source, projectionType) .createMethodInterceptor(source, projectionType); return new ProjectingMethodInterceptor(this, @@ -178,7 +178,7 @@ class ProxyProjectionFactory implements ProjectionFactory, BeanClassLoaderAware */ private MethodInterceptorFactory getFactoryFor(Object source, Class projectionType) { - for (var factory : factories) { + for (MethodInterceptorFactory factory : factories) { if (factory.supports(source, projectionType)) { return factory; } diff --git a/src/main/java/org/springframework/data/projection/SpelAwareProxyProjectionFactory.java b/src/main/java/org/springframework/data/projection/SpelAwareProxyProjectionFactory.java index f393e97aa..b88902030 100644 --- a/src/main/java/org/springframework/data/projection/SpelAwareProxyProjectionFactory.java +++ b/src/main/java/org/springframework/data/projection/SpelAwareProxyProjectionFactory.java @@ -16,6 +16,7 @@ package org.springframework.data.projection; import java.beans.PropertyDescriptor; +import java.lang.reflect.Method; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -87,7 +88,7 @@ public class SpelAwareProxyProjectionFactory extends ProxyProjectionFactory impl Assert.notNull(type, "Type must not be null!"); - var callback = new AnnotationDetectionMethodCallback(Value.class); + AnnotationDetectionMethodCallback callback = new AnnotationDetectionMethodCallback(Value.class); ReflectionUtils.doWithMethods(type, callback); return callback.hasFoundAnnotation(); @@ -106,7 +107,7 @@ public class SpelAwareProxyProjectionFactory extends ProxyProjectionFactory impl return false; } - var readMethod = descriptor.getReadMethod(); + Method readMethod = descriptor.getReadMethod(); if (readMethod == null) { return false; diff --git a/src/main/java/org/springframework/data/projection/SpelEvaluatingMethodInterceptor.java b/src/main/java/org/springframework/data/projection/SpelEvaluatingMethodInterceptor.java index bc2888591..c396bf520 100644 --- a/src/main/java/org/springframework/data/projection/SpelEvaluatingMethodInterceptor.java +++ b/src/main/java/org/springframework/data/projection/SpelEvaluatingMethodInterceptor.java @@ -15,6 +15,7 @@ */ package org.springframework.data.projection; +import java.lang.reflect.Method; import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -76,7 +77,7 @@ class SpelEvaluatingMethodInterceptor implements MethodInterceptor { Assert.notNull(parser, "SpelExpressionParser must not be null!"); Assert.notNull(targetInterface, "Target interface must not be null!"); - var evaluationContext = new StandardEvaluationContext(); + StandardEvaluationContext evaluationContext = new StandardEvaluationContext(); if (target instanceof Map) { evaluationContext.addPropertyAccessor(new MapAccessor()); @@ -107,9 +108,9 @@ class SpelEvaluatingMethodInterceptor implements MethodInterceptor { Map expressions = new HashMap<>(); - for (var method : targetInterface.getMethods()) { + for (Method method : targetInterface.getMethods()) { - var value = AnnotationUtils.findAnnotation(method, Value.class); + Value value = AnnotationUtils.findAnnotation(method, Value.class); if (value == null) { continue; } @@ -128,7 +129,7 @@ class SpelEvaluatingMethodInterceptor implements MethodInterceptor { @Override public Object invoke(@SuppressWarnings("null") MethodInvocation invocation) throws Throwable { - var expression = expressions.get(invocation.getMethod().hashCode()); + Expression expression = expressions.get(invocation.getMethod().hashCode()); if (expression == null) { return delegate.invoke(invocation); @@ -184,7 +185,7 @@ class SpelEvaluatingMethodInterceptor implements MethodInterceptor { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(target); + int result = ObjectUtils.nullSafeHashCode(target); result = 31 * result + ObjectUtils.nullSafeHashCode(args); return result; } diff --git a/src/main/java/org/springframework/data/querydsl/QSort.java b/src/main/java/org/springframework/data/querydsl/QSort.java index 4fe84398f..19768fae8 100644 --- a/src/main/java/org/springframework/data/querydsl/QSort.java +++ b/src/main/java/org/springframework/data/querydsl/QSort.java @@ -165,7 +165,7 @@ public class QSort extends Sort implements Serializable { */ private static String preparePropertyPath(Path path) { - var root = path.getRoot(); + Path root = path.getRoot(); return root == null || path.equals(root) ? path.toString() : path.toString().substring(root.toString().length() + 1); diff --git a/src/main/java/org/springframework/data/querydsl/QuerydslUtils.java b/src/main/java/org/springframework/data/querydsl/QuerydslUtils.java index 58e3bb45d..cedef3e75 100644 --- a/src/main/java/org/springframework/data/querydsl/QuerydslUtils.java +++ b/src/main/java/org/springframework/data/querydsl/QuerydslUtils.java @@ -19,6 +19,7 @@ import org.springframework.lang.Nullable; import org.springframework.util.StringUtils; import com.querydsl.core.types.Path; +import com.querydsl.core.types.PathMetadata; import com.querydsl.core.types.PathType; /** @@ -57,8 +58,8 @@ public abstract class QuerydslUtils { return tail; } - var metadata = path.getMetadata(); - var parent = metadata.getParent(); + PathMetadata metadata = path.getMetadata(); + Path parent = metadata.getParent(); if (parent == null) { return tail; @@ -68,7 +69,7 @@ public abstract class QuerydslUtils { return toDotPath(parent, tail); } - var element = metadata.getElement(); + Object element = metadata.getElement(); if (element == null || !StringUtils.hasText(element.toString())) { return toDotPath(parent, tail); diff --git a/src/main/java/org/springframework/data/querydsl/SimpleEntityPathResolver.java b/src/main/java/org/springframework/data/querydsl/SimpleEntityPathResolver.java index 57de61112..44f822065 100644 --- a/src/main/java/org/springframework/data/querydsl/SimpleEntityPathResolver.java +++ b/src/main/java/org/springframework/data/querydsl/SimpleEntityPathResolver.java @@ -64,11 +64,11 @@ public class SimpleEntityPathResolver implements EntityPathResolver { @SuppressWarnings("unchecked") public EntityPath createPath(Class domainClass) { - var pathClassName = getQueryClassName(domainClass); + String pathClassName = getQueryClassName(domainClass); try { - var pathClass = ClassUtils.forName(pathClassName, domainClass.getClassLoader()); + Class pathClass = ClassUtils.forName(pathClassName, domainClass.getClassLoader()); return getStaticFieldOfType(pathClass)// .map(it -> (EntityPath) ReflectionUtils.getField(it, null))// @@ -88,17 +88,17 @@ public class SimpleEntityPathResolver implements EntityPathResolver { */ private Optional getStaticFieldOfType(Class type) { - for (var field : type.getDeclaredFields()) { + for (Field field : type.getDeclaredFields()) { - var isStatic = Modifier.isStatic(field.getModifiers()); - var hasSameType = type.equals(field.getType()); + boolean isStatic = Modifier.isStatic(field.getModifiers()); + boolean hasSameType = type.equals(field.getType()); if (isStatic && hasSameType) { return Optional.of(field); } } - var superclass = type.getSuperclass(); + Class superclass = type.getSuperclass(); return Object.class.equals(superclass) ? Optional.empty() : getStaticFieldOfType(superclass); } @@ -110,8 +110,8 @@ public class SimpleEntityPathResolver implements EntityPathResolver { */ private String getQueryClassName(Class domainClass) { - var simpleClassName = ClassUtils.getShortName(domainClass); - var packageName = domainClass.getPackage().getName(); + String simpleClassName = ClassUtils.getShortName(domainClass); + String packageName = domainClass.getPackage().getName(); return String.format("%s%s.Q%s%s", packageName, querySuffix, getClassBase(simpleClassName), domainClass.getSimpleName()); @@ -125,7 +125,7 @@ public class SimpleEntityPathResolver implements EntityPathResolver { */ private String getClassBase(String shortName) { - var parts = shortName.split("\\."); + String[] parts = shortName.split("\\."); return parts.length < 2 ? "" : parts[0] + "_"; } diff --git a/src/main/java/org/springframework/data/querydsl/binding/PropertyPathInformation.java b/src/main/java/org/springframework/data/querydsl/binding/PropertyPathInformation.java index aa6b4db82..db02c42b0 100644 --- a/src/main/java/org/springframework/data/querydsl/binding/PropertyPathInformation.java +++ b/src/main/java/org/springframework/data/querydsl/binding/PropertyPathInformation.java @@ -16,6 +16,7 @@ package org.springframework.data.querydsl.binding; import java.beans.PropertyDescriptor; +import java.lang.reflect.Field; import org.springframework.beans.BeanUtils; import org.springframework.data.mapping.PropertyPath; @@ -107,10 +108,10 @@ record PropertyPathInformation(PropertyPath path) implements PathInformation { return reifyPath(resolver, path, (Path) ((CollectionPathBase) base).any()); } - var entityPath = base != null ? base : resolver.createPath(path.getOwningType().getType()); + Path entityPath = base != null ? base : resolver.createPath(path.getOwningType().getType()); - var field = ReflectionUtils.findField(entityPath.getClass(), path.getSegment()); - var value = ReflectionUtils.getField(field, entityPath); + Field field = ReflectionUtils.findField(entityPath.getClass(), path.getSegment()); + Object value = ReflectionUtils.getField(field, entityPath); if (path.hasNext()) { return reifyPath(resolver, path.next(), (Path) value); @@ -136,7 +137,7 @@ record PropertyPathInformation(PropertyPath path) implements PathInformation { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(getRootParentType()); + int result = ObjectUtils.nullSafeHashCode(getRootParentType()); result = 31 * result + ObjectUtils.nullSafeHashCode(toDotPath()); return result; } diff --git a/src/main/java/org/springframework/data/querydsl/binding/QuerydslBindings.java b/src/main/java/org/springframework/data/querydsl/binding/QuerydslBindings.java index ef4607491..93c0b1234 100644 --- a/src/main/java/org/springframework/data/querydsl/binding/QuerydslBindings.java +++ b/src/main/java/org/springframework/data/querydsl/binding/QuerydslBindings.java @@ -128,7 +128,7 @@ public class QuerydslBindings { Assert.notEmpty(paths, "At least one path has to be provided!"); - for (var path : paths) { + for (Path path : paths) { this.denyList.add(toDotPath(Optional.of(path))); } } @@ -142,7 +142,7 @@ public class QuerydslBindings { Assert.notEmpty(paths, "At least one path has to be provided!"); - for (var path : paths) { + for (Path path : paths) { this.allowList.add(toDotPath(Optional.of(path))); } } @@ -204,11 +204,11 @@ public class QuerydslBindings { Assert.notNull(path, "PropertyPath must not be null!"); - var pathAndBinding = (PathAndBinding) pathSpecs.get(createKey(path)); + PathAndBinding pathAndBinding = (PathAndBinding) pathSpecs.get(createKey(path)); if (pathAndBinding != null) { - var binding = pathAndBinding.getBinding(); + Optional> binding = pathAndBinding.getBinding(); if (binding.isPresent()) { return binding; @@ -251,7 +251,7 @@ public class QuerydslBindings { } // fully-qualified path lookup - var key = createKey(type, path); + String key = createKey(type, path); if (pathSpecs.containsKey(key)) { return pathSpecs.get(key).getPath()// .map(QuerydslPathInformation::of)// @@ -303,9 +303,9 @@ public class QuerydslBindings { */ private boolean isPathVisible(PathInformation path) { - var segments = Arrays.asList(path.toDotPath().split("\\.")); + List segments = Arrays.asList(path.toDotPath().split("\\.")); - for (var i = 1; i <= segments.size(); i++) { + for (int i = 1; i <= segments.size(); i++) { if (!isPathVisible(StringUtils.collectionToDelimitedString(segments.subList(0, i), "."))) { @@ -354,7 +354,7 @@ public class QuerydslBindings { private static String fromRootPath(Path path) { - var rootPath = path.getMetadata().getRootPath(); + Path rootPath = path.getMetadata().getRootPath(); if (rootPath == null) { throw new IllegalStateException(String.format("Couldn't find root path on path %s!", path)); @@ -481,7 +481,7 @@ public class QuerydslBindings { super.registerBinding(binding); - var dotPath = toDotPath(binding.getPath()); + String dotPath = toDotPath(binding.getPath()); if (alias != null) { QuerydslBindings.this.pathSpecs.put(alias, binding); @@ -587,7 +587,7 @@ public class QuerydslBindings { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(path); + int result = ObjectUtils.nullSafeHashCode(path); result = 31 * result + ObjectUtils.nullSafeHashCode(binding); return result; } diff --git a/src/main/java/org/springframework/data/querydsl/binding/QuerydslBindingsFactory.java b/src/main/java/org/springframework/data/querydsl/binding/QuerydslBindingsFactory.java index ffe614faa..c4a12b240 100644 --- a/src/main/java/org/springframework/data/querydsl/binding/QuerydslBindingsFactory.java +++ b/src/main/java/org/springframework/data/querydsl/binding/QuerydslBindingsFactory.java @@ -15,6 +15,7 @@ */ package org.springframework.data.querydsl.binding; +import java.util.List; import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; @@ -124,9 +125,9 @@ public class QuerydslBindingsFactory implements ApplicationContextAware { Assert.notNull(customizer, "Customizer must not be null!"); Assert.notNull(domainType, "Domain type must not be null!"); - var path = verifyEntityPathPresent(domainType); + EntityPath path = verifyEntityPathPresent(domainType); - var bindings = new QuerydslBindings(); + QuerydslBindings bindings = new QuerydslBindings(); defaultCustomizer.customize(bindings, path); findCustomizerForDomainType(customizer, domainType.getType()).customize(bindings, path); @@ -166,11 +167,11 @@ public class QuerydslBindingsFactory implements ApplicationContextAware { private QuerydslBinderCustomizer> getDefaultQuerydslBinderCustomizer( AutowireCapableBeanFactory beanFactory) { - var customizers = beanFactory + List customizers = beanFactory .getBeanProvider(QuerydslBinderCustomizerDefaults.class).stream().collect(Collectors.toList()); return (bindings, root) -> { - for (var querydslBinderCustomizerDefaults : customizers) { + for (QuerydslBinderCustomizerDefaults querydslBinderCustomizerDefaults : customizers) { querydslBinderCustomizerDefaults.customize(bindings, root); } }; diff --git a/src/main/java/org/springframework/data/querydsl/binding/QuerydslDefaultBinding.java b/src/main/java/org/springframework/data/querydsl/binding/QuerydslDefaultBinding.java index 6fdfd0766..066bbf7ab 100644 --- a/src/main/java/org/springframework/data/querydsl/binding/QuerydslDefaultBinding.java +++ b/src/main/java/org/springframework/data/querydsl/binding/QuerydslDefaultBinding.java @@ -55,7 +55,7 @@ class QuerydslDefaultBinding implements MultiValueBinding if (path instanceof CollectionPathBase) { - var builder = new BooleanBuilder(); + BooleanBuilder builder = new BooleanBuilder(); for (Object element : value) { builder.and(((CollectionPathBase) path).contains(element)); @@ -70,7 +70,7 @@ class QuerydslDefaultBinding implements MultiValueBinding return Optional.of(expression.in(value)); } - var object = value.iterator().next(); + Object object = value.iterator().next(); return Optional.of(object == null // ? expression.isNull() // diff --git a/src/main/java/org/springframework/data/querydsl/binding/QuerydslPathInformation.java b/src/main/java/org/springframework/data/querydsl/binding/QuerydslPathInformation.java index 221b1bec5..c94b33fa3 100644 --- a/src/main/java/org/springframework/data/querydsl/binding/QuerydslPathInformation.java +++ b/src/main/java/org/springframework/data/querydsl/binding/QuerydslPathInformation.java @@ -57,7 +57,7 @@ class QuerydslPathInformation implements PathInformation { @Override public Class getLeafParentType() { - var parent = path.getMetadata().getParent(); + Path parent = path.getMetadata().getParent(); if (parent == null) { throw new IllegalStateException(String.format("Could not obtain metadata for parent node of %s!", path)); @@ -103,7 +103,7 @@ class QuerydslPathInformation implements PathInformation { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(getRootParentType()); + int result = ObjectUtils.nullSafeHashCode(getRootParentType()); result = 31 * result + ObjectUtils.nullSafeHashCode(toDotPath()); return result; } diff --git a/src/main/java/org/springframework/data/querydsl/binding/QuerydslPredicateBuilder.java b/src/main/java/org/springframework/data/querydsl/binding/QuerydslPredicateBuilder.java index f872f8c8b..481c5d835 100644 --- a/src/main/java/org/springframework/data/querydsl/binding/QuerydslPredicateBuilder.java +++ b/src/main/java/org/springframework/data/querydsl/binding/QuerydslPredicateBuilder.java @@ -15,6 +15,7 @@ */ package org.springframework.data.querydsl.binding; +import java.beans.PropertyDescriptor; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -85,7 +86,7 @@ public class QuerydslPredicateBuilder { Assert.notNull(bindings, "Context must not be null!"); - var builder = new BooleanBuilder(); + BooleanBuilder builder = new BooleanBuilder(); if (values.isEmpty()) { return getPredicate(builder); @@ -97,20 +98,20 @@ public class QuerydslPredicateBuilder { continue; } - var path = entry.getKey(); + String path = entry.getKey(); if (!bindings.isPathAvailable(path, type)) { continue; } - var propertyPath = bindings.getPropertyPath(path, type); + PathInformation propertyPath = bindings.getPropertyPath(path, type); if (propertyPath == null) { continue; } - var value = convertToPropertyPathSpecificType(entry.getValue(), propertyPath); - var predicate = invokeBinding(propertyPath, bindings, value); + Collection value = convertToPropertyPathSpecificType(entry.getValue(), propertyPath); + Optional predicate = invokeBinding(propertyPath, bindings, value); predicate.ifPresent(builder::and); } @@ -141,7 +142,7 @@ public class QuerydslPredicateBuilder { private Optional invokeBinding(PathInformation dotPath, QuerydslBindings bindings, Collection values) { - var path = getPath(dotPath, bindings); + Path path = getPath(dotPath, bindings); return bindings.getBindingForPath(dotPath).orElse(defaultBinding).bind(path, values); } @@ -157,7 +158,7 @@ public class QuerydslPredicateBuilder { */ private Path getPath(PathInformation path, QuerydslBindings bindings) { - var resolvedPath = bindings.getExistingPath(path); + Optional> resolvedPath = bindings.getExistingPath(path); return resolvedPath.orElseGet(() -> paths.computeIfAbsent(path, it -> it.reifyPath(resolver))); } @@ -173,7 +174,7 @@ public class QuerydslPredicateBuilder { */ private Collection convertToPropertyPathSpecificType(List source, PathInformation path) { - var targetType = path.getLeafType(); + Class targetType = path.getLeafType(); if (source.isEmpty() || isSingleElementCollectionWithEmptyItem(source)) { return Collections.emptyList(); @@ -181,7 +182,7 @@ public class QuerydslPredicateBuilder { Collection target = new ArrayList<>(source.size()); - for (var value : source) { + for (Object value : source) { target.add(getValue(path, targetType, value)); } @@ -211,12 +212,12 @@ public class QuerydslPredicateBuilder { */ private static TypeDescriptor getTargetTypeDescriptor(PathInformation path) { - var descriptor = path.getLeafPropertyDescriptor(); + PropertyDescriptor descriptor = path.getLeafPropertyDescriptor(); - var owningType = path.getLeafParentType(); - var leafProperty = path.getLeafProperty(); + Class owningType = path.getLeafParentType(); + String leafProperty = path.getLeafProperty(); - var result = descriptor == null // + TypeDescriptor result = descriptor == null // ? TypeDescriptor .nested(org.springframework.data.util.ReflectionUtils.findRequiredField(owningType, leafProperty), 0) : TypeDescriptor @@ -248,7 +249,7 @@ public class QuerydslPredicateBuilder { */ private static Predicate getPredicate(BooleanBuilder builder) { - var predicate = builder.getValue(); + Predicate predicate = builder.getValue(); return predicate == null ? new BooleanBuilder() : predicate; } } diff --git a/src/main/java/org/springframework/data/repository/cdi/CdiRepositoryBean.java b/src/main/java/org/springframework/data/repository/cdi/CdiRepositoryBean.java index e1e35c33b..9faae59ea 100644 --- a/src/main/java/org/springframework/data/repository/cdi/CdiRepositoryBean.java +++ b/src/main/java/org/springframework/data/repository/cdi/CdiRepositoryBean.java @@ -35,6 +35,7 @@ import java.util.Optional; import java.util.Set; import java.util.function.Supplier; import java.util.stream.Collectors; +import java.util.stream.Stream; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -42,6 +43,7 @@ import org.apache.commons.logging.LogFactory; import org.springframework.core.annotation.AnnotationUtils; import org.springframework.core.log.LogMessage; import org.springframework.data.repository.config.CustomRepositoryImplementationDetector; +import org.springframework.data.repository.config.RepositoryFragmentConfiguration; import org.springframework.data.repository.core.support.RepositoryComposition.RepositoryFragments; import org.springframework.data.repository.core.support.RepositoryFactorySupport; import org.springframework.data.repository.core.support.RepositoryFragment; @@ -145,7 +147,7 @@ public abstract class CdiRepositoryBean implements Bean, PassivationCapabl List qualifierNames = new ArrayList<>(qualifiers.size()); - for (var qualifier : qualifiers) { + for (Annotation qualifier : qualifiers) { qualifierNames.add(qualifier.annotationType().getName()); } @@ -187,7 +189,7 @@ public abstract class CdiRepositoryBean implements Bean, PassivationCapabl */ @SuppressWarnings("unchecked") protected S getDependencyInstance(Bean bean, Class type) { - var creationalContext = beanManager.createCreationalContext(bean); + CreationalContext creationalContext = beanManager.createCreationalContext(bean); return (S) beanManager.getReference(bean, type, creationalContext); } @@ -200,7 +202,7 @@ public abstract class CdiRepositoryBean implements Bean, PassivationCapabl public final T create(@SuppressWarnings("null") CreationalContext creationalContext) { - var repoInstance = this.repoInstance; + T repoInstance = this.repoInstance; if (repoInstance != null) { logger.debug(LogMessage.format("Returning eagerly created CDI repository instance for %s.", repositoryType.getName())); @@ -286,10 +288,10 @@ public abstract class CdiRepositoryBean implements Bean, PassivationCapabl */ protected T create(Supplier factorySupplier, Class repositoryType) { - var configuration = lookupConfiguration(beanManager, qualifiers); - var repositoryFragments = getRepositoryFragments(repositoryType, configuration); + CdiRepositoryConfiguration configuration = lookupConfiguration(beanManager, qualifiers); + RepositoryFragments repositoryFragments = getRepositoryFragments(repositoryType, configuration); - var factory = factorySupplier.get(); + RepositoryFactorySupport factory = factorySupplier.get(); applyConfiguration(factory, configuration); @@ -307,7 +309,7 @@ public abstract class CdiRepositoryBean implements Bean, PassivationCapabl Assert.notNull(repositoryType, "Repository type must not be null!"); - var cdiRepositoryConfiguration = lookupConfiguration(beanManager, qualifiers); + CdiRepositoryConfiguration cdiRepositoryConfiguration = lookupConfiguration(beanManager, qualifiers); return getRepositoryFragments(repositoryType, cdiRepositoryConfiguration); } @@ -315,14 +317,14 @@ public abstract class CdiRepositoryBean implements Bean, PassivationCapabl private RepositoryFragments getRepositoryFragments(Class repositoryType, CdiRepositoryConfiguration cdiRepositoryConfiguration) { - var customImplementationBean = getCustomImplementationBean(repositoryType, + Optional> customImplementationBean = getCustomImplementationBean(repositoryType, cdiRepositoryConfiguration); Optional customImplementation = customImplementationBean.map(this::getDependencyInstance); - var repositoryFragments = findRepositoryFragments(repositoryType, + List> repositoryFragments = findRepositoryFragments(repositoryType, cdiRepositoryConfiguration); - var customImplementationFragment = customImplementation // + RepositoryFragments customImplementationFragment = customImplementation // .map(RepositoryFragments::just) // .orElseGet(RepositoryFragments::empty); @@ -334,14 +336,14 @@ public abstract class CdiRepositoryBean implements Bean, PassivationCapabl private List> findRepositoryFragments(Class repositoryType, CdiRepositoryConfiguration cdiRepositoryConfiguration) { - var fragmentConfigurations = context + Stream fragmentConfigurations = context .getRepositoryFragments(cdiRepositoryConfiguration, repositoryType); return fragmentConfigurations.flatMap(it -> { - var interfaceClass = (Class) lookupFragmentInterface(repositoryType, it.getInterfaceName()); - var implementationClass = context.loadClass(it.getClassName()); - var bean = getBean(implementationClass, beanManager, qualifiers); + Class interfaceClass = (Class) lookupFragmentInterface(repositoryType, it.getInterfaceName()); + Class implementationClass = context.loadClass(it.getClassName()); + Optional> bean = getBean(implementationClass, beanManager, qualifiers); return Optionals.toStream(bean.map(this::getDependencyInstance) // .map(implementation -> RepositoryFragment.implemented(interfaceClass, implementation))); // diff --git a/src/main/java/org/springframework/data/repository/cdi/CdiRepositoryContext.java b/src/main/java/org/springframework/data/repository/cdi/CdiRepositoryContext.java index c65d5aee9..f5e8bbb2b 100644 --- a/src/main/java/org/springframework/data/repository/cdi/CdiRepositoryContext.java +++ b/src/main/java/org/springframework/data/repository/cdi/CdiRepositoryContext.java @@ -30,6 +30,7 @@ import org.springframework.core.type.filter.TypeFilter; import org.springframework.data.repository.config.CustomRepositoryImplementationDetector; import org.springframework.data.repository.config.FragmentMetadata; import org.springframework.data.repository.config.ImplementationDetectionConfiguration; +import org.springframework.data.repository.config.ImplementationLookupConfiguration; import org.springframework.data.repository.config.RepositoryFragmentConfiguration; import org.springframework.data.util.Optionals; import org.springframework.data.util.Streamable; @@ -113,7 +114,7 @@ public class CdiRepositoryContext { Stream getRepositoryFragments(CdiRepositoryConfiguration configuration, Class repositoryInterface) { - var config = new CdiImplementationDetectionConfiguration(configuration, + CdiImplementationDetectionConfiguration config = new CdiImplementationDetectionConfiguration(configuration, metadataReaderFactory); return metdata.getFragmentInterfaces(repositoryInterface.getName()) // @@ -134,9 +135,9 @@ public class CdiRepositoryContext { ImplementationDetectionConfiguration configuration = new CdiImplementationDetectionConfiguration( cdiRepositoryConfiguration, metadataReaderFactory); - var lookup = configuration.forFragment(repositoryType.getName()); + ImplementationLookupConfiguration lookup = configuration.forFragment(repositoryType.getName()); - var beanDefinition = detector.detectCustomImplementation(lookup); + Optional beanDefinition = detector.detectCustomImplementation(lookup); return beanDefinition.map(this::loadBeanClass); } @@ -144,8 +145,8 @@ public class CdiRepositoryContext { private Optional detectRepositoryFragmentConfiguration(String fragmentInterfaceName, CdiImplementationDetectionConfiguration config) { - var lookup = config.forFragment(fragmentInterfaceName); - var beanDefinition = detector.detectCustomImplementation(lookup); + ImplementationLookupConfiguration lookup = config.forFragment(fragmentInterfaceName); + Optional beanDefinition = detector.detectCustomImplementation(lookup); return beanDefinition.map(bd -> new RepositoryFragmentConfiguration(fragmentInterfaceName, bd)); } @@ -153,7 +154,7 @@ public class CdiRepositoryContext { @Nullable private Class loadBeanClass(AbstractBeanDefinition definition) { - var beanClassName = definition.getBeanClassName(); + String beanClassName = definition.getBeanClassName(); return beanClassName == null ? null : loadClass(beanClassName); } diff --git a/src/main/java/org/springframework/data/repository/cdi/CdiRepositoryExtensionSupport.java b/src/main/java/org/springframework/data/repository/cdi/CdiRepositoryExtensionSupport.java index 152031514..417f27909 100644 --- a/src/main/java/org/springframework/data/repository/cdi/CdiRepositoryExtensionSupport.java +++ b/src/main/java/org/springframework/data/repository/cdi/CdiRepositoryExtensionSupport.java @@ -19,6 +19,7 @@ import jakarta.enterprise.event.Observes; import jakarta.enterprise.inject.Any; import jakarta.enterprise.inject.Default; import jakarta.enterprise.inject.spi.AfterDeploymentValidation; +import jakarta.enterprise.inject.spi.AnnotatedType; import jakarta.enterprise.inject.spi.BeanManager; import jakarta.enterprise.inject.spi.Extension; import jakarta.enterprise.inject.spi.ProcessAnnotatedType; @@ -72,13 +73,13 @@ public abstract class CdiRepositoryExtensionSupport implements Extension { */ protected void processAnnotatedType(@Observes ProcessAnnotatedType processAnnotatedType) { - var annotatedType = processAnnotatedType.getAnnotatedType(); - var repositoryType = annotatedType.getJavaClass(); + AnnotatedType annotatedType = processAnnotatedType.getAnnotatedType(); + Class repositoryType = annotatedType.getJavaClass(); if (isRepository(repositoryType)) { // Determine the qualifiers of the repository type. - var qualifiers = getQualifiers(repositoryType); + Set qualifiers = getQualifiers(repositoryType); if (logger.isDebugEnabled()) { logger.debug( @@ -97,10 +98,10 @@ public abstract class CdiRepositoryExtensionSupport implements Extension { */ private boolean isRepository(Class type) { - var isInterface = type.isInterface(); - var extendsRepository = Repository.class.isAssignableFrom(type); - var isAnnotated = isAnnotatedWith(type, RepositoryDefinition.class); - var excludedByAnnotation = isAnnotatedDirectlyWith(type, NoRepositoryBean.class); + boolean isInterface = type.isInterface(); + boolean extendsRepository = Repository.class.isAssignableFrom(type); + boolean isAnnotated = isAnnotatedWith(type, RepositoryDefinition.class); + boolean excludedByAnnotation = isAnnotatedDirectlyWith(type, NoRepositoryBean.class); return isInterface && (extendsRepository || isAnnotated) && !excludedByAnnotation; } @@ -111,9 +112,9 @@ public abstract class CdiRepositoryExtensionSupport implements Extension { private Set getQualifiers(final Class type) { Set qualifiers = new HashSet<>(); - var annotations = type.getAnnotations(); - for (var annotation : annotations) { - var annotationType = annotation.annotationType(); + Annotation[] annotations = type.getAnnotations(); + for (Annotation annotation : annotations) { + Class annotationType = annotation.annotationType(); if (isAnnotatedWith(annotationType, Qualifier.class)) { qualifiers.add(annotation); } @@ -138,7 +139,7 @@ public abstract class CdiRepositoryExtensionSupport implements Extension { */ void afterDeploymentValidation(@Observes AfterDeploymentValidation event, BeanManager manager) { - for (var bean : eagerRepositories) { + for (CdiRepositoryBean bean : eagerRepositories) { logger.debug(LogMessage.format("Eagerly instantiating CDI repository bean for %s.", bean.getBeanClass())); bean.initialize(); @@ -163,7 +164,7 @@ public abstract class CdiRepositoryExtensionSupport implements Extension { */ protected void registerBean(CdiRepositoryBean bean) { - var repositoryInterface = bean.getBeanClass(); + Class repositoryInterface = bean.getBeanClass(); if (isAnnotatedWith(repositoryInterface, Eager.class)) { this.eagerRepositories.add(bean); diff --git a/src/main/java/org/springframework/data/repository/config/AnnotationRepositoryConfigurationSource.java b/src/main/java/org/springframework/data/repository/config/AnnotationRepositoryConfigurationSource.java index 7a4c9e4e3..e9aa49c6b 100644 --- a/src/main/java/org/springframework/data/repository/config/AnnotationRepositoryConfigurationSource.java +++ b/src/main/java/org/springframework/data/repository/config/AnnotationRepositoryConfigurationSource.java @@ -20,6 +20,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.regex.Pattern; @@ -114,7 +115,7 @@ public class AnnotationRepositoryConfigurationSource extends RepositoryConfigura Assert.notNull(annotation, "Annotation must not be null!"); Assert.notNull(resourceLoader, "ResourceLoader must not be null!"); - var annotationAttributes = metadata.getAnnotationAttributes(annotation.getName()); + Map annotationAttributes = metadata.getAnnotationAttributes(annotation.getName()); if (annotationAttributes == null) { throw new IllegalStateException(String.format("Unable to obtain annotation attributes for %s!", annotation)); @@ -129,14 +130,14 @@ public class AnnotationRepositoryConfigurationSource extends RepositoryConfigura public Streamable getBasePackages() { - var value = attributes.getStringArray("value"); - var basePackages = attributes.getStringArray(BASE_PACKAGES); - var basePackageClasses = attributes.getClassArray(BASE_PACKAGE_CLASSES); + String[] value = attributes.getStringArray("value"); + String[] basePackages = attributes.getStringArray(BASE_PACKAGES); + Class[] basePackageClasses = attributes.getClassArray(BASE_PACKAGE_CLASSES); // Default configuration - return package of annotated class if (value.length == 0 && basePackages.length == 0 && basePackageClasses.length == 0) { - var className = configMetadata.getClassName(); + String className = configMetadata.getClassName(); return Streamable.of(ClassUtils.getPackageName(className)); } @@ -144,7 +145,7 @@ public class AnnotationRepositoryConfigurationSource extends RepositoryConfigura packages.addAll(Arrays.asList(value)); packages.addAll(Arrays.asList(basePackages)); - for (var c : basePackageClasses) { + for (Class c : basePackageClasses) { packages.add(ClassUtils.getPackageName(c)); } @@ -190,7 +191,7 @@ public class AnnotationRepositoryConfigurationSource extends RepositoryConfigura return Optional.empty(); } - var repositoryBaseClass = attributes.getClass(REPOSITORY_BASE_CLASS); + Class repositoryBaseClass = attributes.getClass(REPOSITORY_BASE_CLASS); return DefaultRepositoryBaseClass.class.equals(repositoryBaseClass) ? Optional.empty() : Optional.of(repositoryBaseClass.getName()); } @@ -230,7 +231,7 @@ public class AnnotationRepositoryConfigurationSource extends RepositoryConfigura throw new IllegalArgumentException(String.format("No attribute named %s found!", name)); } - var value = attributes.get(name); + Object value = attributes.get(name); if (value == null) { return Optional.empty(); @@ -240,7 +241,7 @@ public class AnnotationRepositoryConfigurationSource extends RepositoryConfigura () -> String.format("Attribute value for %s is of type %s but was expected to be of type %s!", name, value.getClass(), type)); - var result = value instanceof String // + Object result = value instanceof String // ? StringUtils.hasText((String) value) ? value : null // : value; @@ -265,15 +266,15 @@ public class AnnotationRepositoryConfigurationSource extends RepositoryConfigura @Override public String getResourceDescription() { - var simpleClassName = ClassUtils.getShortName(configMetadata.getClassName()); - var annoationClassName = ClassUtils.getShortName(enableAnnotationMetadata.getClassName()); + String simpleClassName = ClassUtils.getShortName(configMetadata.getClassName()); + String annoationClassName = ClassUtils.getShortName(enableAnnotationMetadata.getClassName()); return String.format("@%s declared on %s", annoationClassName, simpleClassName); } private Streamable parseFilters(String attributeName) { - var filters = attributes.getAnnotationArray(attributeName); + AnnotationAttributes[] filters = attributes.getAnnotationArray(attributeName); return Streamable.of(() -> Arrays.stream(filters).flatMap(it -> typeFiltersFor(it).stream())); } @@ -287,7 +288,7 @@ public class AnnotationRepositoryConfigurationSource extends RepositoryConfigura */ private Optional getNullDefaultedAttribute(String attributeName) { - var attribute = attributes.getString(attributeName); + String attribute = attributes.getString(attributeName); return StringUtils.hasText(attribute) ? Optional.of(attribute) : Optional.empty(); } @@ -303,13 +304,13 @@ public class AnnotationRepositoryConfigurationSource extends RepositoryConfigura List typeFilters = new ArrayList<>(); FilterType filterType = filterAttributes.getEnum("type"); - for (var filterClass : filterAttributes.getClassArray("value")) { + for (Class filterClass : filterAttributes.getClassArray("value")) { switch (filterType) { case ANNOTATION: Assert.isAssignable(Annotation.class, filterClass, "An error occured when processing a @ComponentScan " + "ANNOTATION type filter: "); @SuppressWarnings("unchecked") - var annoClass = (Class) filterClass; + Class annoClass = (Class) filterClass; typeFilters.add(new AnnotationTypeFilter(annoClass)); break; case ASSIGNABLE_TYPE: @@ -325,9 +326,9 @@ public class AnnotationRepositoryConfigurationSource extends RepositoryConfigura } } - for (var expression : getPatterns(filterAttributes)) { + for (String expression : getPatterns(filterAttributes)) { - var rawName = filterType.toString(); + String rawName = filterType.toString(); if ("REGEX".equals(rawName)) { typeFilters.add(new RegexPatternTypeFilter(Pattern.compile(expression))); diff --git a/src/main/java/org/springframework/data/repository/config/CustomRepositoryImplementationDetector.java b/src/main/java/org/springframework/data/repository/config/CustomRepositoryImplementationDetector.java index ae983366a..492169d36 100644 --- a/src/main/java/org/springframework/data/repository/config/CustomRepositoryImplementationDetector.java +++ b/src/main/java/org/springframework/data/repository/config/CustomRepositoryImplementationDetector.java @@ -102,7 +102,7 @@ public class CustomRepositoryImplementationDetector { Assert.notNull(lookup, "ImplementationLookupConfiguration must not be null!"); - var definitions = implementationCandidates.getOptional() + Set definitions = implementationCandidates.getOptional() .orElseGet(() -> findCandidateBeanDefinitions(lookup)).stream() // .filter(lookup::matches) // .collect(StreamUtils.toUnmodifiableSet()); @@ -116,9 +116,9 @@ public class CustomRepositoryImplementationDetector { private Set findCandidateBeanDefinitions(ImplementationDetectionConfiguration config) { - var postfix = config.getImplementationPostfix(); + String postfix = config.getImplementationPostfix(); - var provider = new ClassPathScanningCandidateComponentProvider(false, + ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(false, environment); provider.setResourceLoader(resourceLoader); provider.setResourcePattern(String.format(CUSTOM_IMPLEMENTATION_RESOURCE_PATTERN, postfix)); @@ -135,7 +135,7 @@ public class CustomRepositoryImplementationDetector { private static Optional throwAmbiguousCustomImplementationException( Collection definitions) { - var implementationNames = definitions.stream()// + String implementationNames = definitions.stream()// .map(BeanDefinition::getBeanClassName)// .collect(Collectors.joining(", ")); diff --git a/src/main/java/org/springframework/data/repository/config/DefaultImplementationLookupConfiguration.java b/src/main/java/org/springframework/data/repository/config/DefaultImplementationLookupConfiguration.java index 66d1480cf..8d914ddb8 100644 --- a/src/main/java/org/springframework/data/repository/config/DefaultImplementationLookupConfiguration.java +++ b/src/main/java/org/springframework/data/repository/config/DefaultImplementationLookupConfiguration.java @@ -103,14 +103,14 @@ class DefaultImplementationLookupConfiguration implements ImplementationLookupCo Assert.notNull(definition, "BeanDefinition must not be null!"); - var beanClassName = definition.getBeanClassName(); + String beanClassName = definition.getBeanClassName(); if (beanClassName == null || isExcluded(beanClassName, getExcludeFilters())) { return false; } - var beanPackage = ClassUtils.getPackageName(beanClassName); - var localName = getLocalName(beanClassName); + String beanPackage = ClassUtils.getPackageName(beanClassName); + String localName = getLocalName(beanClassName); return localName.equals(getImplementationClassName()) // && getBasePackages().stream().anyMatch(beanPackage::startsWith); @@ -118,7 +118,7 @@ class DefaultImplementationLookupConfiguration implements ImplementationLookupCo private String getLocalName(String className) { - var shortName = ClassUtils.getShortName(className); + String shortName = ClassUtils.getShortName(className); return shortName.substring(shortName.lastIndexOf('.') + 1); } @@ -126,7 +126,7 @@ class DefaultImplementationLookupConfiguration implements ImplementationLookupCo try { - var reader = getMetadataReaderFactory().getMetadataReader(beanClassName); + MetadataReader reader = getMetadataReaderFactory().getMetadataReader(beanClassName); return filters.stream().anyMatch(it -> matches(it, reader)); } catch (IOException o_O) { return true; diff --git a/src/main/java/org/springframework/data/repository/config/FragmentMetadata.java b/src/main/java/org/springframework/data/repository/config/FragmentMetadata.java index 7651d77ac..f639ac28e 100644 --- a/src/main/java/org/springframework/data/repository/config/FragmentMetadata.java +++ b/src/main/java/org/springframework/data/repository/config/FragmentMetadata.java @@ -66,7 +66,7 @@ public class FragmentMetadata { Assert.hasText(interfaceName, "Interface name must not be null or empty!"); - var metadata = getAnnotationMetadata(interfaceName); + AnnotationMetadata metadata = getAnnotationMetadata(interfaceName); return !metadata.hasAnnotation(NoRepositoryBean.class.getName()); } diff --git a/src/main/java/org/springframework/data/repository/config/ImplementationDetectionConfiguration.java b/src/main/java/org/springframework/data/repository/config/ImplementationDetectionConfiguration.java index 0d5cc88f6..f2a969a2a 100644 --- a/src/main/java/org/springframework/data/repository/config/ImplementationDetectionConfiguration.java +++ b/src/main/java/org/springframework/data/repository/config/ImplementationDetectionConfiguration.java @@ -70,7 +70,7 @@ public interface ImplementationDetectionConfiguration { Assert.notNull(definition, "BeanDefinition must not be null!"); - var beanName = definition.getBeanClassName(); + String beanName = definition.getBeanClassName(); if (beanName == null) { throw new IllegalStateException("Cannot generate bean name for BeanDefinition without bean class name!"); diff --git a/src/main/java/org/springframework/data/repository/config/NamedQueriesBeanDefinitionBuilder.java b/src/main/java/org/springframework/data/repository/config/NamedQueriesBeanDefinitionBuilder.java index 577928830..ee1daddd0 100644 --- a/src/main/java/org/springframework/data/repository/config/NamedQueriesBeanDefinitionBuilder.java +++ b/src/main/java/org/springframework/data/repository/config/NamedQueriesBeanDefinitionBuilder.java @@ -17,6 +17,7 @@ package org.springframework.data.repository.config; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.PropertiesFactoryBean; +import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.data.repository.core.NamedQueries; import org.springframework.data.repository.core.support.PropertiesBasedNamedQueries; @@ -66,22 +67,22 @@ public class NamedQueriesBeanDefinitionBuilder { */ public BeanDefinition build(@Nullable Object source) { - var properties = BeanDefinitionBuilder.rootBeanDefinition(PropertiesFactoryBean.class); + BeanDefinitionBuilder properties = BeanDefinitionBuilder.rootBeanDefinition(PropertiesFactoryBean.class); - var locationsToUse = StringUtils.hasText(locations) ? locations : defaultLocation; + String locationsToUse = StringUtils.hasText(locations) ? locations : defaultLocation; properties.addPropertyValue("locations", locationsToUse); if (!StringUtils.hasText(locations)) { properties.addPropertyValue("ignoreResourceNotFound", true); } - var propertiesDefinition = properties.getBeanDefinition(); + AbstractBeanDefinition propertiesDefinition = properties.getBeanDefinition(); propertiesDefinition.setSource(source); - var namedQueries = BeanDefinitionBuilder.rootBeanDefinition(PropertiesBasedNamedQueries.class); + BeanDefinitionBuilder namedQueries = BeanDefinitionBuilder.rootBeanDefinition(PropertiesBasedNamedQueries.class); namedQueries.addConstructorArgValue(propertiesDefinition); - var namedQueriesDefinition = namedQueries.getBeanDefinition(); + AbstractBeanDefinition namedQueriesDefinition = namedQueries.getBeanDefinition(); namedQueriesDefinition.setSource(source); return namedQueriesDefinition; diff --git a/src/main/java/org/springframework/data/repository/config/NamedQueriesBeanDefinitionParser.java b/src/main/java/org/springframework/data/repository/config/NamedQueriesBeanDefinitionParser.java index 4ff65137f..826fa0888 100644 --- a/src/main/java/org/springframework/data/repository/config/NamedQueriesBeanDefinitionParser.java +++ b/src/main/java/org/springframework/data/repository/config/NamedQueriesBeanDefinitionParser.java @@ -19,6 +19,7 @@ import java.util.Properties; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.PropertiesFactoryBean; +import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.xml.BeanDefinitionParser; import org.springframework.beans.factory.xml.ParserContext; @@ -54,20 +55,20 @@ public class NamedQueriesBeanDefinitionParser implements BeanDefinitionParser { @NonNull public BeanDefinition parse(Element element, ParserContext parserContext) { - var properties = BeanDefinitionBuilder.rootBeanDefinition(PropertiesFactoryBean.class); + BeanDefinitionBuilder properties = BeanDefinitionBuilder.rootBeanDefinition(PropertiesFactoryBean.class); properties.addPropertyValue("locations", getDefaultedLocation(element)); if (isDefaultLocation(element)) { properties.addPropertyValue("ignoreResourceNotFound", true); } - var propertiesDefinition = properties.getBeanDefinition(); + AbstractBeanDefinition propertiesDefinition = properties.getBeanDefinition(); propertiesDefinition.setSource(parserContext.extractSource(element)); - var namedQueries = BeanDefinitionBuilder.rootBeanDefinition(PropertiesBasedNamedQueries.class); + BeanDefinitionBuilder namedQueries = BeanDefinitionBuilder.rootBeanDefinition(PropertiesBasedNamedQueries.class); namedQueries.addConstructorArgValue(propertiesDefinition); - var namedQueriesDefinition = namedQueries.getBeanDefinition(); + AbstractBeanDefinition namedQueriesDefinition = namedQueries.getBeanDefinition(); namedQueriesDefinition.setSource(parserContext.extractSource(element)); return namedQueriesDefinition; @@ -91,7 +92,7 @@ public class NamedQueriesBeanDefinitionParser implements BeanDefinitionParser { */ private String getDefaultedLocation(Element element) { - var locations = element.getAttribute(ATTRIBUTE); + String locations = element.getAttribute(ATTRIBUTE); return StringUtils.hasText(locations) ? locations : defaultLocation; } } diff --git a/src/main/java/org/springframework/data/repository/config/RepositoryBeanDefinitionBuilder.java b/src/main/java/org/springframework/data/repository/config/RepositoryBeanDefinitionBuilder.java index 804e7f652..c02699d2e 100644 --- a/src/main/java/org/springframework/data/repository/config/RepositoryBeanDefinitionBuilder.java +++ b/src/main/java/org/springframework/data/repository/config/RepositoryBeanDefinitionBuilder.java @@ -15,6 +15,7 @@ */ package org.springframework.data.repository.config; +import java.util.List; import java.util.Optional; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -22,6 +23,7 @@ import java.util.stream.Stream; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.core.env.Environment; @@ -93,7 +95,7 @@ class RepositoryBeanDefinitionBuilder { Assert.notNull(registry, "BeanDefinitionRegistry must not be null!"); Assert.notNull(resourceLoader, "ResourceLoader must not be null!"); - var builder = BeanDefinitionBuilder + BeanDefinitionBuilder builder = BeanDefinitionBuilder .rootBeanDefinition(configuration.getRepositoryFactoryBeanClassName()); builder.getRawBeanDefinition().setSource(configuration.getSource()); @@ -106,7 +108,7 @@ class RepositoryBeanDefinitionBuilder { configuration.getRepositoryBaseClassName()// .ifPresent(it -> builder.addPropertyValue("repositoryBaseClass", it)); - var definitionBuilder = new NamedQueriesBeanDefinitionBuilder( + NamedQueriesBeanDefinitionBuilder definitionBuilder = new NamedQueriesBeanDefinitionBuilder( extension.getDefaultNamedQueryLocation()); configuration.getNamedQueriesLocation().ifPresent(definitionBuilder::setLocations); @@ -117,10 +119,10 @@ class RepositoryBeanDefinitionBuilder { builder.addDependsOn(it); }); - var fragmentsBuilder = BeanDefinitionBuilder + BeanDefinitionBuilder fragmentsBuilder = BeanDefinitionBuilder .rootBeanDefinition(RepositoryFragmentsFactoryBean.class); - var fragmentBeanNames = registerRepositoryFragmentsImplementation(configuration) // + List fragmentBeanNames = registerRepositoryFragmentsImplementation(configuration) // .map(RepositoryFragmentConfiguration::getFragmentBeanName) // .collect(Collectors.toList()); @@ -134,16 +136,16 @@ class RepositoryBeanDefinitionBuilder { private Optional registerCustomImplementation(RepositoryConfiguration configuration) { - var lookup = configuration.toLookupConfiguration(metadataReaderFactory); + ImplementationLookupConfiguration lookup = configuration.toLookupConfiguration(metadataReaderFactory); - var beanName = lookup.getImplementationBeanName(); + String beanName = lookup.getImplementationBeanName(); // Already a bean configured? if (registry.containsBeanDefinition(beanName)) { return Optional.of(beanName); } - var beanDefinition = implementationDetector.detectCustomImplementation(lookup); + Optional beanDefinition = implementationDetector.detectCustomImplementation(lookup); return beanDefinition.map(it -> { @@ -162,7 +164,7 @@ class RepositoryBeanDefinitionBuilder { private Stream registerRepositoryFragmentsImplementation( RepositoryConfiguration configuration) { - var config = configuration + ImplementationDetectionConfiguration config = configuration .toImplementationDetectionConfiguration(metadataReaderFactory); return fragmentMetadata.getFragmentInterfaces(configuration.getRepositoryInterface()) // @@ -175,8 +177,8 @@ class RepositoryBeanDefinitionBuilder { private Optional detectRepositoryFragmentConfiguration(String fragmentInterface, ImplementationDetectionConfiguration config) { - var lookup = config.forFragment(fragmentInterface); - var beanDefinition = implementationDetector.detectCustomImplementation(lookup); + ImplementationLookupConfiguration lookup = config.forFragment(fragmentInterface); + Optional beanDefinition = implementationDetector.detectCustomImplementation(lookup); return beanDefinition.map(bd -> new RepositoryFragmentConfiguration(fragmentInterface, bd)); } @@ -184,7 +186,7 @@ class RepositoryBeanDefinitionBuilder { private void potentiallyRegisterFragmentImplementation(RepositoryConfiguration repositoryConfiguration, RepositoryFragmentConfiguration fragmentConfiguration) { - var beanName = fragmentConfiguration.getImplementationBeanName(); + String beanName = fragmentConfiguration.getImplementationBeanName(); // Already a bean configured? if (registry.containsBeanDefinition(beanName)) { @@ -206,7 +208,7 @@ class RepositoryBeanDefinitionBuilder { private void potentiallyRegisterRepositoryFragment(RepositoryConfiguration configuration, RepositoryFragmentConfiguration fragmentConfiguration) { - var beanName = fragmentConfiguration.getFragmentBeanName(); + String beanName = fragmentConfiguration.getFragmentBeanName(); // Already a bean configured? if (registry.containsBeanDefinition(beanName)) { @@ -217,7 +219,7 @@ class RepositoryBeanDefinitionBuilder { logger.debug("Registering repository fragment: " + beanName); } - var fragmentBuilder = BeanDefinitionBuilder.rootBeanDefinition(RepositoryFragment.class, + BeanDefinitionBuilder fragmentBuilder = BeanDefinitionBuilder.rootBeanDefinition(RepositoryFragment.class, "implemented"); fragmentBuilder.addConstructorArgValue(fragmentConfiguration.getInterfaceName()); diff --git a/src/main/java/org/springframework/data/repository/config/RepositoryBeanDefinitionParser.java b/src/main/java/org/springframework/data/repository/config/RepositoryBeanDefinitionParser.java index 3707a23e4..0b84a3bc5 100644 --- a/src/main/java/org/springframework/data/repository/config/RepositoryBeanDefinitionParser.java +++ b/src/main/java/org/springframework/data/repository/config/RepositoryBeanDefinitionParser.java @@ -18,10 +18,14 @@ package org.springframework.data.repository.config; import static org.springframework.beans.factory.support.BeanDefinitionReaderUtils.*; import org.springframework.beans.factory.config.BeanDefinition; +import org.springframework.beans.factory.parsing.BeanComponentDefinition; import org.springframework.beans.factory.parsing.ReaderContext; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.xml.BeanDefinitionParser; import org.springframework.beans.factory.xml.ParserContext; +import org.springframework.beans.factory.xml.XmlReaderContext; +import org.springframework.core.env.Environment; +import org.springframework.core.io.ResourceLoader; import org.springframework.data.config.ConfigurationUtils; import org.springframework.lang.Nullable; import org.springframework.util.Assert; @@ -53,22 +57,22 @@ public class RepositoryBeanDefinitionParser implements BeanDefinitionParser { @Nullable public BeanDefinition parse(Element element, ParserContext parser) { - var readerContext = parser.getReaderContext(); + XmlReaderContext readerContext = parser.getReaderContext(); try { - var resourceLoader = ConfigurationUtils.getRequiredResourceLoader(readerContext); - var environment = readerContext.getEnvironment(); - var registry = parser.getRegistry(); + ResourceLoader resourceLoader = ConfigurationUtils.getRequiredResourceLoader(readerContext); + Environment environment = readerContext.getEnvironment(); + BeanDefinitionRegistry registry = parser.getRegistry(); - var configSource = new XmlRepositoryConfigurationSource(element, parser, + XmlRepositoryConfigurationSource configSource = new XmlRepositoryConfigurationSource(element, parser, environment); - var delegate = new RepositoryConfigurationDelegate(configSource, resourceLoader, + RepositoryConfigurationDelegate delegate = new RepositoryConfigurationDelegate(configSource, resourceLoader, environment); RepositoryConfigurationUtils.exposeRegistration(extension, registry, configSource); - for (var definition : delegate.registerRepositoriesIn(registry, extension)) { + for (BeanComponentDefinition definition : delegate.registerRepositoriesIn(registry, extension)) { readerContext.fireComponentRegistered(definition); } @@ -93,7 +97,7 @@ public class RepositoryBeanDefinitionParser implements BeanDefinitionParser { */ protected static boolean hasBean(Class type, BeanDefinitionRegistry registry) { - var name = String.format("%s%s0", type.getName(), GENERATED_BEAN_NAME_SEPARATOR); + String name = String.format("%s%s0", type.getName(), GENERATED_BEAN_NAME_SEPARATOR); return registry.containsBeanDefinition(name); } } diff --git a/src/main/java/org/springframework/data/repository/config/RepositoryBeanDefinitionRegistrarSupport.java b/src/main/java/org/springframework/data/repository/config/RepositoryBeanDefinitionRegistrarSupport.java index d587d8f82..bc72b9a87 100644 --- a/src/main/java/org/springframework/data/repository/config/RepositoryBeanDefinitionRegistrarSupport.java +++ b/src/main/java/org/springframework/data/repository/config/RepositoryBeanDefinitionRegistrarSupport.java @@ -82,13 +82,13 @@ public abstract class RepositoryBeanDefinitionRegistrarSupport return; } - var configurationSource = new AnnotationRepositoryConfigurationSource(metadata, + AnnotationRepositoryConfigurationSource configurationSource = new AnnotationRepositoryConfigurationSource(metadata, getAnnotation(), resourceLoader, environment, registry, generator); - var extension = getExtension(); + RepositoryConfigurationExtension extension = getExtension(); RepositoryConfigurationUtils.exposeRegistration(extension, registry, configurationSource); - var delegate = new RepositoryConfigurationDelegate(configurationSource, resourceLoader, + RepositoryConfigurationDelegate delegate = new RepositoryConfigurationDelegate(configurationSource, resourceLoader, environment); delegate.registerRepositoriesIn(registry, extension); diff --git a/src/main/java/org/springframework/data/repository/config/RepositoryBeanNameGenerator.java b/src/main/java/org/springframework/data/repository/config/RepositoryBeanNameGenerator.java index 779de6e48..94c8e0911 100644 --- a/src/main/java/org/springframework/data/repository/config/RepositoryBeanNameGenerator.java +++ b/src/main/java/org/springframework/data/repository/config/RepositoryBeanNameGenerator.java @@ -18,6 +18,7 @@ package org.springframework.data.repository.config; import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition; import org.springframework.beans.factory.annotation.AnnotatedGenericBeanDefinition; import org.springframework.beans.factory.config.BeanDefinition; +import org.springframework.beans.factory.config.ConstructorArgumentValues; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.BeanNameGenerator; import org.springframework.context.annotation.AnnotationBeanNameGenerator; @@ -68,7 +69,7 @@ class RepositoryBeanNameGenerator { */ public String generateBeanName(BeanDefinition definition) { - var beanDefinition = definition instanceof AnnotatedBeanDefinition // + AnnotatedBeanDefinition beanDefinition = definition instanceof AnnotatedBeanDefinition // ? (AnnotatedBeanDefinition) definition // : new AnnotatedGenericBeanDefinition(getRepositoryInterfaceFrom(definition)); @@ -85,14 +86,15 @@ class RepositoryBeanNameGenerator { */ private Class getRepositoryInterfaceFrom(BeanDefinition beanDefinition) { - var argumentValue = beanDefinition.getConstructorArgumentValues().getArgumentValue(0, Class.class); + ConstructorArgumentValues.ValueHolder argumentValue = beanDefinition.getConstructorArgumentValues() + .getArgumentValue(0, Class.class); if (argumentValue == null) { throw new IllegalStateException( String.format("Failed to obtain first constructor parameter value of BeanDefinition %s!", beanDefinition)); } - var value = argumentValue.getValue(); + Object value = argumentValue.getValue(); if (value == null) { diff --git a/src/main/java/org/springframework/data/repository/config/RepositoryComponentProvider.java b/src/main/java/org/springframework/data/repository/config/RepositoryComponentProvider.java index 53ee140f1..193aacde8 100644 --- a/src/main/java/org/springframework/data/repository/config/RepositoryComponentProvider.java +++ b/src/main/java/org/springframework/data/repository/config/RepositoryComponentProvider.java @@ -103,9 +103,9 @@ class RepositoryComponentProvider extends ClassPathScanningCandidateComponentPro @Override protected boolean isCandidateComponent(AnnotatedBeanDefinition beanDefinition) { - var isNonRepositoryInterface = !ClassUtils.isGenericRepositoryInterface(beanDefinition.getBeanClassName()); - var isTopLevelType = !beanDefinition.getMetadata().hasEnclosingClass(); - var isConsiderNestedRepositories = isConsiderNestedRepositoryInterfaces(); + boolean isNonRepositoryInterface = !ClassUtils.isGenericRepositoryInterface(beanDefinition.getBeanClassName()); + boolean isTopLevelType = !beanDefinition.getMetadata().hasEnclosingClass(); + boolean isConsiderNestedRepositories = isConsiderNestedRepositoryInterfaces(); return isNonRepositoryInterface && (isTopLevelType || isConsiderNestedRepositories); } @@ -116,9 +116,9 @@ class RepositoryComponentProvider extends ClassPathScanningCandidateComponentPro @Override public Set findCandidateComponents(String basePackage) { - var candidates = super.findCandidateComponents(basePackage); + Set candidates = super.findCandidateComponents(basePackage); - for (var candidate : candidates) { + for (BeanDefinition candidate : candidates) { if (candidate instanceof AnnotatedBeanDefinition) { AnnotationConfigUtils.processCommonDefinitionAnnotations((AnnotatedBeanDefinition) candidate); } @@ -198,7 +198,7 @@ class RepositoryComponentProvider extends ClassPathScanningCandidateComponentPro public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory) throws IOException { - for (var filter : delegates) { + for (TypeFilter filter : delegates) { if (!filter.match(metadataReader, metadataReaderFactory)) { return false; } diff --git a/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationDelegate.java b/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationDelegate.java index d9deef59a..02e570e2f 100644 --- a/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationDelegate.java +++ b/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationDelegate.java @@ -17,6 +17,7 @@ package org.springframework.data.repository.config; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -28,7 +29,9 @@ import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.beans.factory.config.DependencyDescriptor; import org.springframework.beans.factory.parsing.BeanComponentDefinition; +import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.beans.factory.support.AutowireCandidateResolver; +import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.context.annotation.ContextAnnotationAutowireCandidateResolver; @@ -40,6 +43,7 @@ import org.springframework.core.io.ResourceLoader; import org.springframework.core.io.support.SpringFactoriesLoader; import org.springframework.core.log.LogMessage; import org.springframework.core.metrics.ApplicationStartup; +import org.springframework.core.metrics.StartupStep; import org.springframework.data.repository.core.support.RepositoryFactorySupport; import org.springframework.lang.Nullable; import org.springframework.util.Assert; @@ -84,7 +88,7 @@ public class RepositoryConfigurationDelegate { ResourceLoader resourceLoader, Environment environment) { this.isXml = configurationSource instanceof XmlRepositoryConfigurationSource; - var isAnnotation = configurationSource instanceof AnnotationRepositoryConfigurationSource; + boolean isAnnotation = configurationSource instanceof AnnotationRepositoryConfigurationSource; Assert.isTrue(isXml || isAnnotation, "Configuration source must either be an Xml- or an AnnotationBasedConfigurationSource!"); @@ -132,11 +136,11 @@ public class RepositoryConfigurationDelegate { extension.registerBeansForRoot(registry, configurationSource); - var builder = new RepositoryBeanDefinitionBuilder(registry, extension, + RepositoryBeanDefinitionBuilder builder = new RepositoryBeanDefinitionBuilder(registry, extension, configurationSource, resourceLoader, environment); List definitions = new ArrayList<>(); - var watch = new StopWatch(); + StopWatch watch = new StopWatch(); if (logger.isDebugEnabled()) { logger.debug(LogMessage.format("Scanning for %s repositories in packages %s.", // @@ -144,15 +148,15 @@ public class RepositoryConfigurationDelegate { configurationSource.getBasePackages().stream().collect(Collectors.joining(", ")))); } - var startup = getStartup(registry); - var repoScan = startup.start("spring.data.repository.scanning"); + ApplicationStartup startup = getStartup(registry); + StartupStep repoScan = startup.start("spring.data.repository.scanning"); repoScan.tag("dataModule", extension.getModuleName()); repoScan.tag("basePackages", () -> configurationSource.getBasePackages().stream().collect(Collectors.joining(", "))); watch.start(); - var configurations = extension + Collection> configurations = extension .getRepositoryConfigurations(configurationSource, resourceLoader, inMultiStoreMode); Map> configurationsByRepositoryName = new HashMap<>(configurations.size()); @@ -161,7 +165,7 @@ public class RepositoryConfigurationDelegate { configurationsByRepositoryName.put(configuration.getRepositoryInterface(), configuration); - var definitionBuilder = builder.build(configuration); + BeanDefinitionBuilder definitionBuilder = builder.build(configuration); extension.postProcess(definitionBuilder, configurationSource); @@ -171,10 +175,10 @@ public class RepositoryConfigurationDelegate { extension.postProcess(definitionBuilder, (AnnotationRepositoryConfigurationSource) configurationSource); } - var beanDefinition = definitionBuilder.getBeanDefinition(); + AbstractBeanDefinition beanDefinition = definitionBuilder.getBeanDefinition(); beanDefinition.setResourceDescription(configuration.getResourceDescription()); - var beanName = configurationSource.generateBeanName(beanDefinition); + String beanName = configurationSource.generateBeanName(beanDefinition); if (logger.isTraceEnabled()) { logger.trace(LogMessage.format(REPOSITORY_REGISTRATION, extension.getModuleName(), beanName, configuration.getRepositoryInterface(), @@ -217,8 +221,8 @@ public class RepositoryConfigurationDelegate { return; } - var beanFactory = DefaultListableBeanFactory.class.cast(registry); - var resolver = beanFactory.getAutowireCandidateResolver(); + DefaultListableBeanFactory beanFactory = DefaultListableBeanFactory.class.cast(registry); + AutowireCandidateResolver resolver = beanFactory.getAutowireCandidateResolver(); if (!Arrays.asList(ContextAnnotationAutowireCandidateResolver.class, LazyRepositoryInjectionPointResolver.class) .contains(resolver.getClass())) { @@ -252,7 +256,7 @@ public class RepositoryConfigurationDelegate { */ private boolean multipleStoresDetected() { - var multipleModulesFound = SpringFactoriesLoader + boolean multipleModulesFound = SpringFactoriesLoader .loadFactoryNames(RepositoryFactorySupport.class, resourceLoader.getClassLoader()).size() > 1; if (multipleModulesFound) { @@ -311,15 +315,15 @@ public class RepositoryConfigurationDelegate { @Override protected boolean isLazy(DependencyDescriptor descriptor) { - var type = descriptor.getDependencyType(); + Class type = descriptor.getDependencyType(); - var configuration = configurations.get(type.getName()); + RepositoryConfiguration configuration = configurations.get(type.getName()); if (configuration == null) { return super.isLazy(descriptor); } - var lazyInit = configuration.isLazyInit(); + boolean lazyInit = configuration.isLazyInit(); if (lazyInit) { logger.debug(LogMessage.format("Creating lazy injection proxy for %s…", configuration.getRepositoryInterface())); diff --git a/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationExtensionSupport.java b/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationExtensionSupport.java index 1ec1e52ae..7f4293290 100644 --- a/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationExtensionSupport.java +++ b/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationExtensionSupport.java @@ -77,10 +77,10 @@ public abstract class RepositoryConfigurationExtensionSupport implements Reposit Set> result = new HashSet<>(); - for (var candidate : configSource.getCandidates(loader)) { + for (BeanDefinition candidate : configSource.getCandidates(loader)) { - var configuration = getRepositoryConfiguration(candidate, configSource); - var repositoryInterface = loadRepositoryInterface(configuration, + RepositoryConfiguration configuration = getRepositoryConfiguration(candidate, configSource); + Class repositoryInterface = loadRepositoryInterface(configuration, getConfigurationInspectionClassLoader(loader)); if (repositoryInterface == null) { @@ -88,9 +88,9 @@ public abstract class RepositoryConfigurationExtensionSupport implements Reposit continue; } - var metadata = AbstractRepositoryMetadata.getMetadata(repositoryInterface); + RepositoryMetadata metadata = AbstractRepositoryMetadata.getMetadata(repositoryInterface); - var qualifiedForImplementation = !strictMatchesOnly || configSource.usesExplicitFilters() + boolean qualifiedForImplementation = !strictMatchesOnly || configSource.usesExplicitFilters() || isStrictRepositoryCandidate(metadata); if (qualifiedForImplementation && useRepositoryConfiguration(metadata)) { @@ -172,7 +172,7 @@ public abstract class RepositoryConfigurationExtensionSupport implements Reposit bean.setSource(source); - var beanName = generateBeanName(bean, registry); + String beanName = generateBeanName(bean, registry); registry.registerBeanDefinition(beanName, bean); return beanName; @@ -195,7 +195,7 @@ public abstract class RepositoryConfigurationExtensionSupport implements Reposit return; } - var bean = supplier.get(); + AbstractBeanDefinition bean = supplier.get(); bean.setSource(source); registry.registerBeanDefinition(beanName, bean); @@ -218,7 +218,7 @@ public abstract class RepositoryConfigurationExtensionSupport implements Reposit return; } - var definition = supplier.get(); + AbstractBeanDefinition definition = supplier.get(); definition.setSource(source); definition.setLazyInit(true); @@ -235,7 +235,7 @@ public abstract class RepositoryConfigurationExtensionSupport implements Reposit */ public static boolean hasBean(Class type, BeanDefinitionRegistry registry) { - var name = String.format("%s%s0", type.getName(), GENERATED_BEAN_NAME_SEPARATOR); + String name = String.format("%s%s0", type.getName(), GENERATED_BEAN_NAME_SEPARATOR); return registry.containsBeanDefinition(name); } @@ -270,9 +270,9 @@ public abstract class RepositoryConfigurationExtensionSupport implements Reposit return false; } - var types = getIdentifyingTypes(); - var annotations = getIdentifyingAnnotations(); - var moduleName = getModuleName(); + Collection> types = getIdentifyingTypes(); + Collection> annotations = getIdentifyingAnnotations(); + String moduleName = getModuleName(); if (types.isEmpty() && annotations.isEmpty()) { if (!noMultiStoreSupport) { @@ -282,23 +282,23 @@ public abstract class RepositoryConfigurationExtensionSupport implements Reposit } } - var repositoryInterface = metadata.getRepositoryInterface(); + Class repositoryInterface = metadata.getRepositoryInterface(); - for (var type : types) { + for (Class type : types) { if (type.isAssignableFrom(repositoryInterface)) { return true; } } - var domainType = metadata.getDomainType(); + Class domainType = metadata.getDomainType(); - for (var annotationType : annotations) { + for (Class annotationType : annotations) { if (AnnotationUtils.findAnnotation(domainType, annotationType) != null) { return true; } } - var message = String.format(MULTI_STORE_DROPPED, moduleName, repositoryInterface, moduleName); + String message = String.format(MULTI_STORE_DROPPED, moduleName, repositoryInterface, moduleName); if (!annotations.isEmpty()) { message = message.concat(" consider annotating your entities with one of these annotations: ") // @@ -352,7 +352,7 @@ public abstract class RepositoryConfigurationExtensionSupport implements Reposit private Class loadRepositoryInterface(RepositoryConfiguration configuration, @Nullable ClassLoader classLoader) { - var repositoryInterface = configuration.getRepositoryInterface(); + String repositoryInterface = configuration.getRepositoryInterface(); try { return org.springframework.util.ClassUtils.forName(repositoryInterface, classLoader); diff --git a/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationSourceSupport.java b/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationSourceSupport.java index 62714f8ed..b10bf1ddd 100644 --- a/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationSourceSupport.java +++ b/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationSourceSupport.java @@ -65,7 +65,7 @@ public abstract class RepositoryConfigurationSourceSupport implements Repository @Override public Streamable getCandidates(ResourceLoader loader) { - var scanner = new RepositoryComponentProvider(getIncludeFilters(), registry); + RepositoryComponentProvider scanner = new RepositoryComponentProvider(getIncludeFilters(), registry); scanner.setConsiderNestedRepositoryInterfaces(shouldConsiderNestedRepositories()); scanner.setEnvironment(environment); scanner.setResourceLoader(loader); diff --git a/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationUtils.java b/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationUtils.java index 78fedea92..36b14fc89 100644 --- a/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationUtils.java +++ b/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationUtils.java @@ -47,15 +47,15 @@ public interface RepositoryConfigurationUtils { Assert.notNull(registry, "BeanDefinitionRegistry must not be null!"); Assert.notNull(configurationSource, "RepositoryConfigurationSource must not be null!"); - var extensionType = extension.getClass(); - var beanName = extensionType.getName().concat(GENERATED_BEAN_NAME_SEPARATOR).concat("0"); + Class extensionType = extension.getClass(); + String beanName = extensionType.getName().concat(GENERATED_BEAN_NAME_SEPARATOR).concat("0"); if (registry.containsBeanDefinition(beanName)) { return; } // Register extension as bean to indicate repository parsing and registration has happened - var definition = new RootBeanDefinition(extensionType); + RootBeanDefinition definition = new RootBeanDefinition(extensionType); definition.setSource(configurationSource.getSource()); definition.setRole(AbstractBeanDefinition.ROLE_INFRASTRUCTURE); definition.setLazyInit(true); diff --git a/src/main/java/org/springframework/data/repository/config/RepositoryFragmentConfiguration.java b/src/main/java/org/springframework/data/repository/config/RepositoryFragmentConfiguration.java index dddbe680d..ddd575474 100644 --- a/src/main/java/org/springframework/data/repository/config/RepositoryFragmentConfiguration.java +++ b/src/main/java/org/springframework/data/repository/config/RepositoryFragmentConfiguration.java @@ -128,7 +128,7 @@ public final class RepositoryFragmentConfiguration { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(interfaceName); + int result = ObjectUtils.nullSafeHashCode(interfaceName); result = 31 * result + ObjectUtils.nullSafeHashCode(className); result = 31 * result + ObjectUtils.nullSafeHashCode(beanDefinition); return result; diff --git a/src/main/java/org/springframework/data/repository/config/ResourceReaderRepositoryPopulatorBeanDefinitionParser.java b/src/main/java/org/springframework/data/repository/config/ResourceReaderRepositoryPopulatorBeanDefinitionParser.java index be7149168..c06ab634a 100644 --- a/src/main/java/org/springframework/data/repository/config/ResourceReaderRepositoryPopulatorBeanDefinitionParser.java +++ b/src/main/java/org/springframework/data/repository/config/ResourceReaderRepositoryPopulatorBeanDefinitionParser.java @@ -38,7 +38,7 @@ public class ResourceReaderRepositoryPopulatorBeanDefinitionParser extends Abstr @Override protected String getBeanClassName(Element element) { - var name = element.getLocalName(); + String name = element.getLocalName(); if ("unmarshaller-populator".equals(name)) { return UnmarshallerRepositoryPopulatorFactoryBean.class.getName(); @@ -52,7 +52,7 @@ public class ResourceReaderRepositoryPopulatorBeanDefinitionParser extends Abstr @Override protected void doParse(Element element, BeanDefinitionBuilder builder) { - var localName = element.getLocalName(); + String localName = element.getLocalName(); builder.addPropertyValue("resources", element.getAttribute("locations")); @@ -71,7 +71,7 @@ public class ResourceReaderRepositoryPopulatorBeanDefinitionParser extends Abstr */ private static void parseJsonPopulator(Element element, BeanDefinitionBuilder builder) { - var objectMapperRef = element.getAttribute("object-mapper-ref"); + String objectMapperRef = element.getAttribute("object-mapper-ref"); if (StringUtils.hasText(objectMapperRef)) { builder.addPropertyReference("mapper", objectMapperRef); @@ -86,7 +86,7 @@ public class ResourceReaderRepositoryPopulatorBeanDefinitionParser extends Abstr */ private static void parseXmlPopulator(Element element, BeanDefinitionBuilder builder) { - var unmarshallerRefName = element.getAttribute("unmarshaller-ref"); + String unmarshallerRefName = element.getAttribute("unmarshaller-ref"); if (StringUtils.hasText(unmarshallerRefName)) { builder.addPropertyReference("unmarshaller", unmarshallerRefName); diff --git a/src/main/java/org/springframework/data/repository/config/SelectionSet.java b/src/main/java/org/springframework/data/repository/config/SelectionSet.java index f4784b23d..f28bc8f9b 100644 --- a/src/main/java/org/springframework/data/repository/config/SelectionSet.java +++ b/src/main/java/org/springframework/data/repository/config/SelectionSet.java @@ -60,7 +60,7 @@ class SelectionSet { */ Optional uniqueResult() { - var uniqueResult = findUniqueResult(); + Optional uniqueResult = findUniqueResult(); return uniqueResult.isPresent() ? uniqueResult : fallback.apply(collection); } diff --git a/src/main/java/org/springframework/data/repository/config/XmlRepositoryConfigurationSource.java b/src/main/java/org/springframework/data/repository/config/XmlRepositoryConfigurationSource.java index 70eaeac55..59df933c9 100644 --- a/src/main/java/org/springframework/data/repository/config/XmlRepositoryConfigurationSource.java +++ b/src/main/java/org/springframework/data/repository/config/XmlRepositoryConfigurationSource.java @@ -80,7 +80,7 @@ public class XmlRepositoryConfigurationSource extends RepositoryConfigurationSou this.element = element; this.context = context; - var parser = new TypeFilterParser(context.getReaderContext()); + TypeFilterParser parser = new TypeFilterParser(context.getReaderContext()); this.includeFilters = parser.parseTypeFilters(element, Type.INCLUDE); this.excludeFilters = parser.parseTypeFilters(element, Type.EXCLUDE); } @@ -92,7 +92,7 @@ public class XmlRepositoryConfigurationSource extends RepositoryConfigurationSou public Streamable getBasePackages() { - var attribute = element.getAttribute(BASE_PACKAGE); + String attribute = element.getAttribute(BASE_PACKAGE); return Streamable.of(StringUtils.delimitedListToStringArray(attribute, ",", " ")); } @@ -144,7 +144,7 @@ public class XmlRepositoryConfigurationSource extends RepositoryConfigurationSou private Optional getNullDefaultedAttribute(Element element, String attributeName) { - var attribute = element.getAttribute(attributeName); + String attribute = element.getAttribute(attributeName); return StringUtils.hasText(attribute) ? Optional.of(attribute) : Optional.empty(); } @@ -156,8 +156,8 @@ public class XmlRepositoryConfigurationSource extends RepositoryConfigurationSou @Override public Optional getAttribute(String name) { - var xmlAttributeName = ParsingUtils.reconcatenateCamelCase(name, "-"); - var attribute = element.getAttribute(xmlAttributeName); + String xmlAttributeName = ParsingUtils.reconcatenateCamelCase(name, "-"); + String attribute = element.getAttribute(xmlAttributeName); return StringUtils.hasText(attribute) ? Optional.of(attribute) : Optional.empty(); } @@ -179,7 +179,7 @@ public class XmlRepositoryConfigurationSource extends RepositoryConfigurationSou @Override public BootstrapMode getBootstrapMode() { - var attribute = element.getAttribute(BOOTSTRAP_MODE); + String attribute = element.getAttribute(BOOTSTRAP_MODE); return StringUtils.hasText(attribute) // ? BootstrapMode.valueOf(attribute.toUpperCase(Locale.US)) // @@ -190,7 +190,7 @@ public class XmlRepositoryConfigurationSource extends RepositoryConfigurationSou @NonNull public String getResourceDescription() { - var source = getSource(); + Object source = getSource(); return source == null ? "" : source.toString(); } diff --git a/src/main/java/org/springframework/data/repository/core/EntityInformation.java b/src/main/java/org/springframework/data/repository/core/EntityInformation.java index e1ccdd229..7edc68ddc 100644 --- a/src/main/java/org/springframework/data/repository/core/EntityInformation.java +++ b/src/main/java/org/springframework/data/repository/core/EntityInformation.java @@ -56,7 +56,7 @@ public interface EntityInformation extends EntityMetadata { Assert.notNull(entity, "Entity must not be null!"); - var id = getId(entity); + ID id = getId(entity); if (id != null) { return id; diff --git a/src/main/java/org/springframework/data/repository/core/support/AbstractEntityInformation.java b/src/main/java/org/springframework/data/repository/core/support/AbstractEntityInformation.java index 9e72e4e89..aafd60bfd 100644 --- a/src/main/java/org/springframework/data/repository/core/support/AbstractEntityInformation.java +++ b/src/main/java/org/springframework/data/repository/core/support/AbstractEntityInformation.java @@ -40,8 +40,8 @@ public abstract class AbstractEntityInformation implements EntityInformat public boolean isNew(T entity) { - var id = getId(entity); - var idType = getIdType(); + ID id = getId(entity); + Class idType = getIdType(); if (!idType.isPrimitive()) { return id == null; diff --git a/src/main/java/org/springframework/data/repository/core/support/AbstractRepositoryMetadata.java b/src/main/java/org/springframework/data/repository/core/support/AbstractRepositoryMetadata.java index 4345ece27..efe02f745 100644 --- a/src/main/java/org/springframework/data/repository/core/support/AbstractRepositoryMetadata.java +++ b/src/main/java/org/springframework/data/repository/core/support/AbstractRepositoryMetadata.java @@ -18,6 +18,7 @@ package org.springframework.data.repository.core.support; import java.lang.reflect.Method; import java.util.Arrays; import java.util.Collections; +import java.util.List; import java.util.Set; import org.springframework.core.KotlinDetector; @@ -85,7 +86,7 @@ public abstract class AbstractRepositoryMetadata implements RepositoryMetadata { if (KotlinDetector.isKotlinType(method.getDeclaringClass()) && KotlinReflectionUtils.isSuspend(method)) { // the last parameter is Continuation or Continuation> - var types = typeInformation.getParameterTypes(method); + List> types = typeInformation.getParameterTypes(method); returnType = types.get(types.size() - 1).getComponentType(); } @@ -98,7 +99,7 @@ public abstract class AbstractRepositoryMetadata implements RepositoryMetadata { public Class getReturnedDomainClass(Method method) { - var returnType = getReturnType(method); + TypeInformation returnType = getReturnType(method); return QueryExecutionConverters.unwrapWrapperTypes(ReactiveWrapperConverters.unwrapWrapperTypes(returnType)) .getType(); diff --git a/src/main/java/org/springframework/data/repository/core/support/AnnotationRepositoryMetadata.java b/src/main/java/org/springframework/data/repository/core/support/AnnotationRepositoryMetadata.java index eddf345e4..7732e7cbb 100644 --- a/src/main/java/org/springframework/data/repository/core/support/AnnotationRepositoryMetadata.java +++ b/src/main/java/org/springframework/data/repository/core/support/AnnotationRepositoryMetadata.java @@ -65,7 +65,7 @@ public class AnnotationRepositoryMetadata extends AbstractRepositoryMetadata { private Class resolveIdType(Class repositoryInterface) { - var annotation = AnnotationUtils.findAnnotation(repositoryInterface, RepositoryDefinition.class); + RepositoryDefinition annotation = AnnotationUtils.findAnnotation(repositoryInterface, RepositoryDefinition.class); if (annotation == null || annotation.idClass() == null) { throw new IllegalArgumentException(String.format("Could not resolve id type of %s!", repositoryInterface)); @@ -76,7 +76,7 @@ public class AnnotationRepositoryMetadata extends AbstractRepositoryMetadata { private Class resolveDomainType(Class repositoryInterface) { - var annotation = AnnotationUtils.findAnnotation(repositoryInterface, RepositoryDefinition.class); + RepositoryDefinition annotation = AnnotationUtils.findAnnotation(repositoryInterface, RepositoryDefinition.class); if (annotation == null || annotation.domainClass() == null) { throw new IllegalArgumentException(String.format("Could not resolve domain type of %s!", repositoryInterface)); diff --git a/src/main/java/org/springframework/data/repository/core/support/DefaultCrudMethods.java b/src/main/java/org/springframework/data/repository/core/support/DefaultCrudMethods.java index a8415a9ef..4ffecb55c 100644 --- a/src/main/java/org/springframework/data/repository/core/support/DefaultCrudMethods.java +++ b/src/main/java/org/springframework/data/repository/core/support/DefaultCrudMethods.java @@ -112,7 +112,7 @@ public class DefaultCrudMethods implements CrudMethods { Pair.of(DELETE_BY_ID, Object.class), // Pair.of(DELETE, Iterable.class)); - var repositoryInterface = metadata.getRepositoryInterface(); + Class repositoryInterface = metadata.getRepositoryInterface(); return source// .flatMap(it -> toStream(findMethod(repositoryInterface, it.getFirst(), it.getSecond())))// @@ -133,14 +133,16 @@ public class DefaultCrudMethods implements CrudMethods { */ private static Optional selectMostSuitableFindAllMethod(RepositoryMetadata metadata) { - var repositoryInterface = metadata.getRepositoryInterface(); + Class repositoryInterface = metadata.getRepositoryInterface(); - var withPageableOrSort = (Supplier>) () -> Stream.of(Pageable.class, Sort.class)// + Supplier> withPageableOrSort = (Supplier>) () -> Stream + .of(Pageable.class, Sort.class)// .flatMap(it -> toStream(findMethod(repositoryInterface, FIND_ALL, it)))// .flatMap(it -> toStream(getMostSpecificMethod(it, repositoryInterface)))// .findFirst(); - var withoutParameter = (Supplier>) () -> findMethod(repositoryInterface, FIND_ALL)// + Supplier> withoutParameter = (Supplier>) () -> findMethod(repositoryInterface, + FIND_ALL)// .flatMap(it -> getMostSpecificMethod(it, repositoryInterface)); return firstNonEmpty(withPageableOrSort, withoutParameter); diff --git a/src/main/java/org/springframework/data/repository/core/support/DefaultRepositoryInformation.java b/src/main/java/org/springframework/data/repository/core/support/DefaultRepositoryInformation.java index d5499c4ba..270cbd8ec 100644 --- a/src/main/java/org/springframework/data/repository/core/support/DefaultRepositoryInformation.java +++ b/src/main/java/org/springframework/data/repository/core/support/DefaultRepositoryInformation.java @@ -97,7 +97,7 @@ class DefaultRepositoryInformation implements RepositoryInformation { return methodCache.get(method); } - var result = composition.findMethod(method).orElse(method); + Method result = composition.findMethod(method).orElse(method); if (!result.equals(method)) { return cacheAndReturn(method, result); @@ -121,7 +121,7 @@ class DefaultRepositoryInformation implements RepositoryInformation { Set result = new HashSet<>(); - for (var method : getRepositoryInterface().getMethods()) { + for (Method method : getRepositoryInterface().getMethods()) { method = ClassUtils.getMostSpecificMethod(method, getRepositoryInterface()); if (isQueryMethodCandidate(method)) { result.add(method); @@ -175,14 +175,14 @@ class DefaultRepositoryInformation implements RepositoryInformation { @Override public boolean hasCustomMethod() { - var repositoryInterface = getRepositoryInterface(); + Class repositoryInterface = getRepositoryInterface(); // No detection required if no typing interface was configured if (isGenericRepositoryInterface(repositoryInterface)) { return false; } - for (var method : repositoryInterface.getMethods()) { + for (Method method : repositoryInterface.getMethods()) { if (isCustomMethod(method) && !isBaseClassMethod(method)) { return true; } diff --git a/src/main/java/org/springframework/data/repository/core/support/DefaultRepositoryMetadata.java b/src/main/java/org/springframework/data/repository/core/support/DefaultRepositoryMetadata.java index 082c1502b..dd28d4d1f 100644 --- a/src/main/java/org/springframework/data/repository/core/support/DefaultRepositoryMetadata.java +++ b/src/main/java/org/springframework/data/repository/core/support/DefaultRepositoryMetadata.java @@ -49,7 +49,7 @@ public class DefaultRepositoryMetadata extends AbstractRepositoryMetadata { super(repositoryInterface); Assert.isTrue(Repository.class.isAssignableFrom(repositoryInterface), MUST_BE_A_REPOSITORY); - var arguments = ClassTypeInformation.from(repositoryInterface) // + List> arguments = ClassTypeInformation.from(repositoryInterface) // .getRequiredSuperTypeInformation(Repository.class)// .getTypeArguments(); diff --git a/src/main/java/org/springframework/data/repository/core/support/EventPublishingRepositoryProxyPostProcessor.java b/src/main/java/org/springframework/data/repository/core/support/EventPublishingRepositoryProxyPostProcessor.java index 83bbb914f..762eed1d8 100644 --- a/src/main/java/org/springframework/data/repository/core/support/EventPublishingRepositoryProxyPostProcessor.java +++ b/src/main/java/org/springframework/data/repository/core/support/EventPublishingRepositoryProxyPostProcessor.java @@ -61,7 +61,7 @@ public class EventPublishingRepositoryProxyPostProcessor implements RepositoryPr @Override public void postProcess(ProxyFactory factory, RepositoryInformation repositoryInformation) { - var method = EventPublishingMethod.of(repositoryInformation.getDomainType()); + EventPublishingMethod method = EventPublishingMethod.of(repositoryInformation.getDomainType()); if (method == null) { return; @@ -97,13 +97,13 @@ public class EventPublishingRepositoryProxyPostProcessor implements RepositoryPr @Nullable public Object invoke(MethodInvocation invocation) throws Throwable { - var result = invocation.proceed(); + Object result = invocation.proceed(); if (!isEventPublishingMethod(invocation.getMethod())) { return result; } - var arguments = invocation.getArguments(); + Object[] arguments = invocation.getArguments(); eventMethod.publishEventsFrom(arguments[0], publisher); @@ -160,13 +160,13 @@ public class EventPublishingRepositoryProxyPostProcessor implements RepositoryPr Assert.notNull(type, "Type must not be null!"); - var eventPublishingMethod = cache.get(type); + EventPublishingMethod eventPublishingMethod = cache.get(type); if (eventPublishingMethod != null) { return eventPublishingMethod.orNull(); } - var result = from(type, getDetector(type, DomainEvents.class), + EventPublishingMethod result = from(type, getDetector(type, DomainEvents.class), () -> getDetector(type, AfterDomainEventPublication.class)); cache.put(type, result); @@ -186,13 +186,13 @@ public class EventPublishingRepositoryProxyPostProcessor implements RepositoryPr return; } - for (var aggregateRoot : asCollection(object)) { + for (Object aggregateRoot : asCollection(object)) { if (!type.isInstance(aggregateRoot)) { continue; } - for (var event : asCollection(ReflectionUtils.invokeMethod(publishingMethod, aggregateRoot))) { + for (Object event : asCollection(ReflectionUtils.invokeMethod(publishingMethod, aggregateRoot))) { publisher.publishEvent(event); } @@ -215,7 +215,7 @@ public class EventPublishingRepositoryProxyPostProcessor implements RepositoryPr private static AnnotationDetectionMethodCallback getDetector(Class type, Class annotation) { - var callback = new AnnotationDetectionMethodCallback(annotation); + AnnotationDetectionMethodCallback callback = new AnnotationDetectionMethodCallback(annotation); ReflectionUtils.doWithMethods(type, callback); return callback; @@ -236,7 +236,7 @@ public class EventPublishingRepositoryProxyPostProcessor implements RepositoryPr return EventPublishingMethod.NONE; } - var eventMethod = publishing.getRequiredMethod(); + Method eventMethod = publishing.getRequiredMethod(); ReflectionUtils.makeAccessible(eventMethod); return new EventPublishingMethod(type, eventMethod, getClearingMethod(clearing.get())); @@ -255,7 +255,7 @@ public class EventPublishingRepositoryProxyPostProcessor implements RepositoryPr return null; } - var method = clearing.getRequiredMethod(); + Method method = clearing.getRequiredMethod(); ReflectionUtils.makeAccessible(method); return method; diff --git a/src/main/java/org/springframework/data/repository/core/support/MethodInvocationValidator.java b/src/main/java/org/springframework/data/repository/core/support/MethodInvocationValidator.java index d57b01df1..1e8f41687 100644 --- a/src/main/java/org/springframework/data/repository/core/support/MethodInvocationValidator.java +++ b/src/main/java/org/springframework/data/repository/core/support/MethodInvocationValidator.java @@ -67,8 +67,8 @@ public class MethodInvocationValidator implements MethodInterceptor { @Override public Object invoke(@SuppressWarnings("null") MethodInvocation invocation) throws Throwable { - var method = invocation.getMethod(); - var nullability = nullabilityCache.get(method); + Method method = invocation.getMethod(); + Nullability nullability = nullabilityCache.get(method); if (nullability == null) { @@ -76,9 +76,9 @@ public class MethodInvocationValidator implements MethodInterceptor { nullabilityCache.put(method, nullability); } - var arguments = invocation.getArguments(); + Object[] arguments = invocation.getArguments(); - for (var i = 0; i < method.getParameterCount(); i++) { + for (int i = 0; i < method.getParameterCount(); i++) { if (nullability.isNullableParameter(i)) { continue; @@ -91,7 +91,7 @@ public class MethodInvocationValidator implements MethodInterceptor { } } - var result = invocation.proceed(); + Object result = invocation.proceed(); if (result == null && !nullability.isNullableReturn()) { throw new EmptyResultDataAccessException("Result must not be null!", 1); @@ -114,13 +114,13 @@ public class MethodInvocationValidator implements MethodInterceptor { static Nullability of(Method method, ParameterNameDiscoverer discoverer) { - var nullableReturn = isNullableParameter(new MethodParameter(method, -1)); - var nullableParameters = new boolean[method.getParameterCount()]; - var methodParameters = new MethodParameter[method.getParameterCount()]; + boolean nullableReturn = isNullableParameter(new MethodParameter(method, -1)); + boolean[] nullableParameters = new boolean[method.getParameterCount()]; + MethodParameter[] methodParameters = new MethodParameter[method.getParameterCount()]; - for (var i = 0; i < method.getParameterCount(); i++) { + for (int i = 0; i < method.getParameterCount(); i++) { - var parameter = new MethodParameter(method, i); + MethodParameter parameter = new MethodParameter(method, i); parameter.initParameterNameDiscovery(discoverer); nullableParameters[i] = isNullableParameter(parameter); methodParameters[i] = parameter; @@ -131,7 +131,7 @@ public class MethodInvocationValidator implements MethodInterceptor { String getMethodParameterName(int index) { - var parameterName = methodParameters[index].getParameterName(); + String parameterName = methodParameters[index].getParameterName(); if (parameterName == null) { parameterName = String.format("of type %s at index %d", @@ -192,7 +192,7 @@ public class MethodInvocationValidator implements MethodInterceptor { @Override public int hashCode() { - var result = (nullableReturn ? 1 : 0); + int result = (nullableReturn ? 1 : 0); result = 31 * result + ObjectUtils.nullSafeHashCode(nullableParameters); result = 31 * result + ObjectUtils.nullSafeHashCode(methodParameters); return result; diff --git a/src/main/java/org/springframework/data/repository/core/support/MethodLookups.java b/src/main/java/org/springframework/data/repository/core/support/MethodLookups.java index b8a031aa4..e8c967a92 100644 --- a/src/main/java/org/springframework/data/repository/core/support/MethodLookups.java +++ b/src/main/java/org/springframework/data/repository/core/support/MethodLookups.java @@ -15,6 +15,7 @@ */ package org.springframework.data.repository.core.support; +import java.lang.reflect.GenericDeclaration; import java.lang.reflect.Method; import java.lang.reflect.Type; import java.lang.reflect.TypeVariable; @@ -55,7 +56,7 @@ interface MethodLookups { */ static MethodLookup direct() { - var direct = (MethodPredicate) (invoked, candidate) -> candidate.getName().equals(invoked.getName()) + MethodPredicate direct = (MethodPredicate) (invoked, candidate) -> candidate.getName().equals(invoked.getName()) && candidate.getParameterCount() == invoked.getParameterCount() && Arrays.equals(candidate.getParameterTypes(), invoked.getParameterTypes()); @@ -127,7 +128,7 @@ interface MethodLookups { @Override public List getLookups() { - var detailedComparison = (MethodPredicate) (invoked, candidate) -> Optional.of(candidate) + MethodPredicate detailedComparison = (MethodPredicate) (invoked, candidate) -> Optional.of(candidate) .filter(baseClassMethod -> baseClassMethod.getName().equals(invoked.getName()))// Right name .filter(baseClassMethod -> baseClassMethod.getParameterCount() == invoked.getParameterCount()) .filter(baseClassMethod -> parametersMatch(invoked.getMethod(), baseClassMethod))// All parameters match @@ -147,7 +148,7 @@ interface MethodLookups { */ protected boolean matchesGenericType(TypeVariable variable, ResolvableType parameterType) { - var declaration = variable.getGenericDeclaration(); + GenericDeclaration declaration = variable.getGenericDeclaration(); if (declaration instanceof Class) { @@ -155,13 +156,13 @@ interface MethodLookups { return true; } - var boundType = variable.getBounds()[0]; - var referenceName = boundType instanceof TypeVariable ? boundType.toString() : variable.toString(); + Type boundType = variable.getBounds()[0]; + String referenceName = boundType instanceof TypeVariable ? boundType.toString() : variable.toString(); return DOMAIN_TYPE_NAME.equals(referenceName) && parameterType.isAssignableFrom(entityType); } - for (var type : variable.getBounds()) { + for (Type type : variable.getBounds()) { if (ResolvableType.forType(type).isAssignableFrom(parameterType)) { return true; } @@ -180,16 +181,16 @@ interface MethodLookups { */ private boolean parametersMatch(Method invokedMethod, Method candidate) { - var methodParameterTypes = invokedMethod.getParameterTypes(); - var genericTypes = candidate.getGenericParameterTypes(); - var types = candidate.getParameterTypes(); + Class[] methodParameterTypes = invokedMethod.getParameterTypes(); + Type[] genericTypes = candidate.getGenericParameterTypes(); + Class[] types = candidate.getParameterTypes(); - for (var i = 0; i < genericTypes.length; i++) { + for (int i = 0; i < genericTypes.length; i++) { - var genericType = genericTypes[i]; - var type = types[i]; - var parameter = new MethodParameter(invokedMethod, i).withContainingClass(repositoryInterface); - var parameterType = parameter.getParameterType(); + Type genericType = genericTypes[i]; + Class type = types[i]; + MethodParameter parameter = new MethodParameter(invokedMethod, i).withContainingClass(repositoryInterface); + Class parameterType = parameter.getParameterType(); if (genericType instanceof TypeVariable) { @@ -232,7 +233,7 @@ interface MethodLookups { @Override public List getLookups() { - var convertibleComparison = (MethodPredicate) (invokedMethod, candidate) -> { + MethodPredicate convertibleComparison = (MethodPredicate) (invokedMethod, candidate) -> { List>> suppliers = new ArrayList<>(); @@ -244,7 +245,8 @@ interface MethodLookups { return suppliers.stream().anyMatch(supplier -> supplier.get().isPresent()); }; - var detailedComparison = (MethodPredicate) (invokedMethod, candidate) -> getMethodCandidate(invokedMethod, + MethodPredicate detailedComparison = (MethodPredicate) (invokedMethod, + candidate) -> getMethodCandidate(invokedMethod, candidate, matchParameterOrComponentType(repositoryMetadata.getRepositoryInterface())).isPresent(); @@ -264,9 +266,9 @@ interface MethodLookups { return (parameterCriteria) -> { - var parameterType = parameterCriteria.getDeclared().withContainingClass(repositoryInterface) + Class parameterType = parameterCriteria.getDeclared().withContainingClass(repositoryInterface) .getParameterType(); - var genericType = parameterCriteria.getGenericBaseType(); + Type genericType = parameterCriteria.getGenericBaseType(); if (genericType instanceof TypeVariable) { @@ -450,7 +452,7 @@ interface MethodLookups { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(declared); + int result = ObjectUtils.nullSafeHashCode(declared); result = 31 * result + ObjectUtils.nullSafeHashCode(base); return result; } diff --git a/src/main/java/org/springframework/data/repository/core/support/PropertiesBasedNamedQueries.java b/src/main/java/org/springframework/data/repository/core/support/PropertiesBasedNamedQueries.java index bf7503d26..1c48bb7ba 100644 --- a/src/main/java/org/springframework/data/repository/core/support/PropertiesBasedNamedQueries.java +++ b/src/main/java/org/springframework/data/repository/core/support/PropertiesBasedNamedQueries.java @@ -48,7 +48,7 @@ public class PropertiesBasedNamedQueries implements NamedQueries { Assert.hasText(queryName, "Query name must not be null or empty!"); - var query = properties.getProperty(queryName); + String query = properties.getProperty(queryName); if (query == null) { throw new IllegalArgumentException(String.format(NO_QUERY_FOUND, queryName)); diff --git a/src/main/java/org/springframework/data/repository/core/support/QueryExecutionResultHandler.java b/src/main/java/org/springframework/data/repository/core/support/QueryExecutionResultHandler.java index b07055ee3..6e21910e9 100644 --- a/src/main/java/org/springframework/data/repository/core/support/QueryExecutionResultHandler.java +++ b/src/main/java/org/springframework/data/repository/core/support/QueryExecutionResultHandler.java @@ -72,15 +72,15 @@ class QueryExecutionResultHandler { return result; } - var descriptor = getOrCreateReturnTypeDescriptor(method); + ReturnTypeDescriptor descriptor = getOrCreateReturnTypeDescriptor(method); return postProcessInvocationResult(result, 0, descriptor); } private ReturnTypeDescriptor getOrCreateReturnTypeDescriptor(Method method) { - var descriptorCache = this.descriptorCache; - var descriptor = descriptorCache.get(method); + Map descriptorCache = this.descriptorCache; + ReturnTypeDescriptor descriptor = descriptorCache.get(method); if (descriptor == null) { @@ -116,13 +116,13 @@ class QueryExecutionResultHandler { @Nullable Object postProcessInvocationResult(@Nullable Object result, int nestingLevel, ReturnTypeDescriptor descriptor) { - var returnTypeDescriptor = descriptor.getReturnTypeDescriptor(nestingLevel); + TypeDescriptor returnTypeDescriptor = descriptor.getReturnTypeDescriptor(nestingLevel); if (returnTypeDescriptor == null) { return result; } - var expectedReturnType = returnTypeDescriptor.getType(); + Class expectedReturnType = returnTypeDescriptor.getType(); result = unwrapOptional(result); @@ -138,7 +138,7 @@ class QueryExecutionResultHandler { if (result != null) { - var source = TypeDescriptor.valueOf(result.getClass()); + TypeDescriptor source = TypeDescriptor.valueOf(result.getClass()); if (conversionRequired(source, returnTypeDescriptor)) { return conversionService.convert(result, returnTypeDescriptor); @@ -154,15 +154,15 @@ class QueryExecutionResultHandler { if (result instanceof Collection) { - var elementDescriptor = descriptor.getReturnTypeDescriptor(nestingLevel + 1); - var requiresConversion = requiresConversion((Collection) result, expectedReturnType, elementDescriptor); + TypeDescriptor elementDescriptor = descriptor.getReturnTypeDescriptor(nestingLevel + 1); + boolean requiresConversion = requiresConversion((Collection) result, expectedReturnType, elementDescriptor); if (!requiresConversion) { return result; } } - var resultDescriptor = TypeDescriptor.forObject(result); + TypeDescriptor resultDescriptor = TypeDescriptor.forObject(result); return conversionService.canConvert(resultDescriptor, returnTypeDescriptor) ? conversionService.convert(result, returnTypeDescriptor) : result; @@ -185,7 +185,7 @@ class QueryExecutionResultHandler { return false; } - var type = elementDescriptor.getType(); + Class type = elementDescriptor.getType(); for (Object o : collection) { diff --git a/src/main/java/org/springframework/data/repository/core/support/QueryExecutorMethodInterceptor.java b/src/main/java/org/springframework/data/repository/core/support/QueryExecutorMethodInterceptor.java index 43593b08d..56eb74064 100644 --- a/src/main/java/org/springframework/data/repository/core/support/QueryExecutorMethodInterceptor.java +++ b/src/main/java/org/springframework/data/repository/core/support/QueryExecutorMethodInterceptor.java @@ -112,7 +112,7 @@ class QueryExecutorMethodInterceptor implements MethodInterceptor { for (QueryCreationListener listener : queryPostProcessors) { - var typeArgument = ResolvableType.forClass(QueryCreationListener.class, listener.getClass()) + ResolvableType typeArgument = ResolvableType.forClass(QueryCreationListener.class, listener.getClass()) .getGeneric(0); if (typeArgument != null && typeArgument.isAssignableFrom(ResolvableType.forClass(query.getClass()))) { @@ -125,9 +125,9 @@ class QueryExecutorMethodInterceptor implements MethodInterceptor { @Nullable public Object invoke(@SuppressWarnings("null") MethodInvocation invocation) throws Throwable { - var method = invocation.getMethod(); + Method method = invocation.getMethod(); - var executionAdapter = QueryExecutionConverters // + QueryExecutionConverters.ExecutionAdapter executionAdapter = QueryExecutionConverters // .getExecutionAdapter(method.getReturnType()); if (executionAdapter == null) { @@ -141,11 +141,11 @@ class QueryExecutorMethodInterceptor implements MethodInterceptor { @Nullable private Object doInvoke(MethodInvocation invocation) throws Throwable { - var method = invocation.getMethod(); + Method method = invocation.getMethod(); if (hasQueryFor(method)) { - var invocationMetadata = invocationMetadataCache.get(method); + RepositoryMethodInvoker invocationMetadata = invocationMetadataCache.get(method); if (invocationMetadata == null) { invocationMetadata = RepositoryMethodInvoker.forRepositoryQuery(method, queries.get(method)); diff --git a/src/main/java/org/springframework/data/repository/core/support/RepositoryComposition.java b/src/main/java/org/springframework/data/repository/core/support/RepositoryComposition.java index 83dc1e195..098074eaa 100644 --- a/src/main/java/org/springframework/data/repository/core/support/RepositoryComposition.java +++ b/src/main/java/org/springframework/data/repository/core/support/RepositoryComposition.java @@ -70,15 +70,15 @@ public class RepositoryComposition { if (ReactiveWrappers.isAvailable()) { - var parameterTypes = method.getParameterTypes(); + Class[] parameterTypes = method.getParameterTypes(); - var converted = new Object[args.length]; - for (var i = 0; i < args.length; i++) { + Object[] converted = new Object[args.length]; + for (int i = 0; i < args.length; i++) { - var value = args[i]; - var convertedArg = value; + Object value = args[i]; + Object convertedArg = value; - var parameterType = parameterTypes.length > i ? parameterTypes[i] : null; + Class parameterType = parameterTypes.length > i ? parameterTypes[i] : null; if (value != null && parameterType != null) { if (!parameterType.isAssignableFrom(value.getClass()) @@ -273,7 +273,7 @@ public class RepositoryComposition { */ Object invoke(RepositoryInvocationMulticaster listener, Method method, Object[] args) throws Throwable { - var methodToCall = getMethod(method); + Method methodToCall = getMethod(method); if (methodToCall == null) { throw new IllegalArgumentException(String.format("No fragment found for method %s", method)); @@ -316,7 +316,7 @@ public class RepositoryComposition { fragments.stream().forEach(it -> it.getImplementation() // .orElseThrow(() -> { - var repositoryInterface = metadata != null ? metadata.getRepositoryInterface() : Object.class; + Class repositoryInterface = metadata != null ? metadata.getRepositoryInterface() : Object.class; return new FragmentNotImplementedException(String.format("Fragment %s used in %s has no implementation.", ClassUtils.getQualifiedName(it.getSignatureContributor()), ClassUtils.getQualifiedName(repositoryInterface)), repositoryInterface, it); @@ -496,14 +496,14 @@ public class RepositoryComposition { Object invoke(Class repositoryInterface, RepositoryInvocationMulticaster listener, Method invokedMethod, Method methodToCall, Object[] args) throws Throwable { - var fragment = fragmentCache.computeIfAbsent(methodToCall, this::findImplementationFragment); - var optional = fragment.getImplementation(); + RepositoryFragment fragment = fragmentCache.computeIfAbsent(methodToCall, this::findImplementationFragment); + Optional optional = fragment.getImplementation(); if (!optional.isPresent()) { throw new IllegalArgumentException(String.format("No implementation found for method %s", methodToCall)); } - var repositoryMethodInvoker = invocationMetadataCache.get(invokedMethod); + RepositoryMethodInvoker repositoryMethodInvoker = invocationMetadataCache.get(invokedMethod); if (repositoryMethodInvoker == null) { @@ -527,9 +527,9 @@ public class RepositoryComposition { private static Method findMethod(InvokedMethod invokedMethod, MethodLookup lookup, Supplier> methodStreamSupplier) { - for (var methodPredicate : lookup.getLookups()) { + for (MethodLookup.MethodPredicate methodPredicate : lookup.getLookups()) { - var resolvedMethod = methodStreamSupplier.get() + Optional resolvedMethod = methodStreamSupplier.get() .filter(it -> methodPredicate.test(invokedMethod, it)) // .findFirst(); @@ -580,7 +580,7 @@ public class RepositoryComposition { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(fragmentCache); + int result = ObjectUtils.nullSafeHashCode(fragmentCache); result = 31 * result + ObjectUtils.nullSafeHashCode(invocationMetadataCache); result = 31 * result + ObjectUtils.nullSafeHashCode(fragments); return result; diff --git a/src/main/java/org/springframework/data/repository/core/support/RepositoryFactoryBeanSupport.java b/src/main/java/org/springframework/data/repository/core/support/RepositoryFactoryBeanSupport.java index 0fd3569b5..2515980ac 100644 --- a/src/main/java/org/springframework/data/repository/core/support/RepositoryFactoryBeanSupport.java +++ b/src/main/java/org/springframework/data/repository/core/support/RepositoryFactoryBeanSupport.java @@ -217,7 +217,7 @@ public abstract class RepositoryFactoryBeanSupport, public RepositoryInformation getRepositoryInformation() { - var fragments = customImplementation.map(RepositoryFragments::just)// + RepositoryFragments fragments = customImplementation.map(RepositoryFragments::just)// .orElse(RepositoryFragments.empty()); return factory.getRepositoryInformation(repositoryMetadata, fragments); @@ -265,11 +265,11 @@ public abstract class RepositoryFactoryBeanSupport, this.repositoryFactoryCustomizers.forEach(customizer -> customizer.customize(this.factory)); - var customImplementationFragment = customImplementation // + RepositoryFragments customImplementationFragment = customImplementation // .map(RepositoryFragments::just) // .orElseGet(RepositoryFragments::empty); - var repositoryFragmentsToUse = this.repositoryFragments // + RepositoryFragments repositoryFragmentsToUse = this.repositoryFragments // .orElseGet(RepositoryFragments::empty) // .append(customImplementationFragment); diff --git a/src/main/java/org/springframework/data/repository/core/support/RepositoryFactorySupport.java b/src/main/java/org/springframework/data/repository/core/support/RepositoryFactorySupport.java index 4ca07a9e7..f57481f90 100644 --- a/src/main/java/org/springframework/data/repository/core/support/RepositoryFactorySupport.java +++ b/src/main/java/org/springframework/data/repository/core/support/RepositoryFactorySupport.java @@ -15,6 +15,7 @@ */ package org.springframework.data.repository.core.support; +import java.lang.reflect.Constructor; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; @@ -273,29 +274,29 @@ public abstract class RepositoryFactorySupport implements BeanClassLoaderAware, Assert.notNull(repositoryInterface, "Repository interface must not be null!"); Assert.notNull(fragments, "RepositoryFragments must not be null!"); - var applicationStartup = getStartup(); + ApplicationStartup applicationStartup = getStartup(); - var repositoryInit = onEvent(applicationStartup, "spring.data.repository.init", repositoryInterface); + StartupStep repositoryInit = onEvent(applicationStartup, "spring.data.repository.init", repositoryInterface); repositoryBaseClass.ifPresent(it -> repositoryInit.tag("baseClass", it.getName())); - var repositoryMetadataStep = onEvent(applicationStartup, "spring.data.repository.metadata", + StartupStep repositoryMetadataStep = onEvent(applicationStartup, "spring.data.repository.metadata", repositoryInterface); - var metadata = getRepositoryMetadata(repositoryInterface); + RepositoryMetadata metadata = getRepositoryMetadata(repositoryInterface); repositoryMetadataStep.end(); - var repositoryCompositionStep = onEvent(applicationStartup, "spring.data.repository.composition", + StartupStep repositoryCompositionStep = onEvent(applicationStartup, "spring.data.repository.composition", repositoryInterface); repositoryCompositionStep.tag("fragment.count", String.valueOf(fragments.size())); - var composition = getRepositoryComposition(metadata, fragments); - var information = getRepositoryInformation(metadata, composition); + RepositoryComposition composition = getRepositoryComposition(metadata, fragments); + RepositoryInformation information = getRepositoryInformation(metadata, composition); repositoryCompositionStep.tag("fragments", () -> { - var fragmentsTag = new StringBuilder(); + StringBuilder fragmentsTag = new StringBuilder(); - for (var fragment : composition.getFragments()) { + for (RepositoryFragment fragment : composition.getFragments()) { if (fragmentsTag.length() > 0) { fragmentsTag.append(";"); @@ -310,19 +311,19 @@ public abstract class RepositoryFactorySupport implements BeanClassLoaderAware, repositoryCompositionStep.end(); - var repositoryTargetStep = onEvent(applicationStartup, "spring.data.repository.target", + StartupStep repositoryTargetStep = onEvent(applicationStartup, "spring.data.repository.target", repositoryInterface); - var target = getTargetRepository(information); + Object target = getTargetRepository(information); repositoryTargetStep.tag("target", target.getClass().getName()); repositoryTargetStep.end(); - var compositionToUse = composition.append(RepositoryFragment.implemented(target)); + RepositoryComposition compositionToUse = composition.append(RepositoryFragment.implemented(target)); validate(information, compositionToUse); // Create proxy - var repositoryProxyStep = onEvent(applicationStartup, "spring.data.repository.proxy", repositoryInterface); - var result = new ProxyFactory(); + StartupStep repositoryProxyStep = onEvent(applicationStartup, "spring.data.repository.proxy", repositoryInterface); + ProxyFactory result = new ProxyFactory(); result.setTarget(target); result.setInterfaces(repositoryInterface, Repository.class, TransactionalProxy.class); @@ -333,11 +334,11 @@ public abstract class RepositoryFactorySupport implements BeanClassLoaderAware, result.addAdvisor(ExposeInvocationInterceptor.ADVISOR); if (!postProcessors.isEmpty()) { - var repositoryPostprocessorsStep = onEvent(applicationStartup, "spring.data.repository.postprocessors", + StartupStep repositoryPostprocessorsStep = onEvent(applicationStartup, "spring.data.repository.postprocessors", repositoryInterface); postProcessors.forEach(processor -> { - var singlePostProcessor = onEvent(applicationStartup, "spring.data.repository.postprocessor", + StartupStep singlePostProcessor = onEvent(applicationStartup, "spring.data.repository.postprocessor", repositoryInterface); singlePostProcessor.tag("type", processor.getClass().getName()); processor.postProcess(result, information); @@ -358,7 +359,7 @@ public abstract class RepositoryFactorySupport implements BeanClassLoaderAware, result.addAdvice( new ImplementationMethodExecutionInterceptor(information, compositionToUse, methodInvocationListeners)); - var repository = (T) result.getProxy(classLoader); + T repository = (T) result.getProxy(classLoader); repositoryProxyStep.end(); repositoryInit.end(); @@ -380,7 +381,7 @@ public abstract class RepositoryFactorySupport implements BeanClassLoaderAware, */ protected ProjectionFactory getProjectionFactory(ClassLoader classLoader, BeanFactory beanFactory) { - var factory = new SpelAwareProxyProjectionFactory(); + SpelAwareProxyProjectionFactory factory = new SpelAwareProxyProjectionFactory(); factory.setBeanClassLoader(classLoader); factory.setBeanFactory(beanFactory); @@ -422,8 +423,8 @@ public abstract class RepositoryFactorySupport implements BeanClassLoaderAware, Assert.notNull(metadata, "RepositoryMetadata must not be null!"); Assert.notNull(fragments, "RepositoryFragments must not be null!"); - var composition = getRepositoryComposition(metadata); - var repositoryAspects = getRepositoryFragments(metadata); + RepositoryComposition composition = getRepositoryComposition(metadata); + RepositoryFragments repositoryAspects = getRepositoryFragments(metadata); return composition.append(fragments).append(repositoryAspects); } @@ -438,11 +439,11 @@ public abstract class RepositoryFactorySupport implements BeanClassLoaderAware, private RepositoryInformation getRepositoryInformation(RepositoryMetadata metadata, RepositoryComposition composition) { - var cacheKey = new RepositoryInformationCacheKey(metadata, composition); + RepositoryInformationCacheKey cacheKey = new RepositoryInformationCacheKey(metadata, composition); return repositoryInformationCache.computeIfAbsent(cacheKey, key -> { - var baseClass = repositoryBaseClass.orElse(getRepositoryBaseClass(metadata)); + Class baseClass = repositoryBaseClass.orElse(getRepositoryBaseClass(metadata)); return new DefaultRepositoryInformation(metadata, baseClass, composition); }); @@ -530,7 +531,7 @@ public abstract class RepositoryFactorySupport implements BeanClassLoaderAware, protected final R getTargetRepositoryViaReflection(RepositoryInformation information, Object... constructorArguments) { - var baseClass = information.getRepositoryBaseClass(); + Class baseClass = information.getRepositoryBaseClass(); return instantiateClass(baseClass, constructorArguments); } @@ -564,7 +565,7 @@ public abstract class RepositoryFactorySupport implements BeanClassLoaderAware, @SuppressWarnings("unchecked") protected final R instantiateClass(Class baseClass, Object... constructorArguments) { - var constructor = ReflectionUtils.findConstructor(baseClass, constructorArguments); + Optional> constructor = ReflectionUtils.findConstructor(baseClass, constructorArguments); return constructor.map(it -> (R) BeanUtils.instantiateClass(it, constructorArguments)) .orElseThrow(() -> new IllegalStateException(String.format( @@ -577,7 +578,7 @@ public abstract class RepositoryFactorySupport implements BeanClassLoaderAware, try { - var applicationStartup = beanFactory != null ? beanFactory.getBean(ApplicationStartup.class) + ApplicationStartup applicationStartup = beanFactory != null ? beanFactory.getBean(ApplicationStartup.class) : ApplicationStartup.DEFAULT; return applicationStartup != null ? applicationStartup : ApplicationStartup.DEFAULT; @@ -588,7 +589,7 @@ public abstract class RepositoryFactorySupport implements BeanClassLoaderAware, private StartupStep onEvent(ApplicationStartup applicationStartup, String name, Class repositoryInterface) { - var step = applicationStartup.start(name); + StartupStep step = applicationStartup.start(name); return step.tag("repository", repositoryInterface.getName()); } @@ -619,8 +620,8 @@ public abstract class RepositoryFactorySupport implements BeanClassLoaderAware, @Override public Object invoke(@SuppressWarnings("null") MethodInvocation invocation) throws Throwable { - var method = invocation.getMethod(); - var arguments = invocation.getArguments(); + Method method = invocation.getMethod(); + Object[] arguments = invocation.getArguments(); try { return composition.invoke(invocationMulticaster, method, arguments); @@ -707,7 +708,7 @@ public abstract class RepositoryFactorySupport implements BeanClassLoaderAware, @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(repositoryInterfaceName); + int result = ObjectUtils.nullSafeHashCode(repositoryInterfaceName); result = 31 * result + (int) (compositionHash ^ (compositionHash >>> 32)); return result; } @@ -764,7 +765,7 @@ public abstract class RepositoryFactorySupport implements BeanClassLoaderAware, public static void validate(RepositoryComposition composition, Class source, RepositoryInformation repositoryInformation) { - var repositoryInterface = repositoryInformation.getRepositoryInterface(); + Class repositoryInterface = repositoryInformation.getRepositoryInterface(); if (repositoryInformation.hasCustomMethod()) { if (composition.isEmpty()) { @@ -778,9 +779,9 @@ public abstract class RepositoryFactorySupport implements BeanClassLoaderAware, composition.validateImplementation(); } - for (var entry : WELL_KNOWN_EXECUTORS.entrySet()) { + for (Map.Entry, String> entry : WELL_KNOWN_EXECUTORS.entrySet()) { - var executorInterface = entry.getKey(); + Class executorInterface = entry.getKey(); if (!executorInterface.isAssignableFrom(repositoryInterface)) { continue; } @@ -798,7 +799,7 @@ public abstract class RepositoryFactorySupport implements BeanClassLoaderAware, private static boolean containsFragmentImplementation(RepositoryComposition composition, Class executorInterface) { - for (var fragment : composition.getFragments()) { + for (RepositoryFragment fragment : composition.getFragments()) { if (fragment.getImplementation().filter(executorInterface::isInstance).isPresent()) { return true; diff --git a/src/main/java/org/springframework/data/repository/core/support/RepositoryFragment.java b/src/main/java/org/springframework/data/repository/core/support/RepositoryFragment.java index b5bf68a82..f6de0d6e2 100644 --- a/src/main/java/org/springframework/data/repository/core/support/RepositoryFragment.java +++ b/src/main/java/org/springframework/data/repository/core/support/RepositoryFragment.java @@ -238,7 +238,7 @@ public interface RepositoryFragment { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(interfaceClass); + int result = ObjectUtils.nullSafeHashCode(interfaceClass); result = 31 * result + ObjectUtils.nullSafeHashCode(implementation); result = 31 * result + ObjectUtils.nullSafeHashCode(optionalImplementation); return result; diff --git a/src/main/java/org/springframework/data/repository/core/support/RepositoryInvocationMulticaster.java b/src/main/java/org/springframework/data/repository/core/support/RepositoryInvocationMulticaster.java index 9b72ed465..3e40bae3f 100644 --- a/src/main/java/org/springframework/data/repository/core/support/RepositoryInvocationMulticaster.java +++ b/src/main/java/org/springframework/data/repository/core/support/RepositoryInvocationMulticaster.java @@ -72,7 +72,7 @@ interface RepositoryInvocationMulticaster { @Override public void notifyListeners(Method method, Object[] args, RepositoryMethodInvocation result) { - for (var methodInvocationListener : methodInvocationListeners) { + for (RepositoryMethodInvocationListener methodInvocationListener : methodInvocationListeners) { methodInvocationListener.afterInvocation(result); } } diff --git a/src/main/java/org/springframework/data/repository/core/support/RepositoryMethodInvoker.java b/src/main/java/org/springframework/data/repository/core/support/RepositoryMethodInvoker.java index 611199e64..f3b3f886b 100644 --- a/src/main/java/org/springframework/data/repository/core/support/RepositoryMethodInvoker.java +++ b/src/main/java/org/springframework/data/repository/core/support/RepositoryMethodInvoker.java @@ -16,6 +16,7 @@ package org.springframework.data.repository.core.support; import kotlin.coroutines.Continuation; +import kotlin.reflect.KFunction; import kotlinx.coroutines.reactive.AwaitKt; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -128,12 +129,12 @@ abstract class RepositoryMethodInvoker { private Object doInvoke(Class repositoryInterface, RepositoryInvocationMulticaster multicaster, Object[] args) throws Exception { - var invocationResultCaptor = RepositoryMethodInvocationCaptor + RepositoryMethodInvocationCaptor invocationResultCaptor = RepositoryMethodInvocationCaptor .captureInvocationOn(repositoryInterface); try { - var result = invokable.invoke(args); + Object result = invokable.invoke(args); if (result != null && ReactiveWrappers.supports(result.getClass())) { return new ReactiveInvocationListenerDecorator().decorate(repositoryInterface, multicaster, args, result); @@ -166,7 +167,7 @@ abstract class RepositoryMethodInvoker { Continuation continuation = (Continuation) args[args.length - 1]; args[args.length - 1] = null; - var invocationResultCaptor = RepositoryMethodInvocationCaptor + RepositoryMethodInvocationCaptor invocationResultCaptor = RepositoryMethodInvocationCaptor .captureInvocationOn(repositoryInterface); try { @@ -279,7 +280,7 @@ abstract class RepositoryMethodInvoker { * We're invoking a method without Continuation as we expect the method to return any sort of reactive type, * therefore we need to strip the Continuation parameter. */ - var invocationArguments = new Object[args.length - 1]; + Object[] invocationArguments = new Object[args.length - 1]; System.arraycopy(args, 0, invocationArguments, 0, invocationArguments.length); return baseClassMethod.invoke(instance, invocationArguments); @@ -330,16 +331,16 @@ abstract class RepositoryMethodInvoker { baseClassMethod.getParameterCount()); } - var declaredFunction = KotlinDetector.isKotlinType(declaredMethod.getDeclaringClass()) + KFunction declaredFunction = KotlinDetector.isKotlinType(declaredMethod.getDeclaringClass()) ? KotlinReflectionUtils.findKotlinFunction(declaredMethod) : null; - var baseClassFunction = KotlinDetector.isKotlinType(baseClassMethod.getDeclaringClass()) + KFunction baseClassFunction = KotlinDetector.isKotlinType(baseClassMethod.getDeclaringClass()) ? KotlinReflectionUtils.findKotlinFunction(baseClassMethod) : null; - var suspendedDeclaredMethod = declaredFunction != null && declaredFunction.isSuspend(); - var suspendedBaseClassMethod = baseClassFunction != null && baseClassFunction.isSuspend(); - var reactiveBaseClassMethod = !suspendedBaseClassMethod + boolean suspendedDeclaredMethod = declaredFunction != null && declaredFunction.isSuspend(); + boolean suspendedBaseClassMethod = baseClassFunction != null && baseClassFunction.isSuspend(); + boolean reactiveBaseClassMethod = !suspendedBaseClassMethod && ReactiveWrapperConverters.supports(baseClassMethod.getReturnType()); return new CoroutineAdapterInformation(suspendedDeclaredMethod, suspendedBaseClassMethod, diff --git a/src/main/java/org/springframework/data/repository/core/support/TransactionalRepositoryFactoryBeanSupport.java b/src/main/java/org/springframework/data/repository/core/support/TransactionalRepositoryFactoryBeanSupport.java index 66ae7a1ac..cdbba49d2 100644 --- a/src/main/java/org/springframework/data/repository/core/support/TransactionalRepositoryFactoryBeanSupport.java +++ b/src/main/java/org/springframework/data/repository/core/support/TransactionalRepositoryFactoryBeanSupport.java @@ -77,15 +77,15 @@ public abstract class TransactionalRepositoryFactoryBeanSupport userClass = targetClass == null ? targetClass : ProxyUtils.getUserClass(targetClass); // The method may be on an interface, but we need attributes from the target class. // If the target class is null, the method will be unchanged. - var specificMethod = ClassUtils.getMostSpecificMethod(method, userClass); + Method specificMethod = ClassUtils.getMostSpecificMethod(method, userClass); // If we are dealing with method with generic parameters, find the original method. specificMethod = BridgeMethodResolver.findBridgedMethod(specificMethod); @@ -170,7 +170,7 @@ class TransactionalRepositoryProxyPostProcessor implements RepositoryProxyPostPr // Fallback to implementation class transaction settings of nothing found // return findTransactionAttribute(method); - var targetClassMethod = repositoryInformation.getTargetClassMethod(method); + Method targetClassMethod = repositoryInformation.getTargetClassMethod(method); if (targetClassMethod.equals(method)) { return null; diff --git a/src/main/java/org/springframework/data/repository/init/AbstractRepositoryPopulatorFactoryBean.java b/src/main/java/org/springframework/data/repository/init/AbstractRepositoryPopulatorFactoryBean.java index d3ec640e1..163ac16f8 100644 --- a/src/main/java/org/springframework/data/repository/init/AbstractRepositoryPopulatorFactoryBean.java +++ b/src/main/java/org/springframework/data/repository/init/AbstractRepositoryPopulatorFactoryBean.java @@ -66,7 +66,7 @@ public abstract class AbstractRepositoryPopulatorFactoryBean @Override protected ResourceReaderRepositoryPopulator createInstance() { - var initializer = new ResourceReaderRepositoryPopulator(getResourceReader()); + ResourceReaderRepositoryPopulator initializer = new ResourceReaderRepositoryPopulator(getResourceReader()); initializer.setResources(resources); if (context != null) { @@ -80,7 +80,7 @@ public abstract class AbstractRepositoryPopulatorFactoryBean public void onApplicationEvent(ContextRefreshedEvent event) { - var populator = this.populator; + RepositoryPopulator populator = this.populator; if (populator == null) { throw new IllegalStateException("RepositoryPopulator was not properly initialized!"); @@ -88,7 +88,7 @@ public abstract class AbstractRepositoryPopulatorFactoryBean if (event.getApplicationContext().equals(context)) { - var repositories = new Repositories(event.getApplicationContext()); + Repositories repositories = new Repositories(event.getApplicationContext()); populator.populate(repositories); } } diff --git a/src/main/java/org/springframework/data/repository/init/Jackson2ResourceReader.java b/src/main/java/org/springframework/data/repository/init/Jackson2ResourceReader.java index 4223d27c3..21c173cef 100644 --- a/src/main/java/org/springframework/data/repository/init/Jackson2ResourceReader.java +++ b/src/main/java/org/springframework/data/repository/init/Jackson2ResourceReader.java @@ -18,7 +18,9 @@ package org.springframework.data.repository.init; import static com.fasterxml.jackson.databind.DeserializationFeature.*; import java.io.IOException; +import java.io.InputStream; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; import org.springframework.core.io.Resource; @@ -79,16 +81,16 @@ public class Jackson2ResourceReader implements ResourceReader { Assert.notNull(resource, "Resource must not be null!"); - var stream = resource.getInputStream(); - var node = mapper.readerFor(JsonNode.class).readTree(stream); + InputStream stream = resource.getInputStream(); + JsonNode node = mapper.readerFor(JsonNode.class).readTree(stream); if (node.isArray()) { - var elements = node.elements(); + Iterator elements = node.elements(); List result = new ArrayList<>(); while (elements.hasNext()) { - var element = elements.next(); + JsonNode element = elements.next(); result.add(readSingle(element, classLoader)); } @@ -107,14 +109,14 @@ public class Jackson2ResourceReader implements ResourceReader { */ private Object readSingle(JsonNode node, @Nullable ClassLoader classLoader) throws IOException { - var typeNode = node.findValue(typeKey); + JsonNode typeNode = node.findValue(typeKey); if (typeNode == null) { throw new IllegalArgumentException(String.format("Could not find type for type key '%s'!", typeKey)); } - var typeName = typeNode.asText(); - var type = ClassUtils.resolveClassName(typeName, classLoader); + String typeName = typeNode.asText(); + Class type = ClassUtils.resolveClassName(typeName, classLoader); return mapper.readerFor(type).readValue(node); } diff --git a/src/main/java/org/springframework/data/repository/init/RepositoriesPopulatedEvent.java b/src/main/java/org/springframework/data/repository/init/RepositoriesPopulatedEvent.java index ba58ae08e..a69df675c 100644 --- a/src/main/java/org/springframework/data/repository/init/RepositoriesPopulatedEvent.java +++ b/src/main/java/org/springframework/data/repository/init/RepositoriesPopulatedEvent.java @@ -75,14 +75,14 @@ public class RepositoriesPopulatedEvent extends ApplicationEvent { return false; } - var that = (RepositoriesPopulatedEvent) obj; + RepositoriesPopulatedEvent that = (RepositoriesPopulatedEvent) obj; return this.source.equals(that.source) && this.repositories.equals(that.repositories); } @Override public int hashCode() { - var result = 17; + int result = 17; result += 31 * source.hashCode(); result += 31 * repositories.hashCode(); diff --git a/src/main/java/org/springframework/data/repository/init/ResourceReaderRepositoryPopulator.java b/src/main/java/org/springframework/data/repository/init/ResourceReaderRepositoryPopulator.java index f5974a38a..0947d4ffb 100644 --- a/src/main/java/org/springframework/data/repository/init/ResourceReaderRepositoryPopulator.java +++ b/src/main/java/org/springframework/data/repository/init/ResourceReaderRepositoryPopulator.java @@ -30,6 +30,7 @@ import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.ResourcePatternResolver; import org.springframework.data.repository.support.DefaultRepositoryInvokerFactory; import org.springframework.data.repository.support.Repositories; +import org.springframework.data.repository.support.RepositoryInvoker; import org.springframework.data.repository.support.RepositoryInvokerFactory; import org.springframework.lang.Nullable; import org.springframework.util.Assert; @@ -108,11 +109,11 @@ public class ResourceReaderRepositoryPopulator implements RepositoryPopulator, A RepositoryInvokerFactory invokerFactory = new DefaultRepositoryInvokerFactory(repositories); - for (var resource : resources) { + for (Resource resource : resources) { logger.info(String.format("Reading resource: %s", resource)); - var result = readObjectFrom(resource); + Object result = readObjectFrom(resource); if (result instanceof Collection) { for (Object element : (Collection) result) { @@ -154,7 +155,7 @@ public class ResourceReaderRepositoryPopulator implements RepositoryPopulator, A */ private void persist(Object object, RepositoryInvokerFactory invokerFactory) { - var invoker = invokerFactory.getInvokerFor(object.getClass()); + RepositoryInvoker invoker = invokerFactory.getInvokerFor(object.getClass()); logger.debug(String.format("Persisting %s using repository %s", object, invoker)); invoker.invokeSave(object); } diff --git a/src/main/java/org/springframework/data/repository/init/UnmarshallerRepositoryPopulatorFactoryBean.java b/src/main/java/org/springframework/data/repository/init/UnmarshallerRepositoryPopulatorFactoryBean.java index 5340f3051..617859aa6 100644 --- a/src/main/java/org/springframework/data/repository/init/UnmarshallerRepositoryPopulatorFactoryBean.java +++ b/src/main/java/org/springframework/data/repository/init/UnmarshallerRepositoryPopulatorFactoryBean.java @@ -42,7 +42,7 @@ public class UnmarshallerRepositoryPopulatorFactoryBean extends AbstractReposito @Override protected ResourceReader getResourceReader() { - var unmarshaller = this.unmarshaller; + Unmarshaller unmarshaller = this.unmarshaller; if (unmarshaller == null) { throw new IllegalStateException("No Unmarshaller configured!"); diff --git a/src/main/java/org/springframework/data/repository/init/UnmarshallingResourceReader.java b/src/main/java/org/springframework/data/repository/init/UnmarshallingResourceReader.java index 62a852215..6e8639af7 100644 --- a/src/main/java/org/springframework/data/repository/init/UnmarshallingResourceReader.java +++ b/src/main/java/org/springframework/data/repository/init/UnmarshallingResourceReader.java @@ -43,7 +43,7 @@ public class UnmarshallingResourceReader implements ResourceReader { Assert.notNull(resource, "Resource must not be null!"); - var source = new StreamSource(resource.getInputStream()); + StreamSource source = new StreamSource(resource.getInputStream()); return unmarshaller.unmarshal(source); } } diff --git a/src/main/java/org/springframework/data/repository/query/ExtensionAwareQueryMethodEvaluationContextProvider.java b/src/main/java/org/springframework/data/repository/query/ExtensionAwareQueryMethodEvaluationContextProvider.java index fd655c34d..71ff867c7 100644 --- a/src/main/java/org/springframework/data/repository/query/ExtensionAwareQueryMethodEvaluationContextProvider.java +++ b/src/main/java/org/springframework/data/repository/query/ExtensionAwareQueryMethodEvaluationContextProvider.java @@ -24,6 +24,7 @@ import org.springframework.data.spel.ExpressionDependencies; import org.springframework.data.spel.ExtensionAwareEvaluationContextProvider; import org.springframework.data.spel.spi.EvaluationContextExtension; import org.springframework.expression.EvaluationContext; +import org.springframework.expression.spel.support.StandardEvaluationContext; import org.springframework.util.Assert; import org.springframework.util.StringUtils; @@ -70,7 +71,7 @@ public class ExtensionAwareQueryMethodEvaluationContextProvider implements Query @Override public > EvaluationContext getEvaluationContext(T parameters, Object[] parameterValues) { - var evaluationContext = delegate.getEvaluationContext(parameterValues); + StandardEvaluationContext evaluationContext = delegate.getEvaluationContext(parameterValues); evaluationContext.setVariables(collectVariables(parameters, parameterValues)); @@ -81,7 +82,7 @@ public class ExtensionAwareQueryMethodEvaluationContextProvider implements Query public > EvaluationContext getEvaluationContext(T parameters, Object[] parameterValues, ExpressionDependencies dependencies) { - var evaluationContext = delegate.getEvaluationContext(parameterValues, dependencies); + StandardEvaluationContext evaluationContext = delegate.getEvaluationContext(parameterValues, dependencies); evaluationContext.setVariables(collectVariables(parameters, parameterValues)); diff --git a/src/main/java/org/springframework/data/repository/query/Parameter.java b/src/main/java/org/springframework/data/repository/query/Parameter.java index 629b3ceb9..66dc63682 100644 --- a/src/main/java/org/springframework/data/repository/query/Parameter.java +++ b/src/main/java/org/springframework/data/repository/query/Parameter.java @@ -17,6 +17,7 @@ package org.springframework.data.repository.query; import static java.lang.String.*; +import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -32,6 +33,7 @@ import org.springframework.data.repository.util.QueryExecutionConverters; import org.springframework.data.repository.util.ReactiveWrapperConverters; import org.springframework.data.util.ClassTypeInformation; import org.springframework.data.util.Lazy; +import org.springframework.data.util.TypeInformation; import org.springframework.util.Assert; /** @@ -78,7 +80,7 @@ public class Parameter { this.parameterType = potentiallyUnwrapParameterType(parameter); this.isDynamicProjectionParameter = isDynamicProjectionParameter(parameter); this.name = TYPES.contains(parameter.getParameterType()) ? Lazy.of(Optional.empty()) : Lazy.of(() -> { - var annotation = parameter.getParameterAnnotation(Param.class); + Param annotation = parameter.getParameterAnnotation(Param.class); return Optional.ofNullable(annotation == null ? parameter.getParameterName() : annotation.value()); }); } @@ -207,21 +209,21 @@ public class Parameter { */ private static boolean isDynamicProjectionParameter(MethodParameter parameter) { - var method = parameter.getMethod(); + Method method = parameter.getMethod(); if (method == null) { throw new IllegalStateException(String.format("Method parameter %s is not backed by a method!", parameter)); } - var ownerType = ClassTypeInformation.from(parameter.getDeclaringClass()); - var parameterTypes = ownerType.getParameterTypes(method).get(parameter.getParameterIndex()); + ClassTypeInformation ownerType = ClassTypeInformation.from(parameter.getDeclaringClass()); + TypeInformation parameterTypes = ownerType.getParameterTypes(method).get(parameter.getParameterIndex()); if (!parameterTypes.getType().equals(Class.class)) { return false; } - var bound = parameterTypes.getTypeArguments().get(0); - var returnType = ClassTypeInformation.fromReturnTypeOf(method); + TypeInformation bound = parameterTypes.getTypeArguments().get(0); + TypeInformation returnType = ClassTypeInformation.fromReturnTypeOf(method); return bound .equals(QueryExecutionConverters.unwrapWrapperTypes(ReactiveWrapperConverters.unwrapWrapperTypes(returnType))); @@ -259,7 +261,7 @@ public class Parameter { */ private static Class potentiallyUnwrapParameterType(MethodParameter parameter) { - var originalType = parameter.getParameterType(); + Class originalType = parameter.getParameterType(); if (isWrapped(parameter) && shouldUnwrap(parameter)) { return ResolvableType.forMethodParameter(parameter).getGeneric(0).resolve(Object.class); diff --git a/src/main/java/org/springframework/data/repository/query/Parameters.java b/src/main/java/org/springframework/data/repository/query/Parameters.java index 86c8a085b..c3b996b1b 100644 --- a/src/main/java/org/springframework/data/repository/query/Parameters.java +++ b/src/main/java/org/springframework/data/repository/query/Parameters.java @@ -66,20 +66,20 @@ public abstract class Parameters, T extends Parameter Assert.notNull(method, "Method must not be null!"); - var parameterCount = method.getParameterCount(); + int parameterCount = method.getParameterCount(); this.parameters = new ArrayList<>(parameterCount); this.dynamicProjectionIndex = -1; - var pageableIndex = -1; - var sortIndex = -1; + int pageableIndex = -1; + int sortIndex = -1; - for (var i = 0; i < parameterCount; i++) { + for (int i = 0; i < parameterCount; i++) { - var methodParameter = new MethodParameter(method, i); + MethodParameter methodParameter = new MethodParameter(method, i); methodParameter.initParameterNameDiscovery(PARAMETER_NAME_DISCOVERER); - var parameter = createParameter(methodParameter); + T parameter = createParameter(methodParameter); if (parameter.isSpecialParameter() && parameter.isNamedParameter()) { throw new IllegalArgumentException(PARAM_ON_SPECIAL); @@ -116,13 +116,13 @@ public abstract class Parameters, T extends Parameter this.parameters = new ArrayList<>(originals.size()); - var pageableIndexTemp = -1; - var sortIndexTemp = -1; - var dynamicProjectionTemp = -1; + int pageableIndexTemp = -1; + int sortIndexTemp = -1; + int dynamicProjectionTemp = -1; - for (var i = 0; i < originals.size(); i++) { + for (int i = 0; i < originals.size(); i++) { - var original = originals.get(i); + T original = originals.get(i); this.parameters.add(original); pageableIndexTemp = original.isPageable() ? i : -1; @@ -140,7 +140,7 @@ public abstract class Parameters, T extends Parameter List bindables = new ArrayList<>(); - for (var candidate : this) { + for (T candidate : this) { if (candidate.isBindable()) { bindables.add(candidate); @@ -306,10 +306,10 @@ public abstract class Parameters, T extends Parameter */ private void assertEitherAllParamAnnotatedOrNone() { - var nameFound = false; - var index = 0; + boolean nameFound = false; + int index = 0; - for (var parameter : this.getBindableParameters()) { + for (T parameter : this.getBindableParameters()) { if (parameter.isNamedParameter()) { Assert.isTrue(nameFound || index == 0, ALL_OR_NOTHING); diff --git a/src/main/java/org/springframework/data/repository/query/ParametersParameterAccessor.java b/src/main/java/org/springframework/data/repository/query/ParametersParameterAccessor.java index 42ad63513..08366b677 100644 --- a/src/main/java/org/springframework/data/repository/query/ParametersParameterAccessor.java +++ b/src/main/java/org/springframework/data/repository/query/ParametersParameterAccessor.java @@ -53,7 +53,7 @@ public class ParametersParameterAccessor implements ParameterAccessor { if (requiresUnwrapping(values)) { this.values = new Object[values.length]; - for (var i = 0; i < values.length; i++) { + for (int i = 0; i < values.length; i++) { this.values[i] = QueryExecutionConverters.unwrap(values[i]); } } else { @@ -63,7 +63,7 @@ public class ParametersParameterAccessor implements ParameterAccessor { private static boolean requiresUnwrapping(Object[] values) { - for (var value : values) { + for (Object value : values) { if (value != null && (QueryExecutionConverters.supports(value.getClass()) || ReactiveWrapperConverters.supports(value.getClass()))) { return true; @@ -98,7 +98,7 @@ public class ParametersParameterAccessor implements ParameterAccessor { return Pageable.unpaged(); } - var pageable = (Pageable) values[parameters.getPageableIndex()]; + Pageable pageable = (Pageable) values[parameters.getPageableIndex()]; return pageable == null ? Pageable.unpaged() : pageable; } @@ -108,7 +108,7 @@ public class ParametersParameterAccessor implements ParameterAccessor { if (parameters.hasSortParameter()) { - var sort = (Sort) values[parameters.getSortIndex()]; + Sort sort = (Sort) values[parameters.getSortIndex()]; return sort == null ? Sort.unsorted() : sort; } diff --git a/src/main/java/org/springframework/data/repository/query/QueryMethod.java b/src/main/java/org/springframework/data/repository/query/QueryMethod.java index 143e0edba..e7d9dd33a 100644 --- a/src/main/java/org/springframework/data/repository/query/QueryMethod.java +++ b/src/main/java/org/springframework/data/repository/query/QueryMethod.java @@ -104,8 +104,8 @@ public class QueryMethod { this.domainClass = Lazy.of(() -> { - var repositoryDomainClass = metadata.getDomainType(); - var methodDomainClass = metadata.getReturnedDomainClass(method); + Class repositoryDomainClass = metadata.getDomainType(); + Class methodDomainClass = metadata.getReturnedDomainClass(method); return repositoryDomainClass == null || repositoryDomainClass.isAssignableFrom(methodDomainClass) ? methodDomainClass @@ -260,7 +260,7 @@ public class QueryMethod { return false; } - var returnType = metadata.getReturnType(method).getType(); + Class returnType = metadata.getReturnType(method).getType(); if (QueryExecutionConverters.supports(returnType) && !QueryExecutionConverters.isSingleValue(returnType)) { return true; @@ -275,13 +275,13 @@ public class QueryMethod { private static Class potentiallyUnwrapReturnTypeFor(RepositoryMetadata metadata, Method method) { - var returnType = metadata.getReturnType(method); + TypeInformation returnType = metadata.getReturnType(method); if (QueryExecutionConverters.supports(returnType.getType()) || ReactiveWrapperConverters.supports(returnType.getType())) { // unwrap only one level to handle cases like Future> correctly. - var componentType = returnType.getComponentType(); + TypeInformation componentType = returnType.getComponentType(); if (componentType == null) { throw new IllegalStateException( @@ -305,7 +305,7 @@ public class QueryMethod { ? returnType.getRequiredComponentType() // : returnType; - for (var type : types) { + for (Class type : types) { if (type.isAssignableFrom(returnType.getType())) { return; } diff --git a/src/main/java/org/springframework/data/repository/query/ReactiveExtensionAwareQueryMethodEvaluationContextProvider.java b/src/main/java/org/springframework/data/repository/query/ReactiveExtensionAwareQueryMethodEvaluationContextProvider.java index 53bbd07bb..022745873 100644 --- a/src/main/java/org/springframework/data/repository/query/ReactiveExtensionAwareQueryMethodEvaluationContextProvider.java +++ b/src/main/java/org/springframework/data/repository/query/ReactiveExtensionAwareQueryMethodEvaluationContextProvider.java @@ -71,7 +71,7 @@ public class ReactiveExtensionAwareQueryMethodEvaluationContextProvider @Override public > EvaluationContext getEvaluationContext(T parameters, Object[] parameterValues) { - var evaluationContext = delegate.getEvaluationContext(parameterValues); + EvaluationContext evaluationContext = delegate.getEvaluationContext(parameterValues); if (evaluationContext instanceof StandardEvaluationContext) { ((StandardEvaluationContext) evaluationContext).setVariables( @@ -85,7 +85,7 @@ public class ReactiveExtensionAwareQueryMethodEvaluationContextProvider public > EvaluationContext getEvaluationContext(T parameters, Object[] parameterValues, ExpressionDependencies dependencies) { - var evaluationContext = delegate.getEvaluationContext(parameterValues, dependencies); + EvaluationContext evaluationContext = delegate.getEvaluationContext(parameterValues, dependencies); if (evaluationContext instanceof StandardEvaluationContext) { ((StandardEvaluationContext) evaluationContext).setVariables( @@ -99,7 +99,7 @@ public class ReactiveExtensionAwareQueryMethodEvaluationContextProvider public > Mono getEvaluationContextLater(T parameters, Object[] parameterValues) { - var evaluationContext = delegate.getEvaluationContextLater(parameterValues); + Mono evaluationContext = delegate.getEvaluationContextLater(parameterValues); return evaluationContext .doOnNext(it -> it.setVariables( @@ -111,7 +111,7 @@ public class ReactiveExtensionAwareQueryMethodEvaluationContextProvider public > Mono getEvaluationContextLater(T parameters, Object[] parameterValues, ExpressionDependencies dependencies) { - var evaluationContext = delegate.getEvaluationContextLater(parameterValues, + Mono evaluationContext = delegate.getEvaluationContextLater(parameterValues, dependencies); return evaluationContext diff --git a/src/main/java/org/springframework/data/repository/query/ResultProcessor.java b/src/main/java/org/springframework/data/repository/query/ResultProcessor.java index 4a97b9861..48ae3947b 100644 --- a/src/main/java/org/springframework/data/repository/query/ResultProcessor.java +++ b/src/main/java/org/springframework/data/repository/query/ResultProcessor.java @@ -96,7 +96,7 @@ public class ResultProcessor { Assert.notNull(accessor, "Parameter accessor must not be null!"); - var projection = accessor.findDynamicProjection(); + Class projection = accessor.findDynamicProjection(); return projection == null // ? this // @@ -141,7 +141,7 @@ public class ResultProcessor { Assert.notNull(preparingConverter, "Preparing converter must not be null!"); - var converter = ChainingConverter.of(type.getReturnedType(), preparingConverter).and(this.converter); + ChainingConverter converter = ChainingConverter.of(type.getReturnedType(), preparingConverter).and(this.converter); if (source instanceof Slice && (method.isPageQuery() || method.isSliceQuery())) { return (T) ((Slice) source).map(converter::convert); @@ -149,7 +149,7 @@ public class ResultProcessor { if (source instanceof Collection collection && method.isCollectionQuery()) { - var target = createCollectionFor(collection); + Collection target = createCollectionFor(collection); for (Object columns : collection) { target.add(type.isInstance(columns) ? columns : converter.convert(columns)); @@ -171,7 +171,7 @@ public class ResultProcessor { private ResultProcessor withType(Class type) { - var returnedType = ReturnedType.of(type, method.getDomainClass(), factory); + ReturnedType returnedType = ReturnedType.of(type, method.getDomainClass(), factory); return new ResultProcessor(method, converter.withType(returnedType), factory, returnedType); } @@ -222,7 +222,7 @@ public class ResultProcessor { return source; } - var intermediate = ChainingConverter.this.convert(source); + Object intermediate = ChainingConverter.this.convert(source); return intermediate == null || targetType.isInstance(intermediate) ? intermediate : converter.convert(intermediate); @@ -291,7 +291,7 @@ public class ResultProcessor { @Override public Object convert(Object source) { - var targetType = type.getReturnedType(); + Class targetType = type.getReturnedType(); if (targetType.isInterface()) { return factory.createProjection(targetType, getProjectionTarget(source)); @@ -315,7 +315,7 @@ public class ResultProcessor { private static Map toMap(Collection values, List names) { - var i = 0; + int i = 0; Map result = new HashMap<>(values.size()); for (Object element : values) { diff --git a/src/main/java/org/springframework/data/repository/query/ReturnedType.java b/src/main/java/org/springframework/data/repository/query/ReturnedType.java index 4f141fd7d..c68248bf7 100644 --- a/src/main/java/org/springframework/data/repository/query/ReturnedType.java +++ b/src/main/java/org/springframework/data/repository/query/ReturnedType.java @@ -15,6 +15,7 @@ */ package org.springframework.data.repository.query; +import java.beans.PropertyDescriptor; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -183,7 +184,7 @@ public abstract class ReturnedType { List properties = new ArrayList<>(); - for (var descriptor : information.getInputProperties()) { + for (PropertyDescriptor descriptor : information.getInputProperties()) { if (!properties.contains(descriptor.getName())) { properties.add(descriptor.getName()); } @@ -341,7 +342,7 @@ public abstract class ReturnedType { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(returnedType); + int result = ObjectUtils.nullSafeHashCode(returnedType); result = 31 * result + ObjectUtils.nullSafeHashCode(domainType); result = 31 * result + projectionFactoryHashCode; return result; diff --git a/src/main/java/org/springframework/data/repository/query/SpelEvaluator.java b/src/main/java/org/springframework/data/repository/query/SpelEvaluator.java index e240ff1ef..86328c3cf 100644 --- a/src/main/java/org/springframework/data/repository/query/SpelEvaluator.java +++ b/src/main/java/org/springframework/data/repository/query/SpelEvaluator.java @@ -21,6 +21,8 @@ import java.util.stream.Collectors; import org.springframework.data.repository.query.SpelQueryContext.SpelExtractor; import org.springframework.data.spel.ExpressionDependencies; +import org.springframework.expression.EvaluationContext; +import org.springframework.expression.Expression; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.lang.Nullable; import org.springframework.util.Assert; @@ -79,8 +81,8 @@ public class SpelEvaluator { @Nullable private Object getSpElValue(String expressionString, Object[] values) { - var expression = PARSER.parseExpression(expressionString); - var evaluationContext = evaluationContextProvider.getEvaluationContext(parameters, values, + Expression expression = PARSER.parseExpression(expressionString); + EvaluationContext evaluationContext = evaluationContextProvider.getEvaluationContext(parameters, values, ExpressionDependencies.discover(expression)); return expression.getValue(evaluationContext); diff --git a/src/main/java/org/springframework/data/repository/query/SpelQueryContext.java b/src/main/java/org/springframework/data/repository/query/SpelQueryContext.java index 1474ba264..82f63e6ec 100644 --- a/src/main/java/org/springframework/data/repository/query/SpelQueryContext.java +++ b/src/main/java/org/springframework/data/repository/query/SpelQueryContext.java @@ -24,6 +24,7 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.function.BiFunction; +import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Stream; @@ -184,12 +185,12 @@ public class SpelQueryContext { Assert.notNull(query, "Query must not be null"); Map expressions = new HashMap<>(); - var matcher = SPEL_PATTERN.matcher(query); - var resultQuery = new StringBuilder(); - var quotedAreas = new QuotationMap(query); + Matcher matcher = SPEL_PATTERN.matcher(query); + StringBuilder resultQuery = new StringBuilder(); + QuotationMap quotedAreas = new QuotationMap(query); - var expressionCounter = 0; - var matchedUntil = 0; + int expressionCounter = 0; + int matchedUntil = 0; while (matcher.find()) { @@ -199,11 +200,11 @@ public class SpelQueryContext { } else { - var spelExpression = matcher.group(EXPRESSION_GROUP_INDEX); - var prefix = matcher.group(PREFIX_GROUP_INDEX); + String spelExpression = matcher.group(EXPRESSION_GROUP_INDEX); + String prefix = matcher.group(PREFIX_GROUP_INDEX); - var parameterName = parameterNameSource.apply(expressionCounter, spelExpression); - var replacement = replacementSource.apply(prefix, parameterName); + String parameterName = parameterNameSource.apply(expressionCounter, spelExpression); + String replacement = replacementSource.apply(prefix, parameterName); resultQuery.append(query, matchedUntil, matcher.start()); resultQuery.append(replacement); @@ -287,11 +288,11 @@ public class SpelQueryContext { } Character inQuotation = null; - var start = 0; + int start = 0; - for (var i = 0; i < query.length(); i++) { + for (int i = 0; i < query.length(); i++) { - var currentChar = query.charAt(i); + char currentChar = query.charAt(i); if (QUOTING_CHARACTERS.contains(currentChar)) { diff --git a/src/main/java/org/springframework/data/repository/query/parser/AbstractQueryCreator.java b/src/main/java/org/springframework/data/repository/query/parser/AbstractQueryCreator.java index 5bef75d24..40deb631f 100644 --- a/src/main/java/org/springframework/data/repository/query/parser/AbstractQueryCreator.java +++ b/src/main/java/org/springframework/data/repository/query/parser/AbstractQueryCreator.java @@ -105,17 +105,17 @@ public abstract class AbstractQueryCreator { private S createCriteria(PartTree tree) { S base = null; - var iterator = parameters.map(ParameterAccessor::iterator).orElse(Collections.emptyIterator()); + Iterator iterator = parameters.map(ParameterAccessor::iterator).orElse(Collections.emptyIterator()); - for (var node : tree) { + for (PartTree.OrPart node : tree) { - var parts = node.iterator(); + Iterator parts = node.iterator(); if (!parts.hasNext()) { throw new IllegalStateException(String.format("No part found in PartTree %s!", tree)); } - var criteria = create(parts.next(), iterator); + S criteria = create(parts.next(), iterator); while (parts.hasNext()) { criteria = and(parts.next(), criteria, iterator); diff --git a/src/main/java/org/springframework/data/repository/query/parser/OrderBySource.java b/src/main/java/org/springframework/data/repository/query/parser/OrderBySource.java index 72b9fab14..1e742d2a7 100644 --- a/src/main/java/org/springframework/data/repository/query/parser/OrderBySource.java +++ b/src/main/java/org/springframework/data/repository/query/parser/OrderBySource.java @@ -21,6 +21,7 @@ import java.util.HashSet; import java.util.List; import java.util.Optional; import java.util.Set; +import java.util.regex.Matcher; import java.util.regex.Pattern; import org.springframework.data.domain.Sort; @@ -74,16 +75,16 @@ class OrderBySource { return; } - for (var part : clause.split(BLOCK_SPLIT)) { + for (String part : clause.split(BLOCK_SPLIT)) { - var matcher = DIRECTION_SPLIT.matcher(part); + Matcher matcher = DIRECTION_SPLIT.matcher(part); if (!matcher.find()) { throw new IllegalArgumentException(String.format(INVALID_ORDER_SYNTAX, part)); } - var propertyString = matcher.group(1); - var directionString = matcher.group(2); + String propertyString = matcher.group(1); + String directionString = matcher.group(2); // No property, but only a direction keyword if (DIRECTION_KEYWORDS.contains(propertyString) && directionString == null) { @@ -108,7 +109,7 @@ class OrderBySource { return domainClass.map(type -> { - var propertyPath = PropertyPath.from(propertySource, type); + PropertyPath propertyPath = PropertyPath.from(propertySource, type); return direction.map(it -> new Order(it, propertyPath.toDotPath())) .orElseGet(() -> Order.by(propertyPath.toDotPath())); diff --git a/src/main/java/org/springframework/data/repository/query/parser/Part.java b/src/main/java/org/springframework/data/repository/query/parser/Part.java index b08dd2f37..1dd32f23e 100644 --- a/src/main/java/org/springframework/data/repository/query/parser/Part.java +++ b/src/main/java/org/springframework/data/repository/query/parser/Part.java @@ -22,6 +22,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.regex.Matcher; import java.util.regex.Pattern; import org.springframework.data.mapping.PropertyPath; @@ -70,7 +71,7 @@ public class Part { Assert.hasText(source, "Part source must not be null or empty!"); Assert.notNull(clazz, "Type must not be null!"); - var partToUse = detectAndSetIgnoreCase(source); + String partToUse = detectAndSetIgnoreCase(source); if (alwaysIgnoreCase && ignoreCase != IgnoreCaseType.ALWAYS) { this.ignoreCase = IgnoreCaseType.WHEN_POSSIBLE; @@ -82,8 +83,8 @@ public class Part { private String detectAndSetIgnoreCase(String part) { - var matcher = IGNORE_CASE.matcher(part); - var result = part; + Matcher matcher = IGNORE_CASE.matcher(part); + String result = part; if (matcher.find()) { ignoreCase = IgnoreCaseType.ALWAYS; @@ -153,7 +154,7 @@ public class Part { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(propertyPath); + int result = ObjectUtils.nullSafeHashCode(propertyPath); result = 31 * result + ObjectUtils.nullSafeHashCode(type); result = 31 * result + ObjectUtils.nullSafeHashCode(ignoreCase); return result; @@ -197,7 +198,7 @@ public class Part { static { List allKeywords = new ArrayList<>(); - for (var type : ALL) { + for (Type type : ALL) { allKeywords.addAll(type.keywords); } ALL_KEYWORDS = Collections.unmodifiableList(allKeywords); @@ -233,7 +234,7 @@ public class Part { */ public static Part.Type fromProperty(String rawProperty) { - for (var type : ALL) { + for (Type type : ALL) { if (type.supports(rawProperty)) { return type; } @@ -260,7 +261,7 @@ public class Part { */ protected boolean supports(String property) { - for (var keyword : keywords) { + for (String keyword : keywords) { if (property.endsWith(keyword)) { return true; } @@ -287,9 +288,9 @@ public class Part { */ public String extractProperty(String part) { - var candidate = Introspector.decapitalize(part); + String candidate = Introspector.decapitalize(part); - for (var keyword : keywords) { + for (String keyword : keywords) { if (candidate.endsWith(keyword)) { return candidate.substring(0, candidate.length() - keyword.length()); } diff --git a/src/main/java/org/springframework/data/repository/query/parser/PartTree.java b/src/main/java/org/springframework/data/repository/query/parser/PartTree.java index 873169340..dac93e8f0 100644 --- a/src/main/java/org/springframework/data/repository/query/parser/PartTree.java +++ b/src/main/java/org/springframework/data/repository/query/parser/PartTree.java @@ -19,6 +19,7 @@ import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.Optional; +import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -84,7 +85,7 @@ public class PartTree implements Streamable { Assert.notNull(source, "Source must not be null"); Assert.notNull(domainClass, "Domain class must not be null"); - var matcher = PREFIX_TEMPLATE.matcher(source); + Matcher matcher = PREFIX_TEMPLATE.matcher(source); if (!matcher.find()) { this.subject = new Subject(Optional.empty()); @@ -212,7 +213,7 @@ public class PartTree implements Streamable { */ private static String[] split(String text, String keyword) { - var pattern = Pattern.compile(String.format(KEYWORD_TEMPLATE, keyword)); + Pattern pattern = Pattern.compile(String.format(KEYWORD_TEMPLATE, keyword)); return pattern.split(text); } @@ -233,7 +234,7 @@ public class PartTree implements Streamable { */ OrPart(String source, Class domainClass, boolean alwaysIgnoreCase) { - var split = split(source, "And"); + String[] split = split(source, "And"); this.children = Arrays.stream(split)// .filter(StringUtils::hasText)// @@ -294,7 +295,7 @@ public class PartTree implements Streamable { return subject.map(it -> { - var grp = LIMITED_QUERY_TEMPLATE.matcher(it); + Matcher grp = LIMITED_QUERY_TEMPLATE.matcher(it); if (!grp.find()) { return null; @@ -359,7 +360,7 @@ public class PartTree implements Streamable { public Predicate(String predicate, Class domainClass) { - var parts = split(detectAndSetAllIgnoreCase(predicate), ORDER_BY); + String[] parts = split(detectAndSetAllIgnoreCase(predicate), ORDER_BY); if (parts.length > 2) { throw new IllegalArgumentException("OrderBy must not be used more than once in a method name!"); @@ -376,7 +377,7 @@ public class PartTree implements Streamable { private String detectAndSetAllIgnoreCase(String predicate) { - var matcher = ALL_IGNORE_CASE.matcher(predicate); + Matcher matcher = ALL_IGNORE_CASE.matcher(predicate); if (matcher.find()) { alwaysIgnoreCase = true; diff --git a/src/main/java/org/springframework/data/repository/support/AnnotationAttribute.java b/src/main/java/org/springframework/data/repository/support/AnnotationAttribute.java index 3b67012fa..cb5517849 100644 --- a/src/main/java/org/springframework/data/repository/support/AnnotationAttribute.java +++ b/src/main/java/org/springframework/data/repository/support/AnnotationAttribute.java @@ -71,7 +71,7 @@ class AnnotationAttribute { public Optional getValueFrom(MethodParameter parameter) { Assert.notNull(parameter, "MethodParameter must not be null!"); - var annotation = parameter.getParameterAnnotation(annotationType); + Annotation annotation = parameter.getParameterAnnotation(annotationType); return Optional.ofNullable(annotation).map(this::getValueFrom); } @@ -85,7 +85,7 @@ class AnnotationAttribute { public Optional getValueFrom(AnnotatedElement annotatedElement) { Assert.notNull(annotatedElement, "Annotated element must not be null!"); - var annotation = annotatedElement.getAnnotation(annotationType); + Annotation annotation = annotatedElement.getAnnotation(annotationType); return Optional.ofNullable(annotation).map(it -> getValueFrom(annotation)); } diff --git a/src/main/java/org/springframework/data/repository/support/CrudRepositoryInvoker.java b/src/main/java/org/springframework/data/repository/support/CrudRepositoryInvoker.java index a5b88f2a7..2e7c38e37 100644 --- a/src/main/java/org/springframework/data/repository/support/CrudRepositoryInvoker.java +++ b/src/main/java/org/springframework/data/repository/support/CrudRepositoryInvoker.java @@ -22,6 +22,7 @@ import org.springframework.core.convert.ConversionService; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.repository.CrudRepository; +import org.springframework.data.repository.core.CrudMethods; import org.springframework.data.repository.core.RepositoryMetadata; /** @@ -54,7 +55,7 @@ class CrudRepositoryInvoker extends ReflectionRepositoryInvoker { super(repository, metadata, conversionService); - var crudMethods = metadata.getCrudMethods(); + CrudMethods crudMethods = metadata.getCrudMethods(); this.customSaveMethod = isRedeclaredMethod(crudMethods.getSaveMethod()); this.customFindOneMethod = isRedeclaredMethod(crudMethods.getFindOneMethod()); diff --git a/src/main/java/org/springframework/data/repository/support/DefaultRepositoryInvokerFactory.java b/src/main/java/org/springframework/data/repository/support/DefaultRepositoryInvokerFactory.java index 88c41f66a..e0fc003db 100644 --- a/src/main/java/org/springframework/data/repository/support/DefaultRepositoryInvokerFactory.java +++ b/src/main/java/org/springframework/data/repository/support/DefaultRepositoryInvokerFactory.java @@ -18,6 +18,7 @@ package org.springframework.data.repository.support; import static org.springframework.data.util.Optionals.*; import java.util.Map; +import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import org.springframework.core.convert.ConversionService; @@ -83,8 +84,8 @@ public class DefaultRepositoryInvokerFactory implements RepositoryInvokerFactory */ private RepositoryInvoker prepareInvokers(Class domainType) { - var information = repositories.getRepositoryInformationFor(domainType); - var repository = repositories.getRepositoryFor(domainType); + Optional information = repositories.getRepositoryInformationFor(domainType); + Optional repository = repositories.getRepositoryFor(domainType); return mapIfAllPresent(information, repository, this::createInvoker)// .orElseThrow( diff --git a/src/main/java/org/springframework/data/repository/support/DomainClassConverter.java b/src/main/java/org/springframework/data/repository/support/DomainClassConverter.java index 4e1714518..cea38ccd1 100644 --- a/src/main/java/org/springframework/data/repository/support/DomainClassConverter.java +++ b/src/main/java/org/springframework/data/repository/support/DomainClassConverter.java @@ -27,6 +27,7 @@ import org.springframework.core.convert.converter.ConditionalGenericConverter; import org.springframework.core.convert.converter.ConverterRegistry; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.core.EntityInformation; +import org.springframework.data.repository.core.RepositoryInformation; import org.springframework.data.util.Lazy; import org.springframework.lang.NonNull; import org.springframework.lang.Nullable; @@ -92,7 +93,7 @@ public class DomainClassConverter { - var repositories = new Repositories(context); + Repositories repositories = new Repositories(context); this.toEntityConverter = Optional.of(new ToEntityConverter(repositories, conversionService)); this.toIdConverter = Optional.of(new ToIdConverter(repositories, conversionService)); @@ -144,11 +145,11 @@ public class DomainClassConverter domainType = targetType.getType(); + RepositoryInvoker invoker = repositoryInvokerFactory.getInvokerFor(domainType); + RepositoryInformation information = repositories.getRequiredRepositoryInformation(domainType); - var id = conversionService.convert(source, information.getIdType()); + Object id = conversionService.convert(source, information.getIdType()); return id == null ? null : invoker.invokeFindById(id).orElse(null); } @@ -160,17 +161,17 @@ public class DomainClassConverter domainType = targetType.getType(); if (!repositories.hasRepositoryFor(domainType)) { return false; } - var repositoryInformation = repositories.getRepositoryInformationFor(domainType); + Optional repositoryInformation = repositories.getRepositoryInformationFor(domainType); return repositoryInformation.map(it -> { - var rawIdType = it.getIdType(); + Class rawIdType = it.getIdType(); return sourceType.equals(TypeDescriptor.valueOf(rawIdType)) || conversionService.canConvert(sourceType.getType(), rawIdType); @@ -214,7 +215,7 @@ public class DomainClassConverter domainType = sourceType.getType(); EntityInformation entityInformation = repositories.getEntityInformationFor(domainType); @@ -228,17 +229,17 @@ public class DomainClassConverter domainType = sourceType.getType(); if (!repositories.hasRepositoryFor(domainType)) { return false; } - var information = repositories.getRepositoryInformationFor(domainType); + Optional information = repositories.getRepositoryInformationFor(domainType); return information.map(it -> { - var rawIdType = it.getIdType(); + Class rawIdType = it.getIdType(); return targetType.equals(TypeDescriptor.valueOf(rawIdType)) || conversionService.canConvert(rawIdType, targetType.getType()); diff --git a/src/main/java/org/springframework/data/repository/support/MethodParameters.java b/src/main/java/org/springframework/data/repository/support/MethodParameters.java index fd87f065e..3314f22a0 100644 --- a/src/main/java/org/springframework/data/repository/support/MethodParameters.java +++ b/src/main/java/org/springframework/data/repository/support/MethodParameters.java @@ -62,7 +62,7 @@ class MethodParameters { Assert.notNull(method, "Method must not be null!"); this.parameters = new ArrayList<>(); - for (var i = 0; i < method.getParameterCount(); i++) { + for (int i = 0; i < method.getParameterCount(); i++) { MethodParameter parameter = new AnnotationNamingMethodParameter(method, i, namingAnnotation); parameter.initParameterNameDiscovery(discoverer); diff --git a/src/main/java/org/springframework/data/repository/support/PagingAndSortingRepositoryInvoker.java b/src/main/java/org/springframework/data/repository/support/PagingAndSortingRepositoryInvoker.java index e2b5f1dbc..f720afca6 100644 --- a/src/main/java/org/springframework/data/repository/support/PagingAndSortingRepositoryInvoker.java +++ b/src/main/java/org/springframework/data/repository/support/PagingAndSortingRepositoryInvoker.java @@ -23,6 +23,7 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.data.repository.core.CrudMethods; import org.springframework.data.repository.core.RepositoryMetadata; /** @@ -51,7 +52,7 @@ class PagingAndSortingRepositoryInvoker extends CrudRepositoryInvoker { super((CrudRepository) repository, metadata, conversionService); - var crudMethods = metadata.getCrudMethods(); + CrudMethods crudMethods = metadata.getCrudMethods(); this.repository = repository; this.customFindAll = isRedeclaredMethod(crudMethods.getFindAllMethod()); diff --git a/src/main/java/org/springframework/data/repository/support/ReflectionRepositoryInvoker.java b/src/main/java/org/springframework/data/repository/support/ReflectionRepositoryInvoker.java index 6d0802933..a126466a6 100644 --- a/src/main/java/org/springframework/data/repository/support/ReflectionRepositoryInvoker.java +++ b/src/main/java/org/springframework/data/repository/support/ReflectionRepositoryInvoker.java @@ -97,7 +97,7 @@ class ReflectionRepositoryInvoker implements RepositoryInvoker { @Override public T invokeSave(T object) { - var method = methods.getSaveMethod()// + Method method = methods.getSaveMethod()// .orElseThrow(() -> new IllegalStateException("Repository doesn't have a save-method declared!")); return invokeForNonNullResult(method, object); @@ -111,7 +111,7 @@ class ReflectionRepositoryInvoker implements RepositoryInvoker { @Override public Optional invokeFindById(Object id) { - var method = methods.getFindOneMethod()// + Method method = methods.getFindOneMethod()// .orElseThrow(() -> new IllegalStateException("Repository doesn't have a find-one-method declared!")); return returnAsOptional(invoke(method, convertId(id))); @@ -127,7 +127,7 @@ class ReflectionRepositoryInvoker implements RepositoryInvoker { Assert.notNull(id, "Identifier must not be null!"); - var method = methods.getDeleteMethod() + Method method = methods.getDeleteMethod() .orElseThrow(() -> new IllegalStateException("Repository doesn't have a delete-method declared!")); if (method.getName().endsWith("ById")) { @@ -154,19 +154,19 @@ class ReflectionRepositoryInvoker implements RepositoryInvoker { private Object[] prepareParameters(Method method, MultiValueMap rawParameters, Pageable pageable, Sort sort) { - var parameters = new MethodParameters(method, Optional.of(PARAM_ANNOTATION)).getParameters(); + List parameters = new MethodParameters(method, Optional.of(PARAM_ANNOTATION)).getParameters(); if (parameters.isEmpty()) { return new Object[0]; } - var result = new Object[parameters.size()]; - var sortToUse = pageable.getSortOr(sort); + Object[] result = new Object[parameters.size()]; + Sort sortToUse = pageable.getSortOr(sort); - for (var i = 0; i < result.length; i++) { + for (int i = 0; i < result.length; i++) { - var param = parameters.get(i); - var targetType = param.getParameterType(); + MethodParameter param = parameters.get(i); + Class targetType = param.getParameterType(); if (Pageable.class.isAssignableFrom(targetType)) { result[i] = pageable; @@ -174,13 +174,13 @@ class ReflectionRepositoryInvoker implements RepositoryInvoker { result[i] = sortToUse; } else { - var parameterName = param.getParameterName(); + String parameterName = param.getParameterName(); if (!StringUtils.hasText(parameterName)) { throw new IllegalArgumentException(String.format(NAME_NOT_FOUND, ClassUtils.getQualifiedMethodName(method))); } - var value = unwrapSingleElement(rawParameters.get(parameterName)); + Object value = unwrapSingleElement(rawParameters.get(parameterName)); result[i] = targetType.isInstance(value) ? value : convert(value, param); } @@ -250,7 +250,7 @@ class ReflectionRepositoryInvoker implements RepositoryInvoker { return id; } - var result = conversionService.convert(id, idType); + Object result = conversionService.convert(id, idType); if (result == null) { throw new IllegalStateException( @@ -262,14 +262,14 @@ class ReflectionRepositoryInvoker implements RepositoryInvoker { protected Iterable invokeFindAllReflectively(Pageable pageable) { - var method = methods.getFindAllMethod() + Method method = methods.getFindAllMethod() .orElseThrow(() -> new IllegalStateException("Repository doesn't have a find-all-method declared!")); if (method.getParameterCount() == 0) { return invokeForNonNullResult(method); } - var types = method.getParameterTypes(); + Class[] types = method.getParameterTypes(); if (Pageable.class.isAssignableFrom(types[0])) { return invokeForNonNullResult(method, pageable); @@ -280,7 +280,7 @@ class ReflectionRepositoryInvoker implements RepositoryInvoker { protected Iterable invokeFindAllReflectively(Sort sort) { - var method = methods.getFindAllMethod() + Method method = methods.getFindAllMethod() .orElseThrow(() -> new IllegalStateException("Repository doesn't have a find-all-method declared!")); if (method.getParameterCount() == 0) { diff --git a/src/main/java/org/springframework/data/repository/support/Repositories.java b/src/main/java/org/springframework/data/repository/support/Repositories.java index 31f91f24e..f72fccc0c 100644 --- a/src/main/java/org/springframework/data/repository/support/Repositories.java +++ b/src/main/java/org/springframework/data/repository/support/Repositories.java @@ -91,7 +91,7 @@ public class Repositories implements Iterable> { private void populateRepositoryFactoryInformation(ListableBeanFactory factory) { - for (var name : BeanFactoryUtils.beanNamesForTypeIncludingAncestors(factory, RepositoryFactoryInformation.class, + for (String name : BeanFactoryUtils.beanNamesForTypeIncludingAncestors(factory, RepositoryFactoryInformation.class, false, false)) { cacheRepositoryFactory(name); } @@ -100,19 +100,19 @@ public class Repositories implements Iterable> { @SuppressWarnings("rawtypes") private synchronized void cacheRepositoryFactory(String name) { - var repositoryFactoryInformation = beanFactory.get().getBean(name, + RepositoryFactoryInformation repositoryFactoryInformation = beanFactory.get().getBean(name, RepositoryFactoryInformation.class); - var domainType = ClassUtils + Class domainType = ClassUtils .getUserClass(repositoryFactoryInformation.getRepositoryInformation().getDomainType()); - var information = repositoryFactoryInformation.getRepositoryInformation(); - var alternativeDomainTypes = information.getAlternativeDomainTypes(); + RepositoryInformation information = repositoryFactoryInformation.getRepositoryInformation(); + Set> alternativeDomainTypes = information.getAlternativeDomainTypes(); Set> typesToRegister = new HashSet<>(alternativeDomainTypes.size() + 1); typesToRegister.add(domainType); typesToRegister.addAll(alternativeDomainTypes); - for (var type : typesToRegister) { + for (Class type : typesToRegister) { cacheFirstOrPrimary(type, repositoryFactoryInformation, BeanFactoryUtils.transformedBeanName(name)); } } @@ -128,7 +128,7 @@ public class Repositories implements Iterable> { Assert.notNull(domainClass, DOMAIN_TYPE_MUST_NOT_BE_NULL); - var userClass = domainTypeMapping.get(ProxyUtils.getUserClass(domainClass)); + Class userClass = domainTypeMapping.get(ProxyUtils.getUserClass(domainClass)); return repositoryFactoryInfos.containsKey(userClass); } @@ -144,8 +144,8 @@ public class Repositories implements Iterable> { Assert.notNull(domainClass, DOMAIN_TYPE_MUST_NOT_BE_NULL); - var userClass = domainTypeMapping.get(ProxyUtils.getUserClass(domainClass)); - var repositoryBeanName = Optional.ofNullable(repositoryBeanNames.get(userClass)); + Class userClass = domainTypeMapping.get(ProxyUtils.getUserClass(domainClass)); + Optional repositoryBeanName = Optional.ofNullable(repositoryBeanNames.get(userClass)); return beanFactory.flatMap(it -> repositoryBeanName.map(it::getBean)); } @@ -163,8 +163,8 @@ public class Repositories implements Iterable> { Assert.notNull(domainClass, DOMAIN_TYPE_MUST_NOT_BE_NULL); - var userType = domainTypeMapping.get(ProxyUtils.getUserClass(domainClass)); - var repositoryInfo = repositoryFactoryInfos.get(userType); + Class userType = domainTypeMapping.get(ProxyUtils.getUserClass(domainClass)); + RepositoryFactoryInformation repositoryInfo = repositoryFactoryInfos.get(userType); if (repositoryInfo != null) { return repositoryInfo; @@ -206,7 +206,7 @@ public class Repositories implements Iterable> { Assert.notNull(domainClass, DOMAIN_TYPE_MUST_NOT_BE_NULL); - var information = getRepositoryFactoryInfoFor(domainClass); + RepositoryFactoryInformation information = getRepositoryFactoryInfoFor(domainClass); return information == EMPTY_REPOSITORY_FACTORY_INFO ? Optional.empty() : Optional.of(information.getRepositoryInformation()); } @@ -289,7 +289,7 @@ public class Repositories implements Iterable> { if (repositoryBeanNames.containsKey(type)) { - var factoryToUse = this.beanFactory.map(it -> { + Optional factoryToUse = this.beanFactory.map(it -> { if (it instanceof ConfigurableListableBeanFactory) { return (ConfigurableListableBeanFactory) it; @@ -302,7 +302,7 @@ public class Repositories implements Iterable> { return null; }); - var presentAndPrimary = factoryToUse.map(it -> it.getMergedBeanDefinition(name)) // + Boolean presentAndPrimary = factoryToUse.map(it -> it.getMergedBeanDefinition(name)) // .map(BeanDefinition::isPrimary) // .orElse(false); @@ -327,13 +327,13 @@ public class Repositories implements Iterable> { Assert.notNull(domainType, "Domain type must not be null!"); - var declaredTypes = repositoryBeanNames.keySet(); + Set> declaredTypes = repositoryBeanNames.keySet(); if (declaredTypes.contains(domainType)) { return domainType; } - for (var declaredType : declaredTypes) { + for (Class declaredType : declaredTypes) { if (declaredType.isAssignableFrom(domainType)) { return declaredType; } diff --git a/src/main/java/org/springframework/data/repository/util/ClassUtils.java b/src/main/java/org/springframework/data/repository/util/ClassUtils.java index 973e35c06..20566d316 100644 --- a/src/main/java/org/springframework/data/repository/util/ClassUtils.java +++ b/src/main/java/org/springframework/data/repository/util/ClassUtils.java @@ -72,7 +72,7 @@ public abstract class ClassUtils { public static void ifPresent(String className, @Nullable ClassLoader classLoader, Consumer> action) { try { - var theClass = org.springframework.util.ClassUtils.forName(className, classLoader); + Class theClass = org.springframework.util.ClassUtils.forName(className, classLoader); action.accept(theClass); } catch (IllegalAccessError err) { throw new IllegalStateException( @@ -112,8 +112,8 @@ public abstract class ClassUtils { */ public static int getNumberOfOccurences(Method method, Class type) { - var result = 0; - for (var clazz : method.getParameterTypes()) { + int result = 0; + for (Class clazz : method.getParameterTypes()) { if (type.equals(clazz)) { result++; } @@ -134,7 +134,7 @@ public abstract class ClassUtils { Assert.notNull(method, "Method must not be null!"); Assert.notEmpty(types, "Types must not be null or empty!"); - var returnType = getEffectivelyReturnedTypeFrom(method); + TypeInformation returnType = getEffectivelyReturnedTypeFrom(method); Arrays.stream(types)// .filter(it -> it.isAssignableFrom(returnType.getType()))// diff --git a/src/main/java/org/springframework/data/repository/util/QueryExecutionConverters.java b/src/main/java/org/springframework/data/repository/util/QueryExecutionConverters.java index eb86e0c23..8d3f3dd48 100644 --- a/src/main/java/org/springframework/data/repository/util/QueryExecutionConverters.java +++ b/src/main/java/org/springframework/data/repository/util/QueryExecutionConverters.java @@ -125,7 +125,7 @@ public abstract class QueryExecutionConverters { return supportsCache.computeIfAbsent(type, key -> { - for (var candidate : WRAPPER_TYPES) { + for (WrapperType candidate : WRAPPER_TYPES) { if (candidate.getType().isAssignableFrom(key)) { return true; } @@ -149,7 +149,7 @@ public abstract class QueryExecutionConverters { return NullableWrapperConverters.supportsUnwrapping(type); } - for (var candidate : UNWRAPPER_TYPES) { + for (WrapperType candidate : UNWRAPPER_TYPES) { if (candidate.getType().isAssignableFrom(type)) { return true; } @@ -164,7 +164,7 @@ public abstract class QueryExecutionConverters { return NullableWrapperConverters.isSingleValue(type); } - for (var candidate : WRAPPER_TYPES) { + for (WrapperType candidate : WRAPPER_TYPES) { if (candidate.getType().isAssignableFrom(type)) { return candidate.isSingleValue(); } @@ -220,9 +220,9 @@ public abstract class QueryExecutionConverters { return source; } - for (var converter : UNWRAPPERS) { + for (Converter converter : UNWRAPPERS) { - var result = converter.convert(source); + Object result = converter.convert(source); if (result != source) { return result; @@ -242,9 +242,9 @@ public abstract class QueryExecutionConverters { Assert.notNull(type, "type must not be null"); - var rawType = type.getType(); + Class rawType = type.getType(); - var needToUnwrap = type.isCollectionLike() // + boolean needToUnwrap = type.isCollectionLike() // || Slice.class.isAssignableFrom(rawType) // || GeoResults.class.isAssignableFrom(rawType) // || rawType.isArray() // @@ -322,8 +322,8 @@ public abstract class QueryExecutionConverters { return null; } - var wrapper = (NullableWrapper) source; - var value = wrapper.getValue(); + NullableWrapper wrapper = (NullableWrapper) source; + Object value = wrapper.getValue(); // TODO: Add Recursive conversion once we move to Spring 4 return value == null ? nullValue : wrap(value); @@ -496,7 +496,7 @@ public abstract class QueryExecutionConverters { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(type); + int result = ObjectUtils.nullSafeHashCode(type); result = 31 * result + ObjectUtils.nullSafeHashCode(cardinality); return result; } diff --git a/src/main/java/org/springframework/data/repository/util/ReactiveWrapperConverters.java b/src/main/java/org/springframework/data/repository/util/ReactiveWrapperConverters.java index 5aaf3ffe2..b28039821 100644 --- a/src/main/java/org/springframework/data/repository/util/ReactiveWrapperConverters.java +++ b/src/main/java/org/springframework/data/repository/util/ReactiveWrapperConverters.java @@ -28,6 +28,7 @@ import java.util.function.Function; import org.reactivestreams.Publisher; +import org.springframework.core.ReactiveAdapter; import org.springframework.core.ReactiveAdapterRegistry; import org.springframework.core.convert.ConversionService; import org.springframework.core.convert.TypeDescriptor; @@ -146,7 +147,7 @@ public abstract class ReactiveWrapperConverters { Assert.notNull(type, "type must not be null"); - var rawType = type.getType(); + Class rawType = type.getType(); return supports(rawType) ? unwrapWrapperTypes(type.getRequiredComponentType()) : type; } @@ -520,10 +521,10 @@ public abstract class ReactiveWrapperConverters { public Converter getConverter(Class targetType) { return source -> { - var publisher = source instanceof Publisher ? (Publisher) source + Publisher publisher = source instanceof Publisher ? (Publisher) source : RegistryHolder.REACTIVE_ADAPTER_REGISTRY.getAdapter(Publisher.class, source).toPublisher(source); - var adapter = RegistryHolder.REACTIVE_ADAPTER_REGISTRY.getAdapter(targetType); + ReactiveAdapter adapter = RegistryHolder.REACTIVE_ADAPTER_REGISTRY.getAdapter(targetType); return (T) adapter.fromPublisher(publisher); }; diff --git a/src/main/java/org/springframework/data/repository/util/ReactiveWrappers.java b/src/main/java/org/springframework/data/repository/util/ReactiveWrappers.java index a67cfe5f8..477aa2db8 100644 --- a/src/main/java/org/springframework/data/repository/util/ReactiveWrappers.java +++ b/src/main/java/org/springframework/data/repository/util/ReactiveWrappers.java @@ -19,11 +19,11 @@ import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; import java.util.Map; import java.util.Optional; +import org.springframework.core.ReactiveAdapter; +import org.springframework.core.ReactiveAdapterRegistry; import org.springframework.core.ReactiveTypeDescriptor; import org.springframework.data.util.ProxyUtils; import org.springframework.data.util.ReflectionUtils; @@ -212,13 +212,13 @@ public abstract class ReactiveWrappers { Assert.notNull(type, "Wrapper type must not be null!"); - var adapterRegistry = ReactiveWrapperConverters.RegistryHolder.REACTIVE_ADAPTER_REGISTRY; + ReactiveAdapterRegistry adapterRegistry = ReactiveWrapperConverters.RegistryHolder.REACTIVE_ADAPTER_REGISTRY; if (adapterRegistry == null) { return Optional.empty(); } - var adapter = adapterRegistry.getAdapter(type); + ReactiveAdapter adapter = adapterRegistry.getAdapter(type); if (adapter != null && adapter.getDescriptor().isDeferred()) { return Optional.of(adapter.getDescriptor()); } diff --git a/src/main/java/org/springframework/data/spel/EvaluationContextExtensionInformation.java b/src/main/java/org/springframework/data/spel/EvaluationContextExtensionInformation.java index aa7e6df63..224f357a6 100644 --- a/src/main/java/org/springframework/data/spel/EvaluationContextExtensionInformation.java +++ b/src/main/java/org/springframework/data/spel/EvaluationContextExtensionInformation.java @@ -17,6 +17,7 @@ package org.springframework.data.spel; import static org.springframework.data.util.StreamUtils.*; +import java.beans.PropertyDescriptor; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Modifier; @@ -73,7 +74,7 @@ class EvaluationContextExtensionInformation { Assert.notNull(type, "Extension type must not be null!"); - var rootObjectType = org.springframework.data.util.ReflectionUtils.findRequiredMethod(type, "getRootObject") + Class rootObjectType = org.springframework.data.util.ReflectionUtils.findRequiredMethod(type, "getRootObject") .getReturnType(); this.rootObjectInformation = Optional @@ -216,8 +217,8 @@ class EvaluationContextExtensionInformation { return false; } - var methodStatic = Modifier.isStatic(method.getModifiers()); - var staticMatch = staticOnly ? methodStatic : !methodStatic; + boolean methodStatic = Modifier.isStatic(method.getModifiers()); + boolean staticMatch = staticOnly ? methodStatic : !methodStatic; return Modifier.isPublic(method.getModifiers()) && staticMatch; } @@ -225,8 +226,8 @@ class EvaluationContextExtensionInformation { @Override public boolean matches(Field field) { - var fieldStatic = Modifier.isStatic(field.getModifiers()); - var staticMatch = staticOnly ? fieldStatic : !fieldStatic; + boolean fieldStatic = Modifier.isStatic(field.getModifiers()); + boolean staticMatch = staticOnly ? fieldStatic : !fieldStatic; return Modifier.isPublic(field.getModifiers()) && staticMatch; } @@ -265,7 +266,7 @@ class EvaluationContextExtensionInformation { return; } - var descriptors = Streamable.of(BeanUtils.getPropertyDescriptors(type)); + Streamable descriptors = Streamable.of(BeanUtils.getPropertyDescriptors(type)); ReflectionUtils.doWithMethods(type, method -> { @@ -334,7 +335,7 @@ class EvaluationContextExtensionInformation { return true; } - for (var field : fields) { + for (Field field : fields) { if (field.getName().equals(dependency.getSymbol())) { return true; } diff --git a/src/main/java/org/springframework/data/spel/ExpressionDependencies.java b/src/main/java/org/springframework/data/spel/ExpressionDependencies.java index 394582824..7e02d86bd 100644 --- a/src/main/java/org/springframework/data/spel/ExpressionDependencies.java +++ b/src/main/java/org/springframework/data/spel/ExpressionDependencies.java @@ -138,7 +138,7 @@ public class ExpressionDependencies implements Streamable extensions) { - var context = new StandardEvaluationContext(); + StandardEvaluationContext context = new StandardEvaluationContext(); if (beanFactory != null) { context.setBeanResolver(new BeanFactoryResolver(beanFactory)); } - var accessor = new ExtensionAwarePropertyAccessor(extensions); + ExtensionAwarePropertyAccessor accessor = new ExtensionAwarePropertyAccessor(extensions); context.addPropertyAccessor(accessor); context.addPropertyAccessor(new ReflectivePropertyAccessor()); @@ -302,7 +302,7 @@ public class ExtensionAwareEvaluationContextProvider implements EvaluationContex */ private TypedValue lookupPropertyFrom(EvaluationContextExtensionAdapter extension, String name) { - var value = extension.getProperties().get(name); + Object value = extension.getProperties().get(name); if (!(value instanceof Function function)) { return new TypedValue(value); @@ -371,9 +371,11 @@ public class ExtensionAwareEvaluationContextProvider implements EvaluationContex Assert.notNull(extension, "Extension must not be null!"); Assert.notNull(information, "Extension information must not be null!"); - var target = Optional.ofNullable(extension.getRootObject()); - var extensionTypeInformation = information.getExtensionTypeInformation(); - var rootObjectInformation = information.getRootObjectInformation(target); + Optional target = Optional.ofNullable(extension.getRootObject()); + EvaluationContextExtensionInformation.ExtensionTypeInformation extensionTypeInformation = information + .getExtensionTypeInformation(); + EvaluationContextExtensionInformation.RootObjectInformation rootObjectInformation = information + .getRootObjectInformation(target); functions.addAll(extension.getFunctions()); functions.addAll(rootObjectInformation.getFunctions(target)); diff --git a/src/main/java/org/springframework/data/spel/Functions.java b/src/main/java/org/springframework/data/spel/Functions.java index ffe1b91f6..ac41a71a3 100644 --- a/src/main/java/org/springframework/data/spel/Functions.java +++ b/src/main/java/org/springframework/data/spel/Functions.java @@ -20,6 +20,7 @@ import java.util.List; import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; +import java.util.stream.Stream; import org.springframework.core.convert.TypeDescriptor; import org.springframework.data.spel.spi.Function; @@ -46,7 +47,7 @@ class Functions { newFunctions.forEach((n, f) -> { - var currentElements = get(n); + List currentElements = get(n); if (!contains(currentElements, f)) { functions.add(n, f); @@ -58,7 +59,7 @@ class Functions { newFunctions.forEach((k, list) -> { - var currentElements = get(k); + List currentElements = get(k); list.stream() // .filter(f -> !contains(currentElements, f)) // @@ -82,10 +83,10 @@ class Functions { */ Optional get(String name, List argumentTypes) { - var candidates = get(name).stream() // + Stream candidates = get(name).stream() // .filter(f -> f.supports(argumentTypes)); - var collect = candidates.collect(Collectors.toList()); + List collect = candidates.collect(Collectors.toList()); return bestMatch(collect, argumentTypes); } @@ -104,7 +105,7 @@ class Functions { return Optional.of(candidates.get(0)); } - var exactMatch = candidates.stream().filter(f -> f.supportsExact(argumentTypes)).findFirst(); + Optional exactMatch = candidates.stream().filter(f -> f.supportsExact(argumentTypes)).findFirst(); if (!exactMatch.isPresent()) { throw new IllegalStateException(createErrorMessage(candidates, argumentTypes)); @@ -115,7 +116,7 @@ class Functions { private static String createErrorMessage(List candidates, List argumentTypes) { - var argumentTypeString = argumentTypes.stream()// + String argumentTypeString = argumentTypes.stream()// .map(TypeDescriptor::getName)// .collect(Collectors.joining(",")); diff --git a/src/main/java/org/springframework/data/spel/ReactiveExtensionAwareEvaluationContextProvider.java b/src/main/java/org/springframework/data/spel/ReactiveExtensionAwareEvaluationContextProvider.java index fadd26b21..67574775d 100644 --- a/src/main/java/org/springframework/data/spel/ReactiveExtensionAwareEvaluationContextProvider.java +++ b/src/main/java/org/springframework/data/spel/ReactiveExtensionAwareEvaluationContextProvider.java @@ -98,13 +98,13 @@ public class ReactiveExtensionAwareEvaluationContextProvider implements Reactive private Mono> getExtensions( Predicate extensionFilter) { - var extensions = evaluationContextProvider.getExtensions(); + Collection extensions = evaluationContextProvider.getExtensions(); return Flux.fromIterable(extensions).concatMap(it -> { if (it instanceof EvaluationContextExtension extension) { - var information = evaluationContextProvider.getOrCreateInformation(extension); + EvaluationContextExtensionInformation information = evaluationContextProvider.getOrCreateInformation(extension); if (extensionFilter.test(information)) { return Mono.just(extension); @@ -115,13 +115,13 @@ public class ReactiveExtensionAwareEvaluationContextProvider implements Reactive if (it instanceof ReactiveEvaluationContextExtension extension) { - var actualType = getExtensionType(it); + ResolvableType actualType = getExtensionType(it); if (actualType.equals(ResolvableType.NONE) || actualType.isAssignableFrom(GENERIC_EXTENSION_TYPE)) { return extension.getExtension(); } - var information = evaluationContextProvider + EvaluationContextExtensionInformation information = evaluationContextProvider .getOrCreateInformation((Class) actualType.getRawClass()); if (extensionFilter.test(information)) { diff --git a/src/main/java/org/springframework/data/spel/spi/Function.java b/src/main/java/org/springframework/data/spel/spi/Function.java index 17747dafa..7ddcf066f 100644 --- a/src/main/java/org/springframework/data/spel/spi/Function.java +++ b/src/main/java/org/springframework/data/spel/spi/Function.java @@ -82,23 +82,23 @@ public class Function { return method.invoke(target, arguments); } - var types = method.getParameterTypes(); - var tailType = types[types.length - 1]; + Class[] types = method.getParameterTypes(); + Class tailType = types[types.length - 1]; if (tailType.isArray()) { List argumentsToUse = new ArrayList<>(types.length); // Add all arguments up until the last one - for (var i = 0; i < types.length - 1; i++) { + for (int i = 0; i < types.length - 1; i++) { argumentsToUse.add(arguments[i]); } // Gather all other arguments into an array of the tail type - var varargs = (Object[]) Array.newInstance(tailType.getComponentType(), arguments.length - types.length + 1); - var count = 0; + Object[] varargs = (Object[]) Array.newInstance(tailType.getComponentType(), arguments.length - types.length + 1); + int count = 0; - for (var i = types.length - 1; i < arguments.length; i++) { + for (int i = types.length - 1; i < arguments.length; i++) { varargs[count++] = arguments[i]; } diff --git a/src/main/java/org/springframework/data/support/ExampleMatcherAccessor.java b/src/main/java/org/springframework/data/support/ExampleMatcherAccessor.java index 21cc2d20e..ca9e7eaf3 100644 --- a/src/main/java/org/springframework/data/support/ExampleMatcherAccessor.java +++ b/src/main/java/org/springframework/data/support/ExampleMatcherAccessor.java @@ -86,8 +86,8 @@ public class ExampleMatcherAccessor { return matcher.getDefaultStringMatcher(); } - var specifier = getPropertySpecifier(path); - var stringMatcher = specifier.getStringMatcher(); + PropertySpecifier specifier = getPropertySpecifier(path); + ExampleMatcher.StringMatcher stringMatcher = specifier.getStringMatcher(); return stringMatcher != null ? stringMatcher : matcher.getDefaultStringMatcher(); } @@ -137,8 +137,8 @@ public class ExampleMatcherAccessor { return matcher.isIgnoreCaseEnabled(); } - var specifier = getPropertySpecifier(path); - var ignoreCase = specifier.getIgnoreCase(); + PropertySpecifier specifier = getPropertySpecifier(path); + Boolean ignoreCase = specifier.getIgnoreCase(); return ignoreCase != null ? ignoreCase : matcher.isIgnoreCaseEnabled(); } diff --git a/src/main/java/org/springframework/data/transaction/ChainedTransactionManager.java b/src/main/java/org/springframework/data/transaction/ChainedTransactionManager.java index 9503058ca..da9e33ef6 100644 --- a/src/main/java/org/springframework/data/transaction/ChainedTransactionManager.java +++ b/src/main/java/org/springframework/data/transaction/ChainedTransactionManager.java @@ -21,6 +21,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -103,7 +104,7 @@ public class ChainedTransactionManager implements PlatformTransactionManager { public MultiTransactionStatus getTransaction(@Nullable TransactionDefinition definition) throws TransactionException { - var mts = new MultiTransactionStatus(transactionManagers.get(0)); + MultiTransactionStatus mts = new MultiTransactionStatus(transactionManagers.get(0)); if (definition == null) { return mts; @@ -116,15 +117,15 @@ public class ChainedTransactionManager implements PlatformTransactionManager { try { - for (var transactionManager : transactionManagers) { + for (PlatformTransactionManager transactionManager : transactionManagers) { mts.registerTransactionManager(definition, transactionManager); } } catch (Exception ex) { - var transactionStatuses = mts.getTransactionStatuses(); + Map transactionStatuses = mts.getTransactionStatuses(); - for (var transactionManager : transactionManagers) { + for (PlatformTransactionManager transactionManager : transactionManagers) { try { if (transactionStatuses.get(transactionManager) != null) { transactionManager.rollback(transactionStatuses.get(transactionManager)); @@ -146,13 +147,13 @@ public class ChainedTransactionManager implements PlatformTransactionManager { public void commit(TransactionStatus status) throws TransactionException { - var multiTransactionStatus = (MultiTransactionStatus) status; + MultiTransactionStatus multiTransactionStatus = (MultiTransactionStatus) status; - var commit = true; + boolean commit = true; Exception commitException = null; PlatformTransactionManager commitExceptionTransactionManager = null; - for (var transactionManager : reverse(transactionManagers)) { + for (PlatformTransactionManager transactionManager : reverse(transactionManagers)) { if (commit) { @@ -181,8 +182,8 @@ public class ChainedTransactionManager implements PlatformTransactionManager { } if (commitException != null) { - var firstTransactionManagerFailed = commitExceptionTransactionManager == getLastTransactionManager(); - var transactionState = firstTransactionManagerFailed ? HeuristicCompletionException.STATE_ROLLED_BACK + boolean firstTransactionManagerFailed = commitExceptionTransactionManager == getLastTransactionManager(); + int transactionState = firstTransactionManagerFailed ? HeuristicCompletionException.STATE_ROLLED_BACK : HeuristicCompletionException.STATE_MIXED; throw new HeuristicCompletionException(transactionState, commitException); } @@ -193,9 +194,9 @@ public class ChainedTransactionManager implements PlatformTransactionManager { Exception rollbackException = null; PlatformTransactionManager rollbackExceptionTransactionManager = null; - var multiTransactionStatus = (MultiTransactionStatus) status; + MultiTransactionStatus multiTransactionStatus = (MultiTransactionStatus) status; - for (var transactionManager : reverse(transactionManagers)) { + for (PlatformTransactionManager transactionManager : reverse(transactionManagers)) { try { multiTransactionStatus.rollback(transactionManager); } catch (Exception ex) { diff --git a/src/main/java/org/springframework/data/transaction/MultiTransactionStatus.java b/src/main/java/org/springframework/data/transaction/MultiTransactionStatus.java index aa73cb773..8c84ba092 100644 --- a/src/main/java/org/springframework/data/transaction/MultiTransactionStatus.java +++ b/src/main/java/org/springframework/data/transaction/MultiTransactionStatus.java @@ -70,7 +70,7 @@ class MultiTransactionStatus implements TransactionStatus { } public void commit(PlatformTransactionManager transactionManager) { - var transactionStatus = getTransactionStatus(transactionManager); + TransactionStatus transactionStatus = getTransactionStatus(transactionManager); transactionManager.commit(transactionStatus); } @@ -100,23 +100,23 @@ class MultiTransactionStatus implements TransactionStatus { } public void setRollbackOnly() { - for (var ts : transactionStatuses.values()) { + for (TransactionStatus ts : transactionStatuses.values()) { ts.setRollbackOnly(); } } public Object createSavepoint() throws TransactionException { - var savePoints = new SavePoints(); + SavePoints savePoints = new SavePoints(); - for (var transactionStatus : transactionStatuses.values()) { + for (TransactionStatus transactionStatus : transactionStatuses.values()) { savePoints.save(transactionStatus); } return savePoints; } public void rollbackToSavepoint(Object savepoint) throws TransactionException { - var savePoints = (SavePoints) savepoint; + SavePoints savePoints = (SavePoints) savepoint; savePoints.rollback(); } @@ -125,7 +125,7 @@ class MultiTransactionStatus implements TransactionStatus { } public void flush() { - for (var transactionStatus : transactionStatuses.values()) { + for (TransactionStatus transactionStatus : transactionStatuses.values()) { transactionStatus.flush(); } } @@ -149,12 +149,12 @@ class MultiTransactionStatus implements TransactionStatus { } private void save(TransactionStatus transactionStatus) { - var savepoint = transactionStatus.createSavepoint(); + Object savepoint = transactionStatus.createSavepoint(); addSavePoint(transactionStatus, savepoint); } public void rollback() { - for (var transactionStatus : savepoints.keySet()) { + for (TransactionStatus transactionStatus : savepoints.keySet()) { transactionStatus.rollbackToSavepoint(savepointFor(transactionStatus)); } } @@ -164,7 +164,7 @@ class MultiTransactionStatus implements TransactionStatus { } public void release() { - for (var transactionStatus : savepoints.keySet()) { + for (TransactionStatus transactionStatus : savepoints.keySet()) { transactionStatus.releaseSavepoint(savepointFor(transactionStatus)); } } diff --git a/src/main/java/org/springframework/data/util/AnnotatedTypeScanner.java b/src/main/java/org/springframework/data/util/AnnotatedTypeScanner.java index 0d205fab0..dbb6ace0f 100644 --- a/src/main/java/org/springframework/data/util/AnnotatedTypeScanner.java +++ b/src/main/java/org/springframework/data/util/AnnotatedTypeScanner.java @@ -21,6 +21,7 @@ import java.util.HashSet; import java.util.Set; import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition; +import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.EnvironmentAware; import org.springframework.context.ResourceLoaderAware; import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider; @@ -93,20 +94,20 @@ public class AnnotatedTypeScanner implements ResourceLoaderAware, EnvironmentAwa provider.setEnvironment(environment); } - for (var annotationType : annotationTypess) { + for (Class annotationType : annotationTypess) { provider.addIncludeFilter(new AnnotationTypeFilter(annotationType, true, considerInterfaces)); } Set> types = new HashSet<>(); - var loader = resourceLoader; - var classLoader = loader == null ? null : loader.getClassLoader(); + ResourceLoader loader = resourceLoader; + ClassLoader classLoader = loader == null ? null : loader.getClassLoader(); - for (var basePackage : basePackages) { + for (String basePackage : basePackages) { - for (var definition : provider.findCandidateComponents(basePackage)) { + for (BeanDefinition definition : provider.findCandidateComponents(basePackage)) { - var beanClassName = definition.getBeanClassName(); + String beanClassName = definition.getBeanClassName(); if (beanClassName == null) { throw new IllegalStateException( diff --git a/src/main/java/org/springframework/data/util/AnnotationDetectionFieldCallback.java b/src/main/java/org/springframework/data/util/AnnotationDetectionFieldCallback.java index 0ced26b80..6e03568a8 100755 --- a/src/main/java/org/springframework/data/util/AnnotationDetectionFieldCallback.java +++ b/src/main/java/org/springframework/data/util/AnnotationDetectionFieldCallback.java @@ -78,7 +78,7 @@ public class AnnotationDetectionFieldCallback implements FieldCallback { */ public Field getRequiredField() { - var field = this.field; + Field field = this.field; if (field == null) { throw new IllegalStateException(String.format("No field found for annotation %s!", annotationType)); @@ -95,7 +95,7 @@ public class AnnotationDetectionFieldCallback implements FieldCallback { @Nullable public Class getType() { - var field = this.field; + Field field = this.field; return field == null ? null : field.getType(); } @@ -122,7 +122,7 @@ public class AnnotationDetectionFieldCallback implements FieldCallback { Assert.notNull(source, "Source object must not be null!"); - var field = this.field; + Field field = this.field; if (field == null) { return null; diff --git a/src/main/java/org/springframework/data/util/AnnotationDetectionMethodCallback.java b/src/main/java/org/springframework/data/util/AnnotationDetectionMethodCallback.java index d1d52c2e9..4bf4aa04e 100644 --- a/src/main/java/org/springframework/data/util/AnnotationDetectionMethodCallback.java +++ b/src/main/java/org/springframework/data/util/AnnotationDetectionMethodCallback.java @@ -80,7 +80,7 @@ public class AnnotationDetectionMethodCallback implements */ public Method getRequiredMethod() { - var method = this.foundMethod; + Method method = this.foundMethod; if (method == null) { throw new IllegalStateException(String.format("No method with annotation %s found!", annotationType)); @@ -113,7 +113,7 @@ public class AnnotationDetectionMethodCallback implements return; } - var foundAnnotation = AnnotatedElementUtils.findMergedAnnotation(method, annotationType); + A foundAnnotation = AnnotatedElementUtils.findMergedAnnotation(method, annotationType); if (foundAnnotation != null) { diff --git a/src/main/java/org/springframework/data/util/BeanLookup.java b/src/main/java/org/springframework/data/util/BeanLookup.java index 222825b13..4f22225c0 100644 --- a/src/main/java/org/springframework/data/util/BeanLookup.java +++ b/src/main/java/org/springframework/data/util/BeanLookup.java @@ -15,6 +15,8 @@ */ package org.springframework.data.util; +import java.util.Map; + import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.ListableBeanFactory; import org.springframework.beans.factory.NoUniqueBeanDefinitionException; @@ -61,7 +63,7 @@ public abstract class BeanLookup { @Nullable private static T lookupBean(Class type, ListableBeanFactory beanFactory) { - var names = beanFactory.getBeansOfType(type, false, false); + Map names = beanFactory.getBeansOfType(type, false, false); switch (names.size()) { diff --git a/src/main/java/org/springframework/data/util/ClassTypeInformation.java b/src/main/java/org/springframework/data/util/ClassTypeInformation.java index 433a0b0a7..404b9be04 100644 --- a/src/main/java/org/springframework/data/util/ClassTypeInformation.java +++ b/src/main/java/org/springframework/data/util/ClassTypeInformation.java @@ -111,17 +111,17 @@ public class ClassTypeInformation extends TypeDiscoverer { visited.add(type); } - var source = GenericTypeResolver.getTypeVariableMap(type); + Map source = GenericTypeResolver.getTypeVariableMap(type); Map, Type> map = new HashMap<>(source.size()); - for (var entry : source.entrySet()) { + for (Map.Entry entry : source.entrySet()) { - var value = entry.getValue(); + Type value = entry.getValue(); map.put(entry.getKey(), entry.getValue()); if (value instanceof Class) { - for (var nestedEntry : getTypeVariableMap((Class) value, visited).entrySet()) { + for (Map.Entry, Type> nestedEntry : getTypeVariableMap((Class) value, visited).entrySet()) { if (!map.containsKey(nestedEntry.getKey())) { map.put(nestedEntry.getKey(), nestedEntry.getValue()); } diff --git a/src/main/java/org/springframework/data/util/DirectFieldAccessFallbackBeanWrapper.java b/src/main/java/org/springframework/data/util/DirectFieldAccessFallbackBeanWrapper.java index dca453bc4..9c8df8f9b 100644 --- a/src/main/java/org/springframework/data/util/DirectFieldAccessFallbackBeanWrapper.java +++ b/src/main/java/org/springframework/data/util/DirectFieldAccessFallbackBeanWrapper.java @@ -17,6 +17,8 @@ package org.springframework.data.util; import static org.springframework.util.ReflectionUtils.*; +import java.lang.reflect.Field; + import org.springframework.beans.BeanWrapperImpl; import org.springframework.beans.NotReadablePropertyException; import org.springframework.beans.NotWritablePropertyException; @@ -46,7 +48,7 @@ public class DirectFieldAccessFallbackBeanWrapper extends BeanWrapperImpl { return super.getPropertyValue(propertyName); } catch (NotReadablePropertyException e) { - var field = findField(getWrappedClass(), propertyName); + Field field = findField(getWrappedClass(), propertyName); if (field == null) { throw new NotReadablePropertyException(getWrappedClass(), propertyName, @@ -65,7 +67,7 @@ public class DirectFieldAccessFallbackBeanWrapper extends BeanWrapperImpl { super.setPropertyValue(propertyName, value); } catch (NotWritablePropertyException e) { - var field = findField(getWrappedClass(), propertyName); + Field field = findField(getWrappedClass(), propertyName); if (field == null) { throw new NotWritablePropertyException(getWrappedClass(), propertyName, diff --git a/src/main/java/org/springframework/data/util/GenericArrayTypeInformation.java b/src/main/java/org/springframework/data/util/GenericArrayTypeInformation.java index 51a2ab1f9..4b0532b05 100644 --- a/src/main/java/org/springframework/data/util/GenericArrayTypeInformation.java +++ b/src/main/java/org/springframework/data/util/GenericArrayTypeInformation.java @@ -17,6 +17,7 @@ package org.springframework.data.util; import java.lang.reflect.Array; import java.lang.reflect.GenericArrayType; +import java.lang.reflect.Type; import org.springframework.lang.NonNull; @@ -52,7 +53,7 @@ class GenericArrayTypeInformation extends ParentTypeAwareTypeInformation { @NonNull protected TypeInformation doGetComponentType() { - var componentType = type.getGenericComponentType(); + Type componentType = type.getGenericComponentType(); return createInfo(componentType); } diff --git a/src/main/java/org/springframework/data/util/KotlinReflectionUtils.java b/src/main/java/org/springframework/data/util/KotlinReflectionUtils.java index 06dd735a2..1383592f4 100644 --- a/src/main/java/org/springframework/data/util/KotlinReflectionUtils.java +++ b/src/main/java/org/springframework/data/util/KotlinReflectionUtils.java @@ -17,9 +17,11 @@ package org.springframework.data.util; import kotlin.jvm.JvmClassMappingKt; import kotlin.reflect.KCallable; +import kotlin.reflect.KClass; import kotlin.reflect.KFunction; import kotlin.reflect.KMutableProperty; import kotlin.reflect.KProperty; +import kotlin.reflect.KType; import kotlin.reflect.jvm.KTypesJvm; import kotlin.reflect.jvm.ReflectJvmMapping; @@ -76,7 +78,7 @@ public final class KotlinReflectionUtils { return false; } - var kotlinClass = JvmClassMappingKt.getKotlinClass(type); + KClass kotlinClass = JvmClassMappingKt.getKotlinClass(type); return kotlinClass.isData(); } @@ -90,7 +92,7 @@ public final class KotlinReflectionUtils { @Nullable public static KFunction findKotlinFunction(Method method) { - var kotlinFunction = ReflectJvmMapping.getKotlinFunction(method); + KFunction kotlinFunction = ReflectJvmMapping.getKotlinFunction(method); // Fallback to own lookup because there's no public Kotlin API for that kind of lookup until // https://youtrack.jetbrains.com/issue/KT-20768 gets resolved. @@ -106,7 +108,7 @@ public final class KotlinReflectionUtils { */ public static boolean isSuspend(Method method) { - var invokedFunction = KotlinDetector.isKotlinType(method.getDeclaringClass()) ? findKotlinFunction(method) + KFunction invokedFunction = KotlinDetector.isKotlinType(method.getDeclaringClass()) ? findKotlinFunction(method) : null; return invokedFunction != null && invokedFunction.isSuspend(); @@ -120,7 +122,7 @@ public final class KotlinReflectionUtils { */ public static Class getReturnType(Method method) { - var kotlinFunction = KotlinReflectionUtils.findKotlinFunction(method); + KFunction kotlinFunction = KotlinReflectionUtils.findKotlinFunction(method); if (kotlinFunction == null) { throw new IllegalArgumentException(String.format("Cannot resolve %s to a KFunction!", method)); @@ -138,13 +140,13 @@ public final class KotlinReflectionUtils { */ static boolean isNullable(MethodParameter parameter) { - var method = parameter.getMethod(); + Method method = parameter.getMethod(); if (method == null) { throw new IllegalStateException(String.format("Cannot obtain method from parameter %s!", parameter)); } - var kotlinFunction = findKotlinFunction(method); + KFunction kotlinFunction = findKotlinFunction(method); if (kotlinFunction == null) { throw new IllegalArgumentException(String.format("Cannot resolve %s to a Kotlin function!", parameter)); @@ -158,7 +160,7 @@ public final class KotlinReflectionUtils { // see https://github.com/spring-projects/spring-framework/issues/23991 if (kotlinFunction.getParameters().size() > parameter.getParameterIndex() + 1) { - var type = parameter.getParameterIndex() == -1 // + KType type = parameter.getParameterIndex() == -1 // ? kotlinFunction.getReturnType() // : kotlinFunction.getParameters().get(parameter.getParameterIndex() + 1).getType(); @@ -170,7 +172,7 @@ public final class KotlinReflectionUtils { private static boolean isLast(MethodParameter parameter) { - var method = parameter.getMethod(); + Method method = parameter.getMethod(); return method != null && parameter.getParameterIndex() == method.getParameterCount() - 1; } @@ -183,7 +185,7 @@ public final class KotlinReflectionUtils { */ private static Optional> findKFunction(Method method) { - var kotlinClass = JvmClassMappingKt.getKotlinClass(method.getDeclaringClass()); + KClass kotlinClass = JvmClassMappingKt.getKotlinClass(method.getDeclaringClass()); return kotlinClass.getMembers() // .stream() // @@ -213,7 +215,7 @@ public final class KotlinReflectionUtils { private static boolean isSame(KFunction function, Method method) { - var javaMethod = ReflectJvmMapping.getJavaMethod(function); + Method javaMethod = ReflectJvmMapping.getJavaMethod(function); return javaMethod != null && javaMethod.equals(method); } diff --git a/src/main/java/org/springframework/data/util/Lazy.java b/src/main/java/org/springframework/data/util/Lazy.java index 703530c70..9a5f7a35e 100644 --- a/src/main/java/org/springframework/data/util/Lazy.java +++ b/src/main/java/org/springframework/data/util/Lazy.java @@ -109,7 +109,7 @@ public class Lazy implements Supplier { */ public T get() { - var value = getNullable(); + T value = getNullable(); if (value == null) { throw new IllegalStateException("Expected lazy evaluation to yield a non-null value but got null!"); @@ -164,7 +164,7 @@ public class Lazy implements Supplier { @Nullable public T orElse(@Nullable T value) { - var nullable = getNullable(); + T nullable = getNullable(); return nullable == null ? value : nullable; } @@ -181,7 +181,7 @@ public class Lazy implements Supplier { Assert.notNull(supplier, "Default value supplier must not be null!"); - var value = getNullable(); + T value = getNullable(); return value == null ? supplier.get() : value; } @@ -256,7 +256,7 @@ public class Lazy implements Supplier { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(supplier); + int result = ObjectUtils.nullSafeHashCode(supplier); result = 31 * result + ObjectUtils.nullSafeHashCode(value); result = 31 * result + (resolved ? 1 : 0); diff --git a/src/main/java/org/springframework/data/util/MethodInvocationRecorder.java b/src/main/java/org/springframework/data/util/MethodInvocationRecorder.java index 354827abe..6815a7ec1 100644 --- a/src/main/java/org/springframework/data/util/MethodInvocationRecorder.java +++ b/src/main/java/org/springframework/data/util/MethodInvocationRecorder.java @@ -83,9 +83,9 @@ public class MethodInvocationRecorder { @SuppressWarnings("unchecked") private Recorded create(Class type) { - var interceptor = new RecordingMethodInterceptor(); + RecordingMethodInterceptor interceptor = new RecordingMethodInterceptor(); - var proxyFactory = new ProxyFactory(); + ProxyFactory proxyFactory = new ProxyFactory(); proxyFactory.addAdvice(interceptor); if (!type.isInterface()) { @@ -95,7 +95,7 @@ public class MethodInvocationRecorder { proxyFactory.addInterface(type); } - var proxy = (T) proxyFactory.getProxy(type.getClassLoader()); + T proxy = (T) proxyFactory.getProxy(type.getClassLoader()); return new Recorded(proxy, new MethodInvocationRecorder(Optional.ofNullable(interceptor))); } @@ -112,23 +112,23 @@ public class MethodInvocationRecorder { @SuppressWarnings("null") public Object invoke(MethodInvocation invocation) throws Throwable { - var method = invocation.getMethod(); - var arguments = invocation.getArguments(); + Method method = invocation.getMethod(); + Object[] arguments = invocation.getArguments(); if (ReflectionUtils.isObjectMethod(method)) { return method.invoke(this, arguments); } - var type = ResolvableType.forMethodReturnType(method); - var rawType = type.resolve(Object.class); + ResolvableType type = ResolvableType.forMethodReturnType(method); + Class rawType = type.resolve(Object.class); if (Collection.class.isAssignableFrom(rawType)) { - var clazz = type.getGeneric(0).resolve(Object.class); + Class clazz = type.getGeneric(0).resolve(Object.class); - var information = registerInvocation(method, clazz); + InvocationInformation information = registerInvocation(method, clazz); - var collection = CollectionFactory.createCollection(rawType, 1); + Collection collection = CollectionFactory.createCollection(rawType, 1); collection.add(information.getCurrentInstance()); return collection; @@ -136,10 +136,10 @@ public class MethodInvocationRecorder { if (Map.class.isAssignableFrom(rawType)) { - var clazz = type.getGeneric(1).resolve(Object.class); - var information = registerInvocation(method, clazz); + Class clazz = type.getGeneric(1).resolve(Object.class); + InvocationInformation information = registerInvocation(method, clazz); - var map = CollectionFactory.createMap(rawType, 1); + Map map = CollectionFactory.createMap(rawType, 1); map.put("_key_", information.getCurrentInstance()); return map; @@ -154,8 +154,8 @@ public class MethodInvocationRecorder { private InvocationInformation registerInvocation(Method method, Class proxyType) { - var create = Modifier.isFinal(proxyType.getModifiers()) ? new Unrecorded() : create(proxyType); - var information = new InvocationInformation(create, method); + Recorded create = Modifier.isFinal(proxyType.getModifiers()) ? new Unrecorded() : create(proxyType); + InvocationInformation information = new InvocationInformation(create, method); return this.information = information; } @@ -183,14 +183,14 @@ public class MethodInvocationRecorder { Optional getPropertyPath(List strategies) { - var invokedMethod = this.invokedMethod; + Method invokedMethod = this.invokedMethod; if (invokedMethod == null) { return Optional.empty(); } - var propertyName = getPropertyName(invokedMethod, strategies); - var next = recorded.getPropertyPath(strategies); + String propertyName = getPropertyName(invokedMethod, strategies); + Optional next = recorded.getPropertyPath(strategies); return Optionals.firstNonEmpty(() -> next.map(it -> propertyName.concat(".").concat(it)), // () -> Optional.of(propertyName)); @@ -235,7 +235,7 @@ public class MethodInvocationRecorder { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(recorded); + int result = ObjectUtils.nullSafeHashCode(recorded); result = 31 * result + ObjectUtils.nullSafeHashCode(invokedMethod); @@ -267,8 +267,8 @@ public class MethodInvocationRecorder { private static String getPropertyName(Class type, String methodName) { - var pattern = getPatternFor(type); - var replaced = methodName.replaceFirst(pattern, ""); + String pattern = getPatternFor(type); + String replaced = methodName.replaceFirst(pattern, ""); return StringUtils.uncapitalize(replaced); } @@ -295,14 +295,14 @@ public class MethodInvocationRecorder { public Optional getPropertyPath(PropertyNameDetectionStrategy strategy) { - var recorder = this.recorder; + MethodInvocationRecorder recorder = this.recorder; return recorder == null ? Optional.empty() : recorder.getPropertyPath(Arrays.asList(strategy)); } public Optional getPropertyPath(List strategies) { - var recorder = this.recorder; + MethodInvocationRecorder recorder = this.recorder; return recorder == null ? Optional.empty() : recorder.getPropertyPath(strategies); } diff --git a/src/main/java/org/springframework/data/util/MultiValueMapCollector.java b/src/main/java/org/springframework/data/util/MultiValueMapCollector.java index 4e5a11a90..219cc46b9 100644 --- a/src/main/java/org/springframework/data/util/MultiValueMapCollector.java +++ b/src/main/java/org/springframework/data/util/MultiValueMapCollector.java @@ -62,7 +62,7 @@ class MultiValueMapCollector implements Collector { - for (var key : map2.keySet()) { + for (K key : map2.keySet()) { map1.addAll(key, map2.get(key)); } diff --git a/src/main/java/org/springframework/data/util/NullableUtils.java b/src/main/java/org/springframework/data/util/NullableUtils.java index 014e1703b..b618549f3 100644 --- a/src/main/java/org/springframework/data/util/NullableUtils.java +++ b/src/main/java/org/springframework/data/util/NullableUtils.java @@ -22,6 +22,8 @@ import java.lang.reflect.Method; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; +import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.function.Predicate; @@ -34,6 +36,7 @@ import org.springframework.core.annotation.MergedAnnotations; import org.springframework.lang.NonNullApi; import org.springframework.lang.Nullable; import org.springframework.util.ClassUtils; +import org.springframework.util.MultiValueMap; /** * Utility methods to introspect nullability rules declared in packages, classes and methods. @@ -129,9 +132,9 @@ public abstract class NullableUtils { */ public static boolean isNonNull(AnnotatedElement element, ElementType elementType) { - for (var annotation : element.getAnnotations()) { + for (Annotation annotation : element.getAnnotations()) { - var isNonNull = NON_NULL_ANNOTATION_CLASS.isPresent() ? isNonNull(annotation, elementType) + boolean isNonNull = NON_NULL_ANNOTATION_CLASS.isPresent() ? isNonNull(annotation, elementType) : NON_NULLABLE_ANNOTATIONS.contains(annotation.annotationType()); if (isNonNull) { @@ -148,7 +151,7 @@ public abstract class NullableUtils { return false; } - var annotationClass = NON_NULL_ANNOTATION_CLASS.get(); + Class annotationClass = NON_NULL_ANNOTATION_CLASS.get(); if (annotation.annotationType().equals(annotationClass)) { return true; @@ -183,9 +186,9 @@ public abstract class NullableUtils { private static boolean isExplicitNullable(Annotation[] annotations) { - for (var annotation : annotations) { + for (Annotation annotation : annotations) { - var isNullable = NON_NULL_ANNOTATION_CLASS.isPresent() ? isNullable(annotation) + boolean isNullable = NON_NULL_ANNOTATION_CLASS.isPresent() ? isNullable(annotation) : NULLABLE_ANNOTATIONS.contains(annotation.annotationType()); if (isNullable) { @@ -224,21 +227,21 @@ public abstract class NullableUtils { if (annotation.annotationType().getName().equals(metaAnnotationName)) { - var attributes = AnnotationUtils.getAnnotationAttributes(annotation); + Map attributes = AnnotationUtils.getAnnotationAttributes(annotation); return !attributes.isEmpty() && filter.test((T) attributes.get(attribute)); } - var attributes = AnnotatedElementUtils + MultiValueMap attributes = AnnotatedElementUtils .getAllAnnotationAttributes(annotation.annotationType(), metaAnnotationName); if (attributes == null || attributes.isEmpty()) { return false; } - var elementTypes = attributes.get(attribute); + List elementTypes = attributes.get(attribute); - for (var value : elementTypes) { + for (Object value : elementTypes) { if (filter.test((T) value)) { return true; diff --git a/src/main/java/org/springframework/data/util/NullableWrapper.java b/src/main/java/org/springframework/data/util/NullableWrapper.java index 3b243c577..730af372c 100644 --- a/src/main/java/org/springframework/data/util/NullableWrapper.java +++ b/src/main/java/org/springframework/data/util/NullableWrapper.java @@ -47,7 +47,7 @@ public class NullableWrapper { */ public Class getValueType() { - var value = this.value; + Object value = this.value; return value == null ? Object.class : value.getClass(); } diff --git a/src/main/java/org/springframework/data/util/NullableWrapperConverters.java b/src/main/java/org/springframework/data/util/NullableWrapperConverters.java index ddb21fe66..c8ae553e4 100644 --- a/src/main/java/org/springframework/data/util/NullableWrapperConverters.java +++ b/src/main/java/org/springframework/data/util/NullableWrapperConverters.java @@ -107,7 +107,7 @@ public abstract class NullableWrapperConverters { return supportsCache.computeIfAbsent(type, key -> { - for (var candidate : WRAPPER_TYPES) { + for (WrapperType candidate : WRAPPER_TYPES) { if (candidate.getType().isAssignableFrom(key)) { return true; } @@ -127,7 +127,7 @@ public abstract class NullableWrapperConverters { Assert.notNull(type, "Type must not be null!"); - for (var candidate : UNWRAPPER_TYPES) { + for (WrapperType candidate : UNWRAPPER_TYPES) { if (candidate.getType().isAssignableFrom(type)) { return true; } @@ -138,7 +138,7 @@ public abstract class NullableWrapperConverters { public static boolean isSingleValue(Class type) { - for (var candidate : WRAPPER_TYPES) { + for (WrapperType candidate : WRAPPER_TYPES) { if (candidate.getType().isAssignableFrom(type)) { return candidate.isSingleValue(); } @@ -184,9 +184,9 @@ public abstract class NullableWrapperConverters { return source; } - for (var converter : UNWRAPPERS) { + for (Converter converter : UNWRAPPERS) { - var result = converter.convert(source); + Object result = converter.convert(source); if (result != source) { return result; @@ -206,9 +206,9 @@ public abstract class NullableWrapperConverters { Assert.notNull(type, "type must not be null"); - var rawType = type.getType(); + Class rawType = type.getType(); - var needToUnwrap = supports(rawType) // + boolean needToUnwrap = supports(rawType) // || Stream.class.isAssignableFrom(rawType); return needToUnwrap ? unwrapActualType(type.getRequiredComponentType()) : type; @@ -259,8 +259,8 @@ public abstract class NullableWrapperConverters { return null; } - var wrapper = (NullableWrapper) source; - var value = wrapper.getValue(); + NullableWrapper wrapper = (NullableWrapper) source; + Object value = wrapper.getValue(); return value == null ? nullValue : wrap(value); } @@ -484,7 +484,7 @@ public abstract class NullableWrapperConverters { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(type); + int result = ObjectUtils.nullSafeHashCode(type); result = 31 * result + ObjectUtils.nullSafeHashCode(cardinality); return result; } diff --git a/src/main/java/org/springframework/data/util/Pair.java b/src/main/java/org/springframework/data/util/Pair.java index a21555966..547817546 100644 --- a/src/main/java/org/springframework/data/util/Pair.java +++ b/src/main/java/org/springframework/data/util/Pair.java @@ -106,7 +106,7 @@ public final class Pair { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(first); + int result = ObjectUtils.nullSafeHashCode(first); result = 31 * result + ObjectUtils.nullSafeHashCode(second); return result; } diff --git a/src/main/java/org/springframework/data/util/ParameterTypes.java b/src/main/java/org/springframework/data/util/ParameterTypes.java index fc07fab5b..923a3a03b 100644 --- a/src/main/java/org/springframework/data/util/ParameterTypes.java +++ b/src/main/java/org/springframework/data/util/ParameterTypes.java @@ -171,9 +171,9 @@ public class ParameterTypes { return false; } - var parameterTypes = method.getParameterTypes(); + Class[] parameterTypes = method.getParameterTypes(); - for (var i = 0; i < parameterTypes.length; i++) { + for (int i = 0; i < parameterTypes.length; i++) { if (parameterTypes[i] != types.get(i).getType()) { return false; } @@ -204,7 +204,7 @@ public class ParameterTypes { protected Optional withLastVarArgs() { - var lastDescriptor = types.get(types.size() - 1); + TypeDescriptor lastDescriptor = types.get(types.size() - 1); return lastDescriptor.isArray() // ? Optional.empty() // @@ -214,7 +214,7 @@ public class ParameterTypes { @SuppressWarnings("null") private ParameterTypes withVarArgs(TypeDescriptor descriptor) { - var lastDescriptor = types.get(types.size() - 1); + TypeDescriptor lastDescriptor = types.get(types.size() - 1); if (lastDescriptor.isArray() && lastDescriptor.getElementTypeDescriptor().equals(descriptor)) { return this; @@ -236,7 +236,7 @@ public class ParameterTypes { withLastVarArgs().ifPresent(alternatives::add); - var objectVarArgs = withVarArgs(OBJECT_DESCRIPTOR); + ParameterTypes objectVarArgs = withVarArgs(OBJECT_DESCRIPTOR); if (!alternatives.contains(objectVarArgs)) { alternatives.add(objectVarArgs); @@ -259,9 +259,9 @@ public class ParameterTypes { return false; } - var parameterTypes = method.getParameterTypes(); + Class[] parameterTypes = method.getParameterTypes(); - for (var i = 0; i < parameterTypes.length; i++) { + for (int i = 0; i < parameterTypes.length; i++) { if (!TypeUtils.isAssignable(parameterTypes[i], types.get(i).getType())) { return false; } @@ -347,7 +347,7 @@ public class ParameterTypes { @Override public int hashCode() { - var result = super.hashCode(); + int result = super.hashCode(); result = 31 * result + ObjectUtils.nullSafeHashCode(tail); diff --git a/src/main/java/org/springframework/data/util/ParameterizedTypeInformation.java b/src/main/java/org/springframework/data/util/ParameterizedTypeInformation.java index a07f28eef..5b1a4d91e 100644 --- a/src/main/java/org/springframework/data/util/ParameterizedTypeInformation.java +++ b/src/main/java/org/springframework/data/util/ParameterizedTypeInformation.java @@ -66,7 +66,7 @@ class ParameterizedTypeInformation extends ParentTypeAwareTypeInformation if (isMap()) { - var arguments = type.getActualTypeArguments(); + Type[] arguments = type.getActualTypeArguments(); if (arguments.length > 1) { return createInfo(arguments[1]); @@ -79,13 +79,13 @@ class ParameterizedTypeInformation extends ParentTypeAwareTypeInformation Optional.ofNullable(rawType.getGenericSuperclass()).ifPresent(supertypes::add); supertypes.addAll(Arrays.asList(rawType.getGenericInterfaces())); - var result = supertypes.stream()// + Optional> result = supertypes.stream()// .map(it -> Pair.of(it, resolveType(it)))// .filter(it -> Map.class.isAssignableFrom(it.getSecond()))// .> map(it -> { - var parameterizedSupertype = (ParameterizedType) it.getFirst(); - var arguments = parameterizedSupertype.getActualTypeArguments(); + ParameterizedType parameterizedSupertype = (ParameterizedType) it.getFirst(); + Type[] arguments = parameterizedSupertype.getActualTypeArguments(); return createInfo(arguments[1]); }).findFirst(); @@ -97,7 +97,7 @@ class ParameterizedTypeInformation extends ParentTypeAwareTypeInformation List> result = new ArrayList<>(); - for (var argument : type.getActualTypeArguments()) { + for (Type argument : type.getActualTypeArguments()) { result.add(createInfo(argument)); } @@ -111,17 +111,17 @@ class ParameterizedTypeInformation extends ParentTypeAwareTypeInformation return true; } - var rawType = getType(); - var rawTargetType = target.getType(); + Class rawType = getType(); + Class rawTargetType = target.getType(); if (!rawType.isAssignableFrom(rawTargetType)) { return false; } - var otherTypeInformation = rawType.equals(rawTargetType) ? target + TypeInformation otherTypeInformation = rawType.equals(rawTargetType) ? target : target.getSuperTypeInformation(rawType); - var myParameters = getTypeArguments(); + List> myParameters = getTypeArguments(); List> typeParameters = otherTypeInformation == null ? Collections.emptyList() : otherTypeInformation.getTypeArguments(); @@ -129,7 +129,7 @@ class ParameterizedTypeInformation extends ParentTypeAwareTypeInformation return false; } - for (var i = 0; i < myParameters.size(); i++) { + for (int i = 0; i < myParameters.size(); i++) { if (!myParameters.get(i).isAssignableFrom(typeParameters.get(i))) { return false; } @@ -155,7 +155,7 @@ class ParameterizedTypeInformation extends ParentTypeAwareTypeInformation return (TypeInformation) type; } - var asSupertype = type.getSuperTypeInformation(getType()); + TypeInformation asSupertype = type.getSuperTypeInformation(getType()); if (asSupertype == null || !ParameterizedTypeInformation.class.isInstance(asSupertype)) { return super.specialize(type); @@ -202,15 +202,15 @@ class ParameterizedTypeInformation extends ParentTypeAwareTypeInformation private boolean isResolvedCompletely() { - var typeArguments = type.getActualTypeArguments(); + Type[] typeArguments = type.getActualTypeArguments(); if (typeArguments.length == 0) { return false; } - for (var typeArgument : typeArguments) { + for (Type typeArgument : typeArguments) { - var info = createInfo(typeArgument); + TypeInformation info = createInfo(typeArgument); if (info instanceof ParameterizedTypeInformation) { if (!((ParameterizedTypeInformation) info).isResolvedCompletely()) { @@ -236,9 +236,9 @@ class ParameterizedTypeInformation extends ParentTypeAwareTypeInformation */ private static Map, Type> calculateTypeVariables(ParameterizedType type, TypeDiscoverer parent) { - var resolvedType = parent.resolveType(type); + Class resolvedType = parent.resolveType(type); TypeVariable[] typeParameters = resolvedType.getTypeParameters(); - var arguments = type.getActualTypeArguments(); + Type[] arguments = type.getActualTypeArguments(); Map, Type> localTypeVariables = new HashMap<>(parent.getTypeVariableMap()); @@ -263,7 +263,7 @@ class ParameterizedTypeInformation extends ParentTypeAwareTypeInformation return source; } - var value = variables.get(source); + Type value = variables.get(source); return value == null ? source : flattenTypeVariable(value, variables); } diff --git a/src/main/java/org/springframework/data/util/ParentTypeAwareTypeInformation.java b/src/main/java/org/springframework/data/util/ParentTypeAwareTypeInformation.java index 5a5dc8217..61d0b9d19 100644 --- a/src/main/java/org/springframework/data/util/ParentTypeAwareTypeInformation.java +++ b/src/main/java/org/springframework/data/util/ParentTypeAwareTypeInformation.java @@ -72,7 +72,7 @@ public abstract class ParentTypeAwareTypeInformation extends TypeDiscoverer) obj; + ParentTypeAwareTypeInformation that = (ParentTypeAwareTypeInformation) obj; return this.parent == null ? that.parent == null : this.parent.equals(that.parent); } diff --git a/src/main/java/org/springframework/data/util/ParsingUtils.java b/src/main/java/org/springframework/data/util/ParsingUtils.java index 59347a6fb..27c06b185 100644 --- a/src/main/java/org/springframework/data/util/ParsingUtils.java +++ b/src/main/java/org/springframework/data/util/ParsingUtils.java @@ -80,10 +80,10 @@ public abstract class ParsingUtils { Assert.notNull(source, "Source string must not be null!"); - var parts = CAMEL_CASE.split(source); + String[] parts = CAMEL_CASE.split(source); List result = new ArrayList<>(parts.length); - for (var part : parts) { + for (String part : parts) { result.add(toLower ? part.toLowerCase() : part); } diff --git a/src/main/java/org/springframework/data/util/ProxyUtils.java b/src/main/java/org/springframework/data/util/ProxyUtils.java index 095d36779..4a82215e0 100644 --- a/src/main/java/org/springframework/data/util/ProxyUtils.java +++ b/src/main/java/org/springframework/data/util/ProxyUtils.java @@ -55,9 +55,9 @@ public abstract class ProxyUtils { return USER_TYPES.computeIfAbsent(type, it -> { - var result = it; + Class result = it; - for (var proxyDetector : DETECTORS) { + for (ProxyDetector proxyDetector : DETECTORS) { result = proxyDetector.getUserType(result); } diff --git a/src/main/java/org/springframework/data/util/ReflectionUtils.java b/src/main/java/org/springframework/data/util/ReflectionUtils.java index 89e4559ef..bffc859c5 100644 --- a/src/main/java/org/springframework/data/util/ReflectionUtils.java +++ b/src/main/java/org/springframework/data/util/ReflectionUtils.java @@ -63,7 +63,7 @@ public final class ReflectionUtils { public static T createInstanceIfPresent(String classname, T defaultInstance) { try { - var type = ClassUtils.forName(classname, ClassUtils.getDefaultClassLoader()); + Class type = ClassUtils.forName(classname, ClassUtils.getDefaultClassLoader()); return (T) BeanUtils.instantiateClass(type); } catch (Exception e) { return defaultInstance; @@ -182,12 +182,12 @@ public final class ReflectionUtils { Assert.notNull(type, "Type must not be null!"); Assert.notNull(filter, "Filter must not be null!"); - var targetClass = type; + Class targetClass = type; Field foundField = null; while (targetClass != Object.class) { - for (var field : targetClass.getDeclaredFields()) { + for (Field field : targetClass.getDeclaredFields()) { if (!filter.matches(field)) { continue; @@ -220,7 +220,7 @@ public final class ReflectionUtils { */ public static Field findRequiredField(Class type, String name) { - var result = org.springframework.util.ReflectionUtils.findField(type, name); + Field result = org.springframework.util.ReflectionUtils.findField(type, name); if (result == null) { throw new IllegalArgumentException(String.format("Unable to find field %s on %s!", name, type)); @@ -275,11 +275,11 @@ public final class ReflectionUtils { Assert.notNull(name, "Method name must not be null"); Method result = null; - var searchType = type; + Class searchType = type; while (searchType != null) { - var methods = (searchType.isInterface() ? searchType.getMethods() + Method[] methods = (searchType.isInterface() ? searchType.getMethods() : org.springframework.util.ReflectionUtils.getDeclaredMethods(searchType)); - for (var method : methods) { + for (Method method : methods) { if (name.equals(method.getName()) && hasSameParams(method, parameterTypes)) { if (result == null || result.isSynthetic() || result.isBridge()) { result = method; @@ -291,7 +291,7 @@ public final class ReflectionUtils { if (result == null) { - var parameterTypeNames = Arrays.stream(parameterTypes) // + String parameterTypeNames = Arrays.stream(parameterTypes) // .map(Object::toString) // .collect(Collectors.joining(", ")); @@ -318,7 +318,7 @@ public final class ReflectionUtils { Assert.notNull(method, "Method must not be null!"); Stream> returnType = Stream.of(method.getReturnType()); - var parameterTypes = Arrays.stream(method.getParameterTypes()); + Stream> parameterTypes = Arrays.stream(method.getParameterTypes()); return Stream.concat(returnType, parameterTypes); } @@ -342,7 +342,7 @@ public final class ReflectionUtils { .map(ResolvableType::getRawClass)// .collect(Collectors.toList()); - var method = org.springframework.util.ReflectionUtils.findMethod(type, name, + Method method = org.springframework.util.ReflectionUtils.findMethod(type, name, collect.toArray(new Class[collect.size()])); return Optional.ofNullable(method)// @@ -356,11 +356,11 @@ public final class ReflectionUtils { return false; } - var index = 0; + int index = 0; - for (var argumentType : parameterTypes) { + for (Class argumentType : parameterTypes) { - var argument = arguments[index]; + Object argument = arguments[index]; // Reject nulls for primitives if (argumentType.isPrimitive() && argument == null) { diff --git a/src/main/java/org/springframework/data/util/StreamUtils.java b/src/main/java/org/springframework/data/util/StreamUtils.java index e3204d2d8..26bd7d90d 100644 --- a/src/main/java/org/springframework/data/util/StreamUtils.java +++ b/src/main/java/org/springframework/data/util/StreamUtils.java @@ -52,7 +52,7 @@ public interface StreamUtils { */ static Stream createStreamFromIterator(Iterator iterator) { - var spliterator = Spliterators.spliteratorUnknownSize(iterator, Spliterator.NONNULL); + Spliterator spliterator = Spliterators.spliteratorUnknownSize(iterator, Spliterator.NONNULL); return StreamSupport.stream(spliterator, false); } @@ -128,12 +128,12 @@ public interface StreamUtils { Assert.notNull(right, "Right must not be null!"); Assert.notNull(combiner, "Combiner must not be null!"); - var lefts = left.spliterator(); - var rights = right.spliterator(); + Spliterator lefts = left.spliterator(); + Spliterator rights = right.spliterator(); - var size = Long.min(lefts.estimateSize(), rights.estimateSize()); - var characteristics = lefts.characteristics() & rights.characteristics(); - var parallel = left.isParallel() || right.isParallel(); + long size = Long.min(lefts.estimateSize(), rights.estimateSize()); + int characteristics = lefts.characteristics() & rights.characteristics(); + boolean parallel = left.isParallel() || right.isParallel(); return StreamSupport.stream(new AbstractSpliterator(size, characteristics) { @@ -141,16 +141,16 @@ public interface StreamUtils { @SuppressWarnings("null") public boolean tryAdvance(Consumer action) { - var leftSink = new Sink(); - var rightSink = new Sink(); + Sink leftSink = new Sink(); + Sink rightSink = new Sink(); - var leftAdvance = lefts.tryAdvance(leftSink); + boolean leftAdvance = lefts.tryAdvance(leftSink); if (!leftAdvance) { return false; } - var rightAdvance = rights.tryAdvance(rightSink); + boolean rightAdvance = rights.tryAdvance(rightSink); if (!rightAdvance) { return false; diff --git a/src/main/java/org/springframework/data/util/TypeDiscoverer.java b/src/main/java/org/springframework/data/util/TypeDiscoverer.java index a7dac773b..a3beb8d8c 100644 --- a/src/main/java/org/springframework/data/util/TypeDiscoverer.java +++ b/src/main/java/org/springframework/data/util/TypeDiscoverer.java @@ -17,13 +17,24 @@ package org.springframework.data.util; import java.beans.PropertyDescriptor; import java.lang.reflect.Constructor; +import java.lang.reflect.Field; import java.lang.reflect.GenericArrayType; import java.lang.reflect.Method; +import java.lang.reflect.Parameter; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.lang.reflect.TypeVariable; import java.lang.reflect.WildcardType; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; @@ -50,7 +61,7 @@ class TypeDiscoverer implements TypeInformation { static { - var classLoader = TypeDiscoverer.class.getClassLoader(); + ClassLoader classLoader = TypeDiscoverer.class.getClassLoader(); Set> mapTypes = new HashSet<>(); mapTypes.add(Map.class); @@ -147,7 +158,7 @@ class TypeDiscoverer implements TypeInformation { if (fieldType instanceof WildcardType wildcardType) { - var bounds = wildcardType.getLowerBounds(); + Type[] bounds = wildcardType.getLowerBounds(); if (bounds.length > 0) { return createInfo(bounds[0]); @@ -183,7 +194,7 @@ class TypeDiscoverer implements TypeInformation { Assert.notNull(constructor, "Constructor must not be null!"); List> parameterTypes = new ArrayList<>(constructor.getParameterCount()); - for (var parameter : constructor.getParameters()) { + for (Parameter parameter : constructor.getParameters()) { parameterTypes.add(createInfo(parameter.getParameterizedType())); } return parameterTypes; @@ -192,14 +203,14 @@ class TypeDiscoverer implements TypeInformation { @Nullable public TypeInformation getProperty(String fieldname) { - var separatorIndex = fieldname.indexOf('.'); + int separatorIndex = fieldname.indexOf('.'); if (separatorIndex == -1) { return fieldTypes.computeIfAbsent(fieldname, this::getPropertyInformation).orElse(null); } - var head = fieldname.substring(0, separatorIndex); - var info = getProperty(head); + String head = fieldname.substring(0, separatorIndex); + TypeInformation info = getProperty(head); if (info == null) { return null; @@ -220,7 +231,7 @@ class TypeDiscoverer implements TypeInformation { private Optional> getPropertyInformation(String fieldname) { Class rawType = getType(); - var field = ReflectionUtils.findField(rawType, fieldname); + Field field = ReflectionUtils.findField(rawType, fieldname); if (field != null) { return Optional.of(createInfo(field.getGenericType())); @@ -238,7 +249,7 @@ class TypeDiscoverer implements TypeInformation { */ private static Optional findPropertyDescriptor(Class type, String fieldname) { - var descriptor = BeanUtils.getPropertyDescriptor(type, fieldname); + PropertyDescriptor descriptor = BeanUtils.getPropertyDescriptor(type, fieldname); if (descriptor != null) { return Optional.of(descriptor); @@ -263,7 +274,7 @@ class TypeDiscoverer implements TypeInformation { @Nullable private static Type getGenericType(PropertyDescriptor descriptor) { - var method = descriptor.getReadMethod(); + Method method = descriptor.getReadMethod(); if (method != null) { return method.getGenericReturnType(); @@ -275,7 +286,7 @@ class TypeDiscoverer implements TypeInformation { return null; } - var parameterTypes = method.getGenericParameterTypes(); + Type[] parameterTypes = method.getGenericParameterTypes(); return parameterTypes.length == 0 ? null : parameterTypes[0]; } @@ -310,9 +321,9 @@ class TypeDiscoverer implements TypeInformation { public boolean isMap() { - var type = getType(); + Class type = getType(); - for (var mapType : MAP_TYPES) { + for (Class mapType : MAP_TYPES) { if (mapType.isAssignableFrom(type)) { return true; } @@ -350,7 +361,7 @@ class TypeDiscoverer implements TypeInformation { @Nullable protected TypeInformation doGetComponentType() { - var rawType = getType(); + Class rawType = getType(); if (rawType.isArray()) { return createInfo(rawType.getComponentType()); @@ -368,7 +379,7 @@ class TypeDiscoverer implements TypeInformation { return getTypeArgument(rawType, 0); } - var arguments = getTypeArguments(); + List> arguments = getTypeArguments(); return arguments.size() > 0 ? arguments.get(0) : null; } @@ -402,7 +413,7 @@ class TypeDiscoverer implements TypeInformation { } List candidates = new ArrayList<>(); - var genericSuperclass = rawType.getGenericSuperclass(); + Type genericSuperclass = rawType.getGenericSuperclass(); if (genericSuperclass != null) { candidates.add(genericSuperclass); @@ -410,15 +421,15 @@ class TypeDiscoverer implements TypeInformation { candidates.addAll(Arrays.asList(rawType.getGenericInterfaces())); - for (var candidate : candidates) { + for (Type candidate : candidates) { - var candidateInfo = createInfo(candidate); + TypeInformation candidateInfo = createInfo(candidate); if (superType.equals(candidateInfo.getType())) { return candidateInfo; } else { - var nestedSuperType = candidateInfo.getSuperTypeInformation(superType); + TypeInformation nestedSuperType = candidateInfo.getSuperTypeInformation(superType); if (nestedSuperType != null) { return nestedSuperType; @@ -435,7 +446,7 @@ class TypeDiscoverer implements TypeInformation { public boolean isAssignableFrom(TypeInformation target) { - var superTypeInformation = target.getSuperTypeInformation(getType()); + TypeInformation superTypeInformation = target.getSuperTypeInformation(getType()); return superTypeInformation == null ? false : superTypeInformation.equals(this); } @@ -448,7 +459,7 @@ class TypeDiscoverer implements TypeInformation { Assert.isTrue(getType().isAssignableFrom(type.getType()), () -> String.format("%s must be assignable from %s", getType(), type.getType())); - var typeArguments = getTypeArguments(); + List> typeArguments = getTypeArguments(); return (TypeInformation) (typeArguments.isEmpty() // ? type // @@ -458,7 +469,7 @@ class TypeDiscoverer implements TypeInformation { @Nullable private TypeInformation getTypeArgument(Class bound, int index) { - var arguments = GenericTypeResolver.resolveTypeArguments(getType(), bound); + Class[] arguments = GenericTypeResolver.resolveTypeArguments(getType(), bound); if (arguments != null) { return createInfo(arguments[index]); @@ -492,7 +503,7 @@ class TypeDiscoverer implements TypeInformation { return false; } - var that = (TypeDiscoverer) obj; + TypeDiscoverer that = (TypeDiscoverer) obj; if (!this.type.equals(that.type)) { return false; @@ -517,7 +528,7 @@ class TypeDiscoverer implements TypeInformation { */ private boolean isCollection() { - var type = getType(); + Class type = getType(); for (Class collectionType : COLLECTION_TYPES) { if (collectionType.isAssignableFrom(type)) { @@ -538,7 +549,7 @@ class TypeDiscoverer implements TypeInformation { Assert.notNull(candidates, "Candidates must not be null!"); - var type = getType(); + Class type = getType(); for (Class candidate : candidates) { if (candidate.equals(type)) { @@ -559,7 +570,7 @@ class TypeDiscoverer implements TypeInformation { Assert.notNull(candidates, "Candidates must not be null!"); - var type = getType(); + Class type = getType(); for (Class candidate : candidates) { if (candidate.isAssignableFrom(type)) { @@ -604,9 +615,9 @@ class TypeDiscoverer implements TypeInformation { @Override public Type[] getActualTypeArguments() { - var result = new Type[typeParameters.size()]; + Type[] result = new Type[typeParameters.size()]; - for (var i = 0; i < typeParameters.size(); i++) { + for (int i = 0; i < typeParameters.size(); i++) { result[i] = typeParameters.get(i).getType(); } @@ -633,7 +644,7 @@ class TypeDiscoverer implements TypeInformation { @Override public int hashCode() { - var result = ObjectUtils.nullSafeHashCode(typeInformation); + int result = ObjectUtils.nullSafeHashCode(typeInformation); result = 31 * result + ObjectUtils.nullSafeHashCode(typeParameters); return result; } diff --git a/src/main/java/org/springframework/data/util/TypeInformation.java b/src/main/java/org/springframework/data/util/TypeInformation.java index a494a9412..94e1f5d8a 100644 --- a/src/main/java/org/springframework/data/util/TypeInformation.java +++ b/src/main/java/org/springframework/data/util/TypeInformation.java @@ -59,7 +59,7 @@ public interface TypeInformation { */ default TypeInformation getRequiredProperty(String property) { - var typeInformation = getProperty(property); + TypeInformation typeInformation = getProperty(property); if (typeInformation != null) { return typeInformation; @@ -97,7 +97,7 @@ public interface TypeInformation { */ default TypeInformation getRequiredComponentType() { - var componentType = getComponentType(); + TypeInformation componentType = getComponentType(); if (componentType != null) { return componentType; @@ -133,7 +133,7 @@ public interface TypeInformation { */ default TypeInformation getRequiredMapValueType() { - var mapValueType = getMapValueType(); + TypeInformation mapValueType = getMapValueType(); if (mapValueType != null) { return mapValueType; @@ -191,7 +191,7 @@ public interface TypeInformation { */ default TypeInformation getRequiredActualType() { - var result = getActualType(); + TypeInformation result = getActualType(); if (result == null) { throw new IllegalStateException( @@ -238,7 +238,7 @@ public interface TypeInformation { */ default TypeInformation getRequiredSuperTypeInformation(Class superType) { - var result = getSuperTypeInformation(superType); + TypeInformation result = getSuperTypeInformation(superType); if (result == null) { throw new IllegalArgumentException(String.format( diff --git a/src/main/java/org/springframework/data/util/TypeVariableTypeInformation.java b/src/main/java/org/springframework/data/util/TypeVariableTypeInformation.java index 8ac17fb66..dbc587d41 100644 --- a/src/main/java/org/springframework/data/util/TypeVariableTypeInformation.java +++ b/src/main/java/org/springframework/data/util/TypeVariableTypeInformation.java @@ -67,7 +67,7 @@ class TypeVariableTypeInformation extends ParentTypeAwareTypeInformation { @Override public int hashCode() { - var result = 17; + int result = 17; result += 31 * nullSafeHashCode(getType()); diff --git a/src/main/java/org/springframework/data/util/VavrCollectionConverters.java b/src/main/java/org/springframework/data/util/VavrCollectionConverters.java index c9ba6a937..2daf9196b 100644 --- a/src/main/java/org/springframework/data/util/VavrCollectionConverters.java +++ b/src/main/java/org/springframework/data/util/VavrCollectionConverters.java @@ -134,7 +134,7 @@ public class VavrCollectionConverters { @Override public Object convert(@Nullable Object source, TypeDescriptor sourceDescriptor, TypeDescriptor targetDescriptor) { - var targetType = targetDescriptor.getType(); + Class targetType = targetDescriptor.getType(); if (io.vavr.collection.Seq.class.isAssignableFrom(targetType)) { return io.vavr.collection.List.ofAll((Iterable) source); diff --git a/src/main/java/org/springframework/data/util/Version.java b/src/main/java/org/springframework/data/util/Version.java index ddec3346f..dce030963 100644 --- a/src/main/java/org/springframework/data/util/Version.java +++ b/src/main/java/org/springframework/data/util/Version.java @@ -68,12 +68,12 @@ public class Version implements Comparable { Assert.hasText(version, "Version must not be null o empty!"); - var parts = version.trim().split("\\."); - var intParts = new int[parts.length]; + String[] parts = version.trim().split("\\."); + int[] intParts = new int[parts.length]; - for (var i = 0; i < parts.length; i++) { + for (int i = 0; i < parts.length; i++) { - var input = i == parts.length - 1 ? parts[i].replaceAll("\\D.*", "") : parts[i]; + String input = i == parts.length - 1 ? parts[i].replaceAll("\\D.*", "") : parts[i]; if (StringUtils.hasText(input)) { try { @@ -185,7 +185,7 @@ public class Version implements Comparable { @Override public int hashCode() { - var result = 17; + int result = 17; result += 31 * major; result += 31 * minor; result += 31 * bugfix; diff --git a/src/main/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolver.java b/src/main/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolver.java index 61cc77d7e..002657fa9 100644 --- a/src/main/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolver.java +++ b/src/main/java/org/springframework/data/web/HateoasPageableHandlerMethodArgumentResolver.java @@ -28,6 +28,7 @@ import org.springframework.hateoas.TemplateVariables; import org.springframework.hateoas.server.mvc.UriComponentsContributor; import org.springframework.lang.Nullable; import org.springframework.util.Assert; +import org.springframework.util.MultiValueMap; import org.springframework.web.util.UriComponents; import org.springframework.web.util.UriComponentsBuilder; @@ -75,24 +76,24 @@ public class HateoasPageableHandlerMethodArgumentResolver extends PageableHandle */ public TemplateVariables getPaginationTemplateVariables(MethodParameter parameter, UriComponents template) { - var pagePropertyName = getParameterNameToUse(getPageParameterName(), parameter); - var sizePropertyName = getParameterNameToUse(getSizeParameterName(), parameter); + String pagePropertyName = getParameterNameToUse(getPageParameterName(), parameter); + String sizePropertyName = getParameterNameToUse(getSizeParameterName(), parameter); List names = new ArrayList<>(); - var queryParameters = template.getQueryParams(); - var append = !queryParameters.isEmpty(); + MultiValueMap queryParameters = template.getQueryParams(); + boolean append = !queryParameters.isEmpty(); - for (var propertyName : Arrays.asList(pagePropertyName, sizePropertyName)) { + for (String propertyName : Arrays.asList(pagePropertyName, sizePropertyName)) { if (!queryParameters.containsKey(propertyName)) { - var type = append ? REQUEST_PARAM_CONTINUED : REQUEST_PARAM; - var description = String.format("pagination.%s.description", propertyName); + TemplateVariable.VariableType type = append ? REQUEST_PARAM_CONTINUED : REQUEST_PARAM; + String description = String.format("pagination.%s.description", propertyName); names.add(new TemplateVariable(propertyName, type, description)); } } - var pagingVariables = new TemplateVariables(names); + TemplateVariables pagingVariables = new TemplateVariables(names); return pagingVariables.concat(sortResolver.getSortTemplateVariables(parameter, template)); } @@ -109,10 +110,10 @@ public class HateoasPageableHandlerMethodArgumentResolver extends PageableHandle return; } - var pagePropertyName = getParameterNameToUse(getPageParameterName(), parameter); - var sizePropertyName = getParameterNameToUse(getSizeParameterName(), parameter); + String pagePropertyName = getParameterNameToUse(getPageParameterName(), parameter); + String sizePropertyName = getParameterNameToUse(getSizeParameterName(), parameter); - var pageNumber = pageable.getPageNumber(); + int pageNumber = pageable.getPageNumber(); builder.replaceQueryParam(pagePropertyName, isOneIndexedParameters() ? pageNumber + 1 : pageNumber); builder.replaceQueryParam(sizePropertyName, diff --git a/src/main/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolver.java b/src/main/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolver.java index ab7d815fa..25386103d 100644 --- a/src/main/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolver.java +++ b/src/main/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolver.java @@ -23,6 +23,7 @@ import org.springframework.hateoas.TemplateVariable; import org.springframework.hateoas.TemplateVariables; import org.springframework.hateoas.server.mvc.UriComponentsContributor; import org.springframework.lang.Nullable; +import org.springframework.util.MultiValueMap; import org.springframework.web.util.UriComponents; import org.springframework.web.util.UriComponentsBuilder; @@ -47,16 +48,16 @@ public class HateoasSortHandlerMethodArgumentResolver extends SortHandlerMethodA */ public TemplateVariables getSortTemplateVariables(MethodParameter parameter, UriComponents template) { - var sortParameter = getSortParameter(parameter); - var queryParameters = template.getQueryParams(); - var append = !queryParameters.isEmpty(); + String sortParameter = getSortParameter(parameter); + MultiValueMap queryParameters = template.getQueryParams(); + boolean append = !queryParameters.isEmpty(); if (queryParameters.containsKey(sortParameter)) { return TemplateVariables.NONE; } - var description = String.format("pagination.%s.description", sortParameter); - var type = append ? REQUEST_PARAM_CONTINUED : REQUEST_PARAM; + String description = String.format("pagination.%s.description", sortParameter); + TemplateVariable.VariableType type = append ? REQUEST_PARAM_CONTINUED : REQUEST_PARAM; return new TemplateVariables(new TemplateVariable(sortParameter, type, description)); } @@ -67,11 +68,11 @@ public class HateoasSortHandlerMethodArgumentResolver extends SortHandlerMethodA return; } - var sortParameter = getSortParameter(parameter); + String sortParameter = getSortParameter(parameter); builder.replaceQueryParam(sortParameter); - for (var expression : foldIntoExpressions(sort)) { + for (String expression : foldIntoExpressions(sort)) { builder.queryParam(sortParameter, expression); } } diff --git a/src/main/java/org/springframework/data/web/JsonProjectingMethodInterceptorFactory.java b/src/main/java/org/springframework/data/web/JsonProjectingMethodInterceptorFactory.java index 13962ac7e..0917ef38b 100644 --- a/src/main/java/org/springframework/data/web/JsonProjectingMethodInterceptorFactory.java +++ b/src/main/java/org/springframework/data/web/JsonProjectingMethodInterceptorFactory.java @@ -35,6 +35,7 @@ import org.springframework.core.annotation.AnnotationUtils; import org.springframework.data.projection.Accessor; import org.springframework.data.projection.MethodInterceptorFactory; import org.springframework.data.util.ClassTypeInformation; +import org.springframework.data.util.TypeInformation; import org.springframework.lang.Nullable; import org.springframework.util.Assert; @@ -86,7 +87,7 @@ public class JsonProjectingMethodInterceptorFactory implements MethodInterceptor Assert.notNull(jsonProvider, "JsonProvider must not be null!"); Assert.notNull(mappingProvider, "MappingProvider must not be null!"); - var configuration = Configuration.builder()// + Configuration configuration = Configuration.builder()// .options(Option.ALWAYS_RETURN_LIST) // .jsonProvider(jsonProvider) // .mappingProvider(mappingProvider) // @@ -98,7 +99,7 @@ public class JsonProjectingMethodInterceptorFactory implements MethodInterceptor @Override public MethodInterceptor createMethodInterceptor(Object source, Class targetType) { - var context = InputStream.class.isInstance(source) ? this.context.parse((InputStream) source) + DocumentContext context = InputStream.class.isInstance(source) ? this.context.parse((InputStream) source) : this.context.parse(source); return new InputMessageProjecting(context); @@ -123,7 +124,7 @@ public class JsonProjectingMethodInterceptorFactory implements MethodInterceptor */ private static boolean hasJsonPathAnnotation(Class type) { - for (var method : type.getMethods()) { + for (Method method : type.getMethods()) { if (AnnotationUtils.findAnnotation(method, org.springframework.data.web.JsonPath.class) != null) { return true; } @@ -144,32 +145,32 @@ public class JsonProjectingMethodInterceptorFactory implements MethodInterceptor @Override public Object invoke(MethodInvocation invocation) throws Throwable { - var method = invocation.getMethod(); - var returnType = ClassTypeInformation.fromReturnTypeOf(method); - var type = ResolvableType.forMethodReturnType(method); - var isCollectionResult = Collection.class.isAssignableFrom(type.getRawClass()); + Method method = invocation.getMethod(); + TypeInformation returnType = ClassTypeInformation.fromReturnTypeOf(method); + ResolvableType type = ResolvableType.forMethodReturnType(method); + boolean isCollectionResult = Collection.class.isAssignableFrom(type.getRawClass()); type = isCollectionResult ? type : ResolvableType.forClassWithGenerics(List.class, type); Iterable jsonPaths = getJsonPaths(method); - for (var jsonPath : jsonPaths) { + for (String jsonPath : jsonPaths) { try { if (returnType.getRequiredActualType().getType().isInterface()) { List result = context.read(jsonPath); - var nested = result.isEmpty() ? null : result.get(0); + Object nested = result.isEmpty() ? null : result.get(0); return isCollectionResult && !(nested instanceof Collection) ? result : nested; } - var definitePath = JsonPath.isPathDefinite(jsonPath); + boolean definitePath = JsonPath.isPathDefinite(jsonPath); type = isCollectionResult && definitePath ? ResolvableType.forClassWithGenerics(List.class, type) : type; - var result = (List) context.read(jsonPath, new ResolvableTypeRef(type)); + List result = (List) context.read(jsonPath, new ResolvableTypeRef(type)); if (isCollectionResult && definitePath) { result = (List) result.get(0); @@ -193,7 +194,7 @@ public class JsonProjectingMethodInterceptorFactory implements MethodInterceptor */ private static Collection getJsonPaths(Method method) { - var annotation = AnnotationUtils.findAnnotation(method, + org.springframework.data.web.JsonPath annotation = AnnotationUtils.findAnnotation(method, org.springframework.data.web.JsonPath.class); if (annotation != null) { diff --git a/src/main/java/org/springframework/data/web/MapDataBinder.java b/src/main/java/org/springframework/data/web/MapDataBinder.java index 8d137b2f0..1f4c292bd 100644 --- a/src/main/java/org/springframework/data/web/MapDataBinder.java +++ b/src/main/java/org/springframework/data/web/MapDataBinder.java @@ -15,6 +15,7 @@ */ package org.springframework.data.web; +import java.beans.PropertyDescriptor; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -32,8 +33,10 @@ import org.springframework.core.convert.ConversionService; import org.springframework.core.convert.TypeDescriptor; import org.springframework.data.mapping.PropertyPath; import org.springframework.data.mapping.PropertyReferenceException; +import org.springframework.data.util.TypeInformation; import org.springframework.expression.AccessException; import org.springframework.expression.EvaluationContext; +import org.springframework.expression.Expression; import org.springframework.expression.TypedValue; import org.springframework.expression.spel.SpelEvaluationException; import org.springframework.expression.spel.SpelParserConfiguration; @@ -74,7 +77,7 @@ class MapDataBinder extends WebDataBinder { @SuppressWarnings("unchecked") public Map getTarget() { - var target = super.getTarget(); + Object target = super.getTarget(); if (target == null) { throw new IllegalStateException("Target bean should never be null!"); @@ -145,15 +148,15 @@ class MapDataBinder extends WebDataBinder { throw new NotWritablePropertyException(type, propertyName); } - var leafProperty = getPropertyPath(propertyName).getLeafProperty(); - var owningType = leafProperty.getOwningType(); - var propertyType = leafProperty.getTypeInformation(); + PropertyPath leafProperty = getPropertyPath(propertyName).getLeafProperty(); + TypeInformation owningType = leafProperty.getOwningType(); + TypeInformation propertyType = leafProperty.getTypeInformation(); propertyType = propertyName.endsWith("]") ? propertyType.getActualType() : propertyType; if (propertyType != null && conversionRequired(value, propertyType.getType())) { - var descriptor = BeanUtils.getPropertyDescriptor(owningType.getType(), + PropertyDescriptor descriptor = BeanUtils.getPropertyDescriptor(owningType.getType(), leafProperty.getSegment()); if (descriptor == null) { @@ -161,8 +164,8 @@ class MapDataBinder extends WebDataBinder { leafProperty.getSegment(), owningType.getType())); } - var methodParameter = new MethodParameter(descriptor.getReadMethod(), -1); - var typeDescriptor = TypeDescriptor.nested(methodParameter, 0); + MethodParameter methodParameter = new MethodParameter(descriptor.getReadMethod(), -1); + TypeDescriptor typeDescriptor = TypeDescriptor.nested(methodParameter, 0); if (typeDescriptor == null) { throw new IllegalStateException( @@ -178,7 +181,7 @@ class MapDataBinder extends WebDataBinder { .withRootObject(map) // .build(); - var expression = PARSER.parseExpression(propertyName); + Expression expression = PARSER.parseExpression(propertyName); try { expression.setValue(context, value); @@ -198,7 +201,7 @@ class MapDataBinder extends WebDataBinder { private PropertyPath getPropertyPath(String propertyName) { - var plainPropertyPath = propertyName.replaceAll("\\[.*?\\]", ""); + String plainPropertyPath = propertyName.replaceAll("\\[.*?\\]", ""); return PropertyPath.from(plainPropertyPath, type); } @@ -242,13 +245,13 @@ class MapDataBinder extends WebDataBinder { return TypedValue.NULL; } - var path = PropertyPath.from(name, type); + PropertyPath path = PropertyPath.from(name, type); try { return super.read(context, target, name); } catch (AccessException o_O) { - var emptyResult = path.isCollection() ? CollectionFactory.createCollection(List.class, 0) + Object emptyResult = path.isCollection() ? CollectionFactory.createCollection(List.class, 0) : CollectionFactory.createMap(Map.class, 0); ((Map) target).put(name, emptyResult); @@ -268,9 +271,9 @@ class MapDataBinder extends WebDataBinder { */ private TypeDescriptor getDescriptor(PropertyPath path, Object emptyValue) { - var actualPropertyType = path.getType(); + Class actualPropertyType = path.getType(); - var valueDescriptor = conversionService.canConvert(String.class, actualPropertyType) + TypeDescriptor valueDescriptor = conversionService.canConvert(String.class, actualPropertyType) ? TypeDescriptor.valueOf(String.class) : TypeDescriptor.valueOf(HashMap.class); diff --git a/src/main/java/org/springframework/data/web/PageableHandlerMethodArgumentResolver.java b/src/main/java/org/springframework/data/web/PageableHandlerMethodArgumentResolver.java index db17f3c72..80906bbe6 100644 --- a/src/main/java/org/springframework/data/web/PageableHandlerMethodArgumentResolver.java +++ b/src/main/java/org/springframework/data/web/PageableHandlerMethodArgumentResolver.java @@ -18,6 +18,7 @@ package org.springframework.data.web; import org.springframework.core.MethodParameter; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; import org.springframework.lang.Nullable; import org.springframework.web.bind.support.WebDataBinderFactory; import org.springframework.web.context.request.NativeWebRequest; @@ -75,11 +76,11 @@ public class PageableHandlerMethodArgumentResolver extends PageableHandlerMethod public Pageable resolveArgument(MethodParameter methodParameter, @Nullable ModelAndViewContainer mavContainer, NativeWebRequest webRequest, @Nullable WebDataBinderFactory binderFactory) { - var page = webRequest.getParameter(getParameterNameToUse(getPageParameterName(), methodParameter)); - var pageSize = webRequest.getParameter(getParameterNameToUse(getSizeParameterName(), methodParameter)); + String page = webRequest.getParameter(getParameterNameToUse(getPageParameterName(), methodParameter)); + String pageSize = webRequest.getParameter(getParameterNameToUse(getSizeParameterName(), methodParameter)); - var sort = sortResolver.resolveArgument(methodParameter, mavContainer, webRequest, binderFactory); - var pageable = getPageable(methodParameter, page, pageSize); + Sort sort = sortResolver.resolveArgument(methodParameter, mavContainer, webRequest, binderFactory); + Pageable pageable = getPageable(methodParameter, page, pageSize); if (sort.isSorted()) { return PageRequest.of(pageable.getPageNumber(), pageable.getPageSize(), sort); diff --git a/src/main/java/org/springframework/data/web/PageableHandlerMethodArgumentResolverSupport.java b/src/main/java/org/springframework/data/web/PageableHandlerMethodArgumentResolverSupport.java index 2e8ce41b6..e26695755 100644 --- a/src/main/java/org/springframework/data/web/PageableHandlerMethodArgumentResolverSupport.java +++ b/src/main/java/org/springframework/data/web/PageableHandlerMethodArgumentResolverSupport.java @@ -17,6 +17,7 @@ package org.springframework.data.web; import static org.springframework.data.web.SpringDataAnnotationUtils.*; +import java.lang.reflect.Method; import java.util.Optional; import org.springframework.beans.factory.annotation.Qualifier; @@ -191,10 +192,10 @@ public abstract class PageableHandlerMethodArgumentResolverSupport { @Nullable String pageSizeString) { assertPageableUniqueness(methodParameter); - var defaultOrFallback = getDefaultFromAnnotationOrFallback(methodParameter).toOptional(); + Optional defaultOrFallback = getDefaultFromAnnotationOrFallback(methodParameter).toOptional(); - var page = parseAndApplyBoundaries(pageString, Integer.MAX_VALUE, true); - var pageSize = parseAndApplyBoundaries(pageSizeString, maxPageSize, false); + Optional page = parseAndApplyBoundaries(pageString, Integer.MAX_VALUE, true); + Optional pageSize = parseAndApplyBoundaries(pageSizeString, maxPageSize, false); if (!(page.isPresent() && pageSize.isPresent()) && !defaultOrFallback.isPresent()) { return Pageable.unpaged(); @@ -223,9 +224,9 @@ public abstract class PageableHandlerMethodArgumentResolverSupport { */ protected String getParameterNameToUse(String source, @Nullable MethodParameter parameter) { - var builder = new StringBuilder(prefix); + StringBuilder builder = new StringBuilder(prefix); - var value = SpringDataAnnotationUtils.getQualifier(parameter); + String value = SpringDataAnnotationUtils.getQualifier(parameter); if (StringUtils.hasLength(value)) { builder.append(value); @@ -237,7 +238,7 @@ public abstract class PageableHandlerMethodArgumentResolverSupport { private Pageable getDefaultFromAnnotationOrFallback(MethodParameter methodParameter) { - var defaults = methodParameter.getParameterAnnotation(PageableDefault.class); + PageableDefault defaults = methodParameter.getParameterAnnotation(PageableDefault.class); if (defaults != null) { return getDefaultPageRequestFrom(methodParameter, defaults); @@ -252,7 +253,7 @@ public abstract class PageableHandlerMethodArgumentResolverSupport { Integer defaultPageSize = getSpecificPropertyOrDefaultFromValue(defaults, "size"); if (defaultPageSize < 1) { - var annotatedMethod = parameter.getMethod(); + Method annotatedMethod = parameter.getMethod(); throw new IllegalStateException(String.format(INVALID_DEFAULT_PAGE_SIZE, annotatedMethod)); } @@ -279,7 +280,7 @@ public abstract class PageableHandlerMethodArgumentResolverSupport { } try { - var parsed = Integer.parseInt(parameter) - (oneIndexedParameters && shiftIndex ? 1 : 0); + int parsed = Integer.parseInt(parameter) - (oneIndexedParameters && shiftIndex ? 1 : 0); return Optional.of(parsed < 0 ? 0 : parsed > upper ? upper : parsed); } catch (NumberFormatException e) { return Optional.of(0); diff --git a/src/main/java/org/springframework/data/web/PagedResourcesAssembler.java b/src/main/java/org/springframework/data/web/PagedResourcesAssembler.java index 936a8bfa0..262f79d85 100644 --- a/src/main/java/org/springframework/data/web/PagedResourcesAssembler.java +++ b/src/main/java/org/springframework/data/web/PagedResourcesAssembler.java @@ -41,6 +41,7 @@ import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.web.servlet.support.ServletUriComponentsBuilder; import org.springframework.web.util.UriComponents; +import org.springframework.web.util.UriComponentsBuilder; /** * {@link RepresentationModelAssembler} to easily convert {@link Page} instances into {@link PagedModel}. @@ -167,10 +168,10 @@ public class PagedResourcesAssembler implements RepresentationModelAssembler< Assert.notNull(type, "Type must not be null!"); Assert.notNull(link, "Link must not be null!"); - var metadata = asPageMetadata(page); + PageMetadata metadata = asPageMetadata(page); - var wrapper = wrappers.emptyCollectionOf(type); - var embedded = Collections.singletonList(wrapper); + EmbeddedWrapper wrapper = wrappers.emptyCollectionOf(type); + List embedded = Collections.singletonList(wrapper); return addPaginationLinks(PagedModel.of(embedded, metadata), page, link); } @@ -201,20 +202,20 @@ public class PagedResourcesAssembler implements RepresentationModelAssembler< List resources = new ArrayList<>(page.getNumberOfElements()); - for (var element : page) { + for (S element : page) { resources.add(assembler.toModel(element)); } - var resource = createPagedModel(resources, asPageMetadata(page), page); + PagedModel resource = createPagedModel(resources, asPageMetadata(page), page); return addPaginationLinks(resource, page, link); } private PagedModel addPaginationLinks(PagedModel resources, Page page, Optional link) { - var base = getUriTemplate(link); + UriTemplate base = getUriTemplate(link); - var isNavigable = page.hasPrevious() || page.hasNext(); + boolean isNavigable = page.hasPrevious() || page.hasNext(); if (isNavigable || forceFirstAndLastRels) { resources.add(createLink(base, PageRequest.of(0, page.getSize(), page.getSort()), IanaLinkRelations.FIRST)); @@ -224,7 +225,7 @@ public class PagedResourcesAssembler implements RepresentationModelAssembler< resources.add(createLink(base, page.previousPageable(), IanaLinkRelations.PREV)); } - var selfLink = link.map(Link::withSelfRel)// + Link selfLink = link.map(Link::withSelfRel)// .orElseGet(() -> createLink(base, page.getPageable(), IanaLinkRelations.SELF)); resources.add(selfLink); @@ -235,7 +236,7 @@ public class PagedResourcesAssembler implements RepresentationModelAssembler< if (isNavigable || forceFirstAndLastRels) { - var lastIndex = page.getTotalPages() == 0 ? 0 : page.getTotalPages() - 1; + int lastIndex = page.getTotalPages() == 0 ? 0 : page.getTotalPages() - 1; resources .add(createLink(base, PageRequest.of(lastIndex, page.getSize(), page.getSort()), IanaLinkRelations.LAST)); @@ -265,7 +266,7 @@ public class PagedResourcesAssembler implements RepresentationModelAssembler< */ private Link createLink(UriTemplate base, Pageable pageable, LinkRelation relation) { - var builder = fromUri(base.expand()); + UriComponentsBuilder builder = fromUri(base.expand()); pageableResolver.enhance(builder, getMethodParameter(), pageable); return Link.of(UriTemplate.of(builder.build().toString()), relation); @@ -293,7 +294,7 @@ public class PagedResourcesAssembler implements RepresentationModelAssembler< Assert.notNull(page, "Page must not be null!"); - var number = pageableResolver.isOneIndexedParameters() ? page.getNumber() + 1 : page.getNumber(); + int number = pageableResolver.isOneIndexedParameters() ? page.getNumber() + 1 : page.getNumber(); return new PageMetadata(page.getSize(), number, page.getTotalElements(), page.getTotalPages()); } diff --git a/src/main/java/org/springframework/data/web/PagedResourcesAssemblerArgumentResolver.java b/src/main/java/org/springframework/data/web/PagedResourcesAssemblerArgumentResolver.java index 4c74fc0fa..7e38a266d 100644 --- a/src/main/java/org/springframework/data/web/PagedResourcesAssemblerArgumentResolver.java +++ b/src/main/java/org/springframework/data/web/PagedResourcesAssemblerArgumentResolver.java @@ -15,6 +15,9 @@ */ package org.springframework.data.web; +import java.lang.reflect.Method; +import java.util.List; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -68,7 +71,7 @@ public class PagedResourcesAssemblerArgumentResolver implements HandlerMethodArg public Object resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer, NativeWebRequest webRequest, @Nullable WebDataBinderFactory binderFactory) { - var pageableParameter = findMatchingPageableParameter(parameter); + MethodParameter pageableParameter = findMatchingPageableParameter(parameter); if (pageableParameter != null) { return new MethodParameterAwarePagedResourcesAssembler<>(pageableParameter, resolver, null); @@ -87,15 +90,15 @@ public class PagedResourcesAssemblerArgumentResolver implements HandlerMethodArg @Nullable private static MethodParameter findMatchingPageableParameter(MethodParameter parameter) { - var method = parameter.getMethod(); + Method method = parameter.getMethod(); if (method == null) { throw new IllegalArgumentException(String.format("Could not obtain method from parameter %s!", parameter)); } - var parameters = MethodParameters.of(method); - var pageableParameters = parameters.getParametersOfType(Pageable.class); - var assemblerQualifier = parameter.getParameterAnnotation(Qualifier.class); + MethodParameters parameters = MethodParameters.of(method); + List pageableParameters = parameters.getParametersOfType(Pageable.class); + Qualifier assemblerQualifier = parameter.getParameterAnnotation(Qualifier.class); if (pageableParameters.isEmpty()) { return null; @@ -103,8 +106,8 @@ public class PagedResourcesAssemblerArgumentResolver implements HandlerMethodArg if (pageableParameters.size() == 1) { - var pageableParameter = pageableParameters.get(0); - var matchingParameter = returnIfQualifiersMatch(pageableParameter, assemblerQualifier); + MethodParameter pageableParameter = pageableParameters.get(0); + MethodParameter matchingParameter = returnIfQualifiersMatch(pageableParameter, assemblerQualifier); if (matchingParameter == null) { logger.info(LogMessage.format(SUPERFLOUS_QUALIFIER, PagedResourcesAssembler.class.getSimpleName(), @@ -118,9 +121,9 @@ public class PagedResourcesAssemblerArgumentResolver implements HandlerMethodArg throw new IllegalStateException(PARAMETER_AMBIGUITY); } - for (var pageableParameter : pageableParameters) { + for (MethodParameter pageableParameter : pageableParameters) { - var matchingParameter = returnIfQualifiersMatch(pageableParameter, assemblerQualifier); + MethodParameter matchingParameter = returnIfQualifiersMatch(pageableParameter, assemblerQualifier); if (matchingParameter != null) { return matchingParameter; @@ -138,7 +141,7 @@ public class PagedResourcesAssemblerArgumentResolver implements HandlerMethodArg return pageableParameter; } - var pageableParameterQualifier = pageableParameter.getParameterAnnotation(Qualifier.class); + Qualifier pageableParameterQualifier = pageableParameter.getParameterAnnotation(Qualifier.class); if (pageableParameterQualifier == null) { return null; diff --git a/src/main/java/org/springframework/data/web/ProjectingJackson2HttpMessageConverter.java b/src/main/java/org/springframework/data/web/ProjectingJackson2HttpMessageConverter.java index 416c93609..0eab5a468 100644 --- a/src/main/java/org/springframework/data/web/ProjectingJackson2HttpMessageConverter.java +++ b/src/main/java/org/springframework/data/web/ProjectingJackson2HttpMessageConverter.java @@ -84,7 +84,7 @@ public class ProjectingJackson2HttpMessageConverter extends MappingJackson2HttpM Assert.notNull(mapper, "ObjectMapper must not be null!"); - var projectionFactory = new SpelAwareProxyProjectionFactory(); + SpelAwareProxyProjectionFactory projectionFactory = new SpelAwareProxyProjectionFactory(); projectionFactory.registerMethodInvokerFactory(new JsonProjectingMethodInterceptorFactory( new JacksonJsonProvider(mapper), new JacksonMappingProvider(mapper))); @@ -108,9 +108,9 @@ public class ProjectingJackson2HttpMessageConverter extends MappingJackson2HttpM return false; } - var owner = contextClass == null ? null : ResolvableType.forClass(contextClass); - var rawType = ResolvableType.forType(type, owner).resolve(Object.class); - var result = supportedTypesCache.get(rawType); + ResolvableType owner = contextClass == null ? null : ResolvableType.forClass(contextClass); + Class rawType = ResolvableType.forType(type, owner).resolve(Object.class); + Boolean result = supportedTypesCache.get(rawType); if (result != null) { return result; diff --git a/src/main/java/org/springframework/data/web/ProxyingHandlerMethodArgumentResolver.java b/src/main/java/org/springframework/data/web/ProxyingHandlerMethodArgumentResolver.java index d086531ab..f5312cc3a 100644 --- a/src/main/java/org/springframework/data/web/ProxyingHandlerMethodArgumentResolver.java +++ b/src/main/java/org/springframework/data/web/ProxyingHandlerMethodArgumentResolver.java @@ -80,7 +80,7 @@ public class ProxyingHandlerMethodArgumentResolver extends ModelAttributeMethodP return false; } - var type = parameter.getParameterType(); + Class type = parameter.getParameterType(); if (!type.isInterface()) { return false; @@ -97,7 +97,7 @@ public class ProxyingHandlerMethodArgumentResolver extends ModelAttributeMethodP } // Fallback for only user defined interfaces - var packageName = ClassUtils.getPackageName(type); + String packageName = ClassUtils.getPackageName(type); return !IGNORED_PACKAGES.stream().anyMatch(it -> packageName.startsWith(it)); } @@ -106,7 +106,7 @@ public class ProxyingHandlerMethodArgumentResolver extends ModelAttributeMethodP protected Object createAttribute(String attributeName, MethodParameter parameter, WebDataBinderFactory binderFactory, NativeWebRequest request) throws Exception { - var binder = new MapDataBinder(parameter.getParameterType(), conversionService.getObject()); + MapDataBinder binder = new MapDataBinder(parameter.getParameterType(), conversionService.getObject()); binder.bind(new MutablePropertyValues(request.getParameterMap())); return proxyFactory.createProjection(parameter.getParameterType(), binder.getTarget()); diff --git a/src/main/java/org/springframework/data/web/ReactivePageableHandlerMethodArgumentResolver.java b/src/main/java/org/springframework/data/web/ReactivePageableHandlerMethodArgumentResolver.java index 8886e37e7..15e378f72 100644 --- a/src/main/java/org/springframework/data/web/ReactivePageableHandlerMethodArgumentResolver.java +++ b/src/main/java/org/springframework/data/web/ReactivePageableHandlerMethodArgumentResolver.java @@ -18,8 +18,10 @@ package org.springframework.data.web; import org.springframework.core.MethodParameter; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; import org.springframework.lang.NonNull; import org.springframework.util.Assert; +import org.springframework.util.MultiValueMap; import org.springframework.web.reactive.BindingContext; import org.springframework.web.reactive.result.method.SyncHandlerMethodArgumentResolver; import org.springframework.web.server.ServerWebExchange; @@ -68,13 +70,13 @@ public class ReactivePageableHandlerMethodArgumentResolver extends PageableHandl public Pageable resolveArgumentValue(MethodParameter parameter, BindingContext bindingContext, ServerWebExchange exchange) { - var queryParams = exchange.getRequest().getQueryParams(); - var page = queryParams.getFirst(getParameterNameToUse(getPageParameterName(), parameter)); - var pageSize = queryParams.getFirst(getParameterNameToUse(getSizeParameterName(), parameter)); + MultiValueMap queryParams = exchange.getRequest().getQueryParams(); + String page = queryParams.getFirst(getParameterNameToUse(getPageParameterName(), parameter)); + String pageSize = queryParams.getFirst(getParameterNameToUse(getSizeParameterName(), parameter)); - var sort = sortResolver.resolveArgumentValue(parameter, bindingContext, exchange); + Sort sort = sortResolver.resolveArgumentValue(parameter, bindingContext, exchange); - var pageable = getPageable(parameter, page, pageSize); + Pageable pageable = getPageable(parameter, page, pageSize); return sort.isSorted() ? PageRequest.of(pageable.getPageNumber(), pageable.getPageSize(), sort) : pageable; } diff --git a/src/main/java/org/springframework/data/web/ReactiveSortHandlerMethodArgumentResolver.java b/src/main/java/org/springframework/data/web/ReactiveSortHandlerMethodArgumentResolver.java index 8cdec076e..c8b762be9 100644 --- a/src/main/java/org/springframework/data/web/ReactiveSortHandlerMethodArgumentResolver.java +++ b/src/main/java/org/springframework/data/web/ReactiveSortHandlerMethodArgumentResolver.java @@ -15,6 +15,8 @@ */ package org.springframework.data.web; +import java.util.List; + import org.springframework.core.MethodParameter; import org.springframework.data.domain.Sort; import org.springframework.lang.NonNull; @@ -48,7 +50,7 @@ public class ReactiveSortHandlerMethodArgumentResolver extends SortHandlerMethod public Sort resolveArgumentValue(MethodParameter parameter, BindingContext bindingContext, ServerWebExchange exchange) { - var directionParameter = exchange.getRequest().getQueryParams().get(getSortParameter(parameter)); + List directionParameter = exchange.getRequest().getQueryParams().get(getSortParameter(parameter)); // No parameter if (directionParameter == null) { diff --git a/src/main/java/org/springframework/data/web/SortHandlerMethodArgumentResolver.java b/src/main/java/org/springframework/data/web/SortHandlerMethodArgumentResolver.java index 7f56a7ec3..76484675d 100644 --- a/src/main/java/org/springframework/data/web/SortHandlerMethodArgumentResolver.java +++ b/src/main/java/org/springframework/data/web/SortHandlerMethodArgumentResolver.java @@ -49,7 +49,7 @@ public class SortHandlerMethodArgumentResolver extends SortHandlerMethodArgument public Sort resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer, NativeWebRequest webRequest, @Nullable WebDataBinderFactory binderFactory) { - var directionParameter = webRequest.getParameterValues(getSortParameter(parameter)); + String[] directionParameter = webRequest.getParameterValues(getSortParameter(parameter)); // No parameter if (directionParameter == null) { diff --git a/src/main/java/org/springframework/data/web/SortHandlerMethodArgumentResolverSupport.java b/src/main/java/org/springframework/data/web/SortHandlerMethodArgumentResolverSupport.java index 1bb9c3520..71fd4eecd 100644 --- a/src/main/java/org/springframework/data/web/SortHandlerMethodArgumentResolverSupport.java +++ b/src/main/java/org/springframework/data/web/SortHandlerMethodArgumentResolverSupport.java @@ -120,8 +120,8 @@ public abstract class SortHandlerMethodArgumentResolverSupport { */ protected Sort getDefaultFromAnnotationOrFallback(MethodParameter parameter) { - var annotatedDefaults = parameter.getParameterAnnotation(SortDefaults.class); - var annotatedDefault = parameter.getParameterAnnotation(SortDefault.class); + SortDefaults annotatedDefaults = parameter.getParameterAnnotation(SortDefaults.class); + SortDefault annotatedDefault = parameter.getParameterAnnotation(SortDefault.class); if (annotatedDefault != null && annotatedDefaults != null) { throw new IllegalArgumentException( @@ -135,9 +135,9 @@ public abstract class SortHandlerMethodArgumentResolverSupport { if (annotatedDefaults != null) { - var sort = Sort.unsorted(); + Sort sort = Sort.unsorted(); - for (var currentAnnotatedDefault : annotatedDefaults.value()) { + for (SortDefault currentAnnotatedDefault : annotatedDefaults.value()) { sort = appendOrCreateSortTo(currentAnnotatedDefault, sort); } @@ -164,9 +164,9 @@ public abstract class SortHandlerMethodArgumentResolverSupport { } List orders = new ArrayList<>(fields.length); - for (var field : fields) { + for (String field : fields) { - var order = new Order(sortDefault.direction(), field); + Order order = new Order(sortDefault.direction(), field); orders.add(sortDefault.caseSensitive() ? order : order.ignoreCase()); } @@ -181,9 +181,9 @@ public abstract class SortHandlerMethodArgumentResolverSupport { */ protected String getSortParameter(@Nullable MethodParameter parameter) { - var builder = new StringBuilder(); + StringBuilder builder = new StringBuilder(); - var value = SpringDataAnnotationUtils.getQualifier(parameter); + String value = SpringDataAnnotationUtils.getQualifier(parameter); if (StringUtils.hasLength(value)) { builder.append(value); @@ -208,7 +208,7 @@ public abstract class SortHandlerMethodArgumentResolverSupport { List allOrders = new ArrayList<>(); - for (var part : source) { + for (String part : source) { if (part == null) { continue; @@ -235,9 +235,9 @@ public abstract class SortHandlerMethodArgumentResolverSupport { List expressions = new ArrayList<>(); ExpressionBuilder builder = null; - for (var order : sort) { + for (Order order : sort) { - var direction = order.getDirection(); + Direction direction = order.getDirection(); if (builder == null) { builder = new ExpressionBuilder(direction); @@ -265,9 +265,9 @@ public abstract class SortHandlerMethodArgumentResolverSupport { List expressions = new ArrayList<>(); ExpressionBuilder builder = null; - for (var order : sort) { + for (Order order : sort) { - var direction = order.getDirection(); + Direction direction = order.getDirection(); if (builder == null) { builder = new ExpressionBuilder(direction); @@ -388,7 +388,7 @@ public abstract class SortHandlerMethodArgumentResolverSupport { */ public static SortOrderParser parse(String part, String delimiter) { - var elements = Arrays.stream(part.split(delimiter)) // + String[] elements = Arrays.stream(part.split(delimiter)) // .filter(SortHandlerMethodArgumentResolver::notOnlyDots) // .toArray(String[]::new); @@ -427,7 +427,7 @@ public abstract class SortHandlerMethodArgumentResolverSupport { */ public void forEachOrder(Consumer callback) { - for (var i = 0; i < lastIndex; i++) { + for (int i = 0; i < lastIndex; i++) { toOrder(elements[i]).ifPresent(callback); } } @@ -442,7 +442,7 @@ public abstract class SortHandlerMethodArgumentResolverSupport { return Optional.empty(); } - var order = direction.map(it -> new Order(it, property)).orElseGet(() -> Order.by(property)); + Order order = direction.map(it -> new Order(it, property)).orElseGet(() -> Order.by(property)); if (ignoreCase.isPresent()) { return Optional.of(order.ignoreCase()); diff --git a/src/main/java/org/springframework/data/web/SpringDataAnnotationUtils.java b/src/main/java/org/springframework/data/web/SpringDataAnnotationUtils.java index 8455314fd..16d094c90 100644 --- a/src/main/java/org/springframework/data/web/SpringDataAnnotationUtils.java +++ b/src/main/java/org/springframework/data/web/SpringDataAnnotationUtils.java @@ -23,6 +23,7 @@ import java.util.Set; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.core.MethodParameter; import org.springframework.core.annotation.AnnotationUtils; +import org.springframework.core.annotation.MergedAnnotation; import org.springframework.core.annotation.MergedAnnotations; import org.springframework.data.domain.Pageable; import org.springframework.lang.Nullable; @@ -46,14 +47,14 @@ abstract class SpringDataAnnotationUtils { */ public static void assertPageableUniqueness(MethodParameter parameter) { - var method = parameter.getMethod(); + Method method = parameter.getMethod(); if (method == null) { throw new IllegalArgumentException(String.format("Method parameter %s is not backed by a method.", parameter)); } if (containsMoreThanOnePageableParameter(method)) { - var annotations = method.getParameterAnnotations(); + Annotation[][] annotations = method.getParameterAnnotations(); assertQualifiersFor(method.getParameterTypes(), annotations); } } @@ -66,9 +67,9 @@ abstract class SpringDataAnnotationUtils { */ private static boolean containsMoreThanOnePageableParameter(Method method) { - var pageableFound = false; + boolean pageableFound = false; - for (var type : method.getParameterTypes()) { + for (Class type : method.getParameterTypes()) { if (pageableFound && type.equals(Pageable.class)) { return true; @@ -93,10 +94,10 @@ abstract class SpringDataAnnotationUtils { @SuppressWarnings("unchecked") public static T getSpecificPropertyOrDefaultFromValue(Annotation annotation, String property) { - var propertyDefaultValue = AnnotationUtils.getDefaultValue(annotation, property); - var propertyValue = AnnotationUtils.getValue(annotation, property); + Object propertyDefaultValue = AnnotationUtils.getDefaultValue(annotation, property); + Object propertyValue = AnnotationUtils.getValue(annotation, property); - var result = ObjectUtils.nullSafeEquals(propertyDefaultValue, propertyValue) // + Object result = ObjectUtils.nullSafeEquals(propertyDefaultValue, propertyValue) // ? AnnotationUtils.getValue(annotation) // : propertyValue; @@ -121,8 +122,8 @@ abstract class SpringDataAnnotationUtils { return null; } - var annotations = MergedAnnotations.from(parameter.getParameter()); - var qualifier = annotations.get(Qualifier.class); + MergedAnnotations annotations = MergedAnnotations.from(parameter.getParameter()); + MergedAnnotation qualifier = annotations.get(Qualifier.class); return qualifier.isPresent() ? qualifier.getString("value") : null; } @@ -138,11 +139,11 @@ abstract class SpringDataAnnotationUtils { Set values = new HashSet<>(); - for (var i = 0; i < annotations.length; i++) { + for (int i = 0; i < annotations.length; i++) { if (Pageable.class.equals(parameterTypes[i])) { - var qualifier = findAnnotation(annotations[i]); + Qualifier qualifier = findAnnotation(annotations[i]); if (null == qualifier) { throw new IllegalStateException( @@ -168,7 +169,7 @@ abstract class SpringDataAnnotationUtils { @Nullable private static Qualifier findAnnotation(Annotation[] annotations) { - for (var annotation : annotations) { + for (Annotation annotation : annotations) { if (annotation instanceof Qualifier) { return (Qualifier) annotation; } diff --git a/src/main/java/org/springframework/data/web/XmlBeamHttpMessageConverter.java b/src/main/java/org/springframework/data/web/XmlBeamHttpMessageConverter.java index cadc6f2d8..3135b8f71 100644 --- a/src/main/java/org/springframework/data/web/XmlBeamHttpMessageConverter.java +++ b/src/main/java/org/springframework/data/web/XmlBeamHttpMessageConverter.java @@ -62,7 +62,7 @@ public class XmlBeamHttpMessageConverter extends AbstractHttpMessageConverter type) { - var rawType = ResolvableType.forType(type).resolve(Object.class); - var result = supportedTypesCache.get(rawType); + Class rawType = ResolvableType.forType(type).resolve(Object.class); + Boolean result = supportedTypesCache.get(rawType); if (result != null) { return result; @@ -118,7 +118,7 @@ public class XmlBeamHttpMessageConverter extends AbstractHttpMessageConverter currentResolvers = adapter.getArgumentResolvers(); if (currentResolvers == null) { throw new IllegalStateException( diff --git a/src/main/java/org/springframework/data/web/config/SpringDataWebConfiguration.java b/src/main/java/org/springframework/data/web/config/SpringDataWebConfiguration.java index 8b8a38ec1..8b2b2ae55 100644 --- a/src/main/java/org/springframework/data/web/config/SpringDataWebConfiguration.java +++ b/src/main/java/org/springframework/data/web/config/SpringDataWebConfiguration.java @@ -93,7 +93,7 @@ public class SpringDataWebConfiguration implements WebMvcConfigurer, BeanClassLo @Bean public PageableHandlerMethodArgumentResolver pageableResolver() { - var pageableResolver = // + PageableHandlerMethodArgumentResolver pageableResolver = // new PageableHandlerMethodArgumentResolver(sortResolver.get()); customizePageableResolver(pageableResolver); return pageableResolver; @@ -102,7 +102,7 @@ public class SpringDataWebConfiguration implements WebMvcConfigurer, BeanClassLo @Bean public SortHandlerMethodArgumentResolver sortResolver() { - var sortResolver = new SortHandlerMethodArgumentResolver(); + SortHandlerMethodArgumentResolver sortResolver = new SortHandlerMethodArgumentResolver(); customizeSortResolver(sortResolver); return sortResolver; } @@ -117,7 +117,8 @@ public class SpringDataWebConfiguration implements WebMvcConfigurer, BeanClassLo return; } - var converter = new DomainClassConverter(conversionService); + DomainClassConverter converter = new DomainClassConverter( + conversionService); converter.setApplicationContext(context); } @@ -127,7 +128,7 @@ public class SpringDataWebConfiguration implements WebMvcConfigurer, BeanClassLo argumentResolvers.add(sortResolver.get()); argumentResolvers.add(pageableResolver.get()); - var resolver = new ProxyingHandlerMethodArgumentResolver(conversionService, true); + ProxyingHandlerMethodArgumentResolver resolver = new ProxyingHandlerMethodArgumentResolver(conversionService, true); resolver.setBeanFactory(context); forwardBeanClassLoader(resolver); @@ -140,9 +141,9 @@ public class SpringDataWebConfiguration implements WebMvcConfigurer, BeanClassLo if (ClassUtils.isPresent("com.jayway.jsonpath.DocumentContext", context.getClassLoader()) && ClassUtils.isPresent("com.fasterxml.jackson.databind.ObjectMapper", context.getClassLoader())) { - var mapper = context.getBeanProvider(ObjectMapper.class).getIfUnique(ObjectMapper::new); + ObjectMapper mapper = context.getBeanProvider(ObjectMapper.class).getIfUnique(ObjectMapper::new); - var converter = new ProjectingJackson2HttpMessageConverter(mapper); + ProjectingJackson2HttpMessageConverter converter = new ProjectingJackson2HttpMessageConverter(mapper); converter.setBeanFactory(context); forwardBeanClassLoader(converter); diff --git a/src/main/java/org/springframework/data/web/querydsl/QuerydslPredicateArgumentResolver.java b/src/main/java/org/springframework/data/web/querydsl/QuerydslPredicateArgumentResolver.java index 7ba65a63b..6ca1508bc 100644 --- a/src/main/java/org/springframework/data/web/querydsl/QuerydslPredicateArgumentResolver.java +++ b/src/main/java/org/springframework/data/web/querydsl/QuerydslPredicateArgumentResolver.java @@ -16,6 +16,7 @@ package org.springframework.data.web.querydsl; import java.util.Arrays; +import java.util.Map; import java.util.Optional; import org.springframework.core.MethodParameter; @@ -30,6 +31,8 @@ import org.springframework.web.context.request.NativeWebRequest; import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.method.support.ModelAndViewContainer; +import com.querydsl.core.types.Predicate; + /** * {@link HandlerMethodArgumentResolver} to allow injection of {@link com.querydsl.core.types.Predicate} into Spring MVC * controller methods. @@ -71,18 +74,18 @@ public class QuerydslPredicateArgumentResolver extends QuerydslPredicateArgument public Object resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer, NativeWebRequest webRequest, @Nullable WebDataBinderFactory binderFactory) throws Exception { - var queryParameters = getQueryParameters(webRequest); - var result = getPredicate(parameter, queryParameters); + MultiValueMap queryParameters = getQueryParameters(webRequest); + Predicate result = getPredicate(parameter, queryParameters); return potentiallyConvertMethodParameterValue(parameter, result); } private static MultiValueMap getQueryParameters(NativeWebRequest webRequest) { - var parameterMap = webRequest.getParameterMap(); + Map parameterMap = webRequest.getParameterMap(); MultiValueMap queryParameters = new LinkedMultiValueMap<>(parameterMap.size()); - for (var entry : parameterMap.entrySet()) { + for (Map.Entry entry : parameterMap.entrySet()) { queryParameters.put(entry.getKey(), Arrays.asList(entry.getValue())); } diff --git a/src/main/java/org/springframework/data/web/querydsl/QuerydslPredicateArgumentResolverSupport.java b/src/main/java/org/springframework/data/web/querydsl/QuerydslPredicateArgumentResolverSupport.java index 71051e5fe..76867ec8e 100644 --- a/src/main/java/org/springframework/data/web/querydsl/QuerydslPredicateArgumentResolverSupport.java +++ b/src/main/java/org/springframework/data/web/querydsl/QuerydslPredicateArgumentResolverSupport.java @@ -15,6 +15,7 @@ */ package org.springframework.data.web.querydsl; +import java.lang.reflect.Method; import java.util.Optional; import org.springframework.core.MethodParameter; @@ -23,6 +24,7 @@ import org.springframework.core.annotation.MergedAnnotation; import org.springframework.core.annotation.MergedAnnotations; import org.springframework.core.convert.ConversionService; import org.springframework.data.querydsl.binding.QuerydslBinderCustomizer; +import org.springframework.data.querydsl.binding.QuerydslBindings; import org.springframework.data.querydsl.binding.QuerydslBindingsFactory; import org.springframework.data.querydsl.binding.QuerydslPredicate; import org.springframework.data.querydsl.binding.QuerydslPredicateBuilder; @@ -72,13 +74,13 @@ public abstract class QuerydslPredicateArgumentResolverSupport { public boolean supportsParameter(MethodParameter parameter) { - var type = ResolvableType.forMethodParameter(parameter); + ResolvableType type = ResolvableType.forMethodParameter(parameter); if (PREDICATE.isAssignableFrom(type) || OPTIONAL_OF_PREDICATE.isAssignableFrom(type)) { return true; } - var annotations = MergedAnnotations.from(parameter.getParameter()); + MergedAnnotations annotations = MergedAnnotations.from(parameter.getParameter()); if (annotations.isPresent(QuerydslPredicate.class)) { throw new IllegalArgumentException(String.format("Parameter at position %s must be of type Predicate but was %s.", @@ -90,15 +92,15 @@ public abstract class QuerydslPredicateArgumentResolverSupport { Predicate getPredicate(MethodParameter parameter, MultiValueMap queryParameters) { - var annotations = MergedAnnotations.from(parameter.getParameter()); - var predicateAnnotation = annotations.get(QuerydslPredicate.class); + MergedAnnotations annotations = MergedAnnotations.from(parameter.getParameter()); + MergedAnnotation predicateAnnotation = annotations.get(QuerydslPredicate.class); - var domainType = extractTypeInfo(parameter, predicateAnnotation).getRequiredActualType(); + TypeInformation domainType = extractTypeInfo(parameter, predicateAnnotation).getRequiredActualType(); Optional>> bindingsAnnotation = predicateAnnotation.getValue("bindings") // .map(CastUtils::cast); - var bindings = bindingsAnnotation // + QuerydslBindings bindings = bindingsAnnotation // .map(it -> bindingsFactory.createBindingsFor(domainType, it)) // .orElseGet(() -> bindingsFactory.createBindingsFor(domainType)); @@ -129,7 +131,7 @@ public abstract class QuerydslPredicateArgumentResolverSupport { protected static TypeInformation extractTypeInfo(MethodParameter parameter, MergedAnnotation predicateAnnotation) { - var annotation = predicateAnnotation.synthesize(MergedAnnotation::isPresent); + Optional annotation = predicateAnnotation.synthesize(MergedAnnotation::isPresent); return annotation.filter(it -> !Object.class.equals(it.root()))// .> map(it -> ClassTypeInformation.from(it.root()))// @@ -138,7 +140,7 @@ public abstract class QuerydslPredicateArgumentResolverSupport { private static TypeInformation detectDomainType(MethodParameter parameter) { - var method = parameter.getMethod(); + Method method = parameter.getMethod(); if (method == null) { throw new IllegalArgumentException("Method parameter is not backed by a method!"); @@ -153,7 +155,7 @@ public abstract class QuerydslPredicateArgumentResolverSupport { return source; } - var actualType = source.getActualType(); + TypeInformation actualType = source.getActualType(); if (actualType == null) { throw new IllegalArgumentException(String.format("Could not determine domain type from %s!", source)); diff --git a/src/main/java/org/springframework/data/web/querydsl/ReactiveQuerydslPredicateArgumentResolver.java b/src/main/java/org/springframework/data/web/querydsl/ReactiveQuerydslPredicateArgumentResolver.java index 49c60eb8f..b87eda0af 100644 --- a/src/main/java/org/springframework/data/web/querydsl/ReactiveQuerydslPredicateArgumentResolver.java +++ b/src/main/java/org/springframework/data/web/querydsl/ReactiveQuerydslPredicateArgumentResolver.java @@ -15,6 +15,9 @@ */ package org.springframework.data.web.querydsl; +import java.util.List; +import java.util.Map; + import org.springframework.core.MethodParameter; import org.springframework.core.convert.ConversionService; import org.springframework.data.querydsl.binding.QuerydslBindingsFactory; @@ -26,6 +29,8 @@ import org.springframework.web.reactive.result.method.HandlerMethodArgumentResol import org.springframework.web.reactive.result.method.SyncHandlerMethodArgumentResolver; import org.springframework.web.server.ServerWebExchange; +import com.querydsl.core.types.Predicate; + /** * {@link HandlerMethodArgumentResolver} to allow injection of {@link com.querydsl.core.types.Predicate} into Spring * WebFlux controller methods. @@ -47,8 +52,8 @@ public class ReactiveQuerydslPredicateArgumentResolver extends QuerydslPredicate public Object resolveArgumentValue(MethodParameter parameter, BindingContext bindingContext, ServerWebExchange exchange) { - var queryParameters = getQueryParameters(exchange); - var result = getPredicate(parameter, queryParameters); + MultiValueMap queryParameters = getQueryParameters(exchange); + Predicate result = getPredicate(parameter, queryParameters); return potentiallyConvertMethodParameterValue(parameter, result); } @@ -56,10 +61,10 @@ public class ReactiveQuerydslPredicateArgumentResolver extends QuerydslPredicate private static MultiValueMap getQueryParameters(ServerWebExchange exchange) { - var queryParams = exchange.getRequest().getQueryParams(); + MultiValueMap queryParams = exchange.getRequest().getQueryParams(); MultiValueMap parameters = new LinkedMultiValueMap<>(queryParams.size()); - for (var entry : queryParams.entrySet()) { + for (Map.Entry> entry : queryParams.entrySet()) { parameters.put(entry.getKey(), entry.getValue()); }