diff --git a/src/main/java/org/springframework/data/aot/DefaultAotContext.java b/src/main/java/org/springframework/data/aot/DefaultAotContext.java index e797ab6518..ec4912b3bc 100644 --- a/src/main/java/org/springframework/data/aot/DefaultAotContext.java +++ b/src/main/java/org/springframework/data/aot/DefaultAotContext.java @@ -32,6 +32,7 @@ * Default {@link AotContext} implementation. * * @author Mark Paluch + * @author Ngoc Nhan * @since 3.0 */ class DefaultAotContext implements AotContext { @@ -39,7 +40,7 @@ class DefaultAotContext implements AotContext { private final ConfigurableListableBeanFactory factory; public DefaultAotContext(BeanFactory beanFactory) { - factory = beanFactory instanceof ConfigurableListableBeanFactory ? (ConfigurableListableBeanFactory) beanFactory + factory = beanFactory instanceof ConfigurableListableBeanFactory configurableListableBeanFactory ? configurableListableBeanFactory : new DefaultListableBeanFactory(beanFactory); } diff --git a/src/main/java/org/springframework/data/convert/DefaultConverterBuilder.java b/src/main/java/org/springframework/data/convert/DefaultConverterBuilder.java index bb09323529..715d1f8f94 100644 --- a/src/main/java/org/springframework/data/convert/DefaultConverterBuilder.java +++ b/src/main/java/org/springframework/data/convert/DefaultConverterBuilder.java @@ -39,6 +39,7 @@ * @author Oliver Gierke * @author Mark Paluch * @author Johannes Englmeier + * @author Ngoc Nhan * @since 2.0 * @see ConverterBuilder#writing(Class, Class, Function) * @see ConverterBuilder#reading(Class, Class, Function) @@ -93,12 +94,12 @@ private ConvertiblePair invertedPair() { DefaultConverterBuilder withWriting(Optional> writing) { return this.writing == writing ? this - : new DefaultConverterBuilder(this.convertiblePair, writing, this.reading); + : new DefaultConverterBuilder<>(this.convertiblePair, writing, this.reading); } DefaultConverterBuilder withReading(Optional> reading) { return this.reading == reading ? this - : new DefaultConverterBuilder(this.convertiblePair, this.writing, reading); + : new DefaultConverterBuilder<>(this.convertiblePair, this.writing, reading); } private static class ConfigurableGenericConverter implements GenericConverter { diff --git a/src/main/java/org/springframework/data/convert/DefaultTypeMapper.java b/src/main/java/org/springframework/data/convert/DefaultTypeMapper.java index 35dec3f555..d359c22ca6 100644 --- a/src/main/java/org/springframework/data/convert/DefaultTypeMapper.java +++ b/src/main/java/org/springframework/data/convert/DefaultTypeMapper.java @@ -38,6 +38,7 @@ * @author Thomas Darimont * @author Christoph Strobl * @author Mark Paluch + * @author Ngoc Nhan */ public class DefaultTypeMapper implements TypeMapper, BeanClassLoaderAware { @@ -199,8 +200,8 @@ public void writeType(TypeInformation info, S sink) { @Override public void setBeanClassLoader(ClassLoader classLoader) { for (TypeInformationMapper mapper : mappers) { - if (mapper instanceof BeanClassLoaderAware) { - ((BeanClassLoaderAware) mapper).setBeanClassLoader(classLoader); + if (mapper instanceof BeanClassLoaderAware beanClassLoaderAware) { + beanClassLoaderAware.setBeanClassLoader(classLoader); } } } diff --git a/src/main/java/org/springframework/data/domain/SliceImpl.java b/src/main/java/org/springframework/data/domain/SliceImpl.java index aa15dfb4d6..49d1939bfc 100644 --- a/src/main/java/org/springframework/data/domain/SliceImpl.java +++ b/src/main/java/org/springframework/data/domain/SliceImpl.java @@ -25,6 +25,7 @@ * * @author Oliver Gierke * @author Keegan Witt + * @author Ngoc Nhan * @since 1.8 */ public class SliceImpl extends Chunk { @@ -74,7 +75,7 @@ public String toString() { String contentType = "UNKNOWN"; List content = getContent(); - if (content.size() > 0) { + if (!content.isEmpty()) { contentType = content.get(0).getClass().getName(); } diff --git a/src/main/java/org/springframework/data/domain/Sort.java b/src/main/java/org/springframework/data/domain/Sort.java index 78d9725b79..28e8c2c712 100644 --- a/src/main/java/org/springframework/data/domain/Sort.java +++ b/src/main/java/org/springframework/data/domain/Sort.java @@ -44,6 +44,7 @@ * @author Mark Paluch * @author Johannes Englmeier * @author Jan Kurella + * @author Ngoc Nhan */ public class Sort implements Streamable, Serializable { @@ -204,7 +205,7 @@ public Sort and(Sort sort) { Assert.notNull(sort, "Sort must not be null"); - List these = new ArrayList(this.toList()); + List these = new ArrayList<>(this.toList()); for (Order order : sort) { these.add(order); diff --git a/src/main/java/org/springframework/data/history/AnnotationRevisionMetadata.java b/src/main/java/org/springframework/data/history/AnnotationRevisionMetadata.java index 91564dbd71..28b6ff6df2 100755 --- a/src/main/java/org/springframework/data/history/AnnotationRevisionMetadata.java +++ b/src/main/java/org/springframework/data/history/AnnotationRevisionMetadata.java @@ -37,6 +37,7 @@ * @author Jens Schauder * @author Mark Paluch * @author Johannes Englmeier + * @author Ngoc Nhan */ public class AnnotationRevisionMetadata> implements RevisionMetadata { @@ -120,20 +121,20 @@ private static Lazy> detectAnnotation(Object entity, Class GetOptions registerHandler(PersistentProperty property, Class t Assert.isTrue(type.isAssignableFrom(property.getType()), () -> String .format("Cannot register a property handler for %s on a property of type %s", type, property.getType())); - Function caster = (Function) it -> type.cast(it); + Function caster = type::cast; return registerHandler(property, caster.andThen(handler)); } diff --git a/src/main/java/org/springframework/data/mapping/PropertyPath.java b/src/main/java/org/springframework/data/mapping/PropertyPath.java index 62b320c64a..23e68e9727 100644 --- a/src/main/java/org/springframework/data/mapping/PropertyPath.java +++ b/src/main/java/org/springframework/data/mapping/PropertyPath.java @@ -41,6 +41,7 @@ * @author Mark Paluch * @author Mariusz Mączkowski * @author Johannes Englmeier + * @author Ngoc Nhan */ public class PropertyPath implements Streamable { @@ -377,7 +378,7 @@ public static PropertyPath from(String source, TypeInformation type) { Iterator parts = iteratorSource.iterator(); PropertyPath result = null; - Stack current = new Stack(); + Stack current = new Stack<>(); while (parts.hasNext()) { if (result == null) { 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 65845974c1..7e24fa37b0 100644 --- a/src/main/java/org/springframework/data/mapping/context/DefaultPersistentPropertyPath.java +++ b/src/main/java/org/springframework/data/mapping/context/DefaultPersistentPropertyPath.java @@ -33,6 +33,7 @@ * * @author Oliver Gierke * @author Christoph Strobl + * @author Ngoc Nhan */ class DefaultPersistentPropertyPath

> implements PersistentPropertyPath

{ @@ -135,7 +136,7 @@ public String toPath(String delimiter, Converter converter) { @Override public P getLeafProperty() { - Assert.state(properties.size() > 0, "Empty PersistentPropertyPath should not exist"); + Assert.state(!properties.isEmpty(), "Empty PersistentPropertyPath should not exist"); return properties.get(properties.size() - 1); } @@ -143,7 +144,7 @@ public P getLeafProperty() { @Override public P getBaseProperty() { - Assert.state(properties.size() > 0, "Empty PersistentPropertyPath should not exist"); + Assert.state(!properties.isEmpty(), "Empty PersistentPropertyPath should not exist"); return properties.get(0); } @@ -208,9 +209,8 @@ public Iterator

iterator() { */ public boolean containsPropertyOfType(@Nullable TypeInformation type) { - return type == null // - ? false // - : properties.stream() // + return type != null // + && properties.stream() // .anyMatch(property -> type.equals(property.getTypeInformation().getActualType())); } 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 cb49d8e423..0630eda82b 100644 --- a/src/main/java/org/springframework/data/mapping/model/PersistentEntityIsNewStrategy.java +++ b/src/main/java/org/springframework/data/mapping/model/PersistentEntityIsNewStrategy.java @@ -29,6 +29,7 @@ * @author Oliver Gierke * @author Mark Paluch * @author Johannes Englmeier + * @author Ngoc Nhan * @soundtrack Scary Pockets - Crash Into Me (Dave Matthews Band Cover feat. Julia Nunes) - * https://www.youtube.com/watch?v=syGlBNVGEqU */ @@ -100,8 +101,8 @@ public boolean isNew(Object entity) { return false; } - if (value instanceof Number) { - return ((Number) value).longValue() == 0; + if (value instanceof Number number) { + return number.longValue() == 0; } throw new IllegalArgumentException( 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 be2c878e0c..5e8bcc159f 100644 --- a/src/main/java/org/springframework/data/mapping/model/Property.java +++ b/src/main/java/org/springframework/data/mapping/model/Property.java @@ -37,6 +37,7 @@ * @author Oliver Gierke * @author Christoph Strobl * @author Mark Paluch + * @author Ngoc Nhan */ public class Property { @@ -264,7 +265,7 @@ private T withFieldOrDescriptor(Function field, private static Optional findWither(TypeInformation owner, String propertyName, Class rawType) { - AtomicReference resultHolder = new AtomicReference(); + AtomicReference resultHolder = new AtomicReference<>(); String methodName = String.format("with%s", StringUtils.capitalize(propertyName)); ReflectionUtils.doWithMethods(owner.getType(), it -> { 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 e8db3efb5b..90a1c6e94e 100644 --- a/src/main/java/org/springframework/data/mapping/model/SimplePersistentPropertyPathAccessor.java +++ b/src/main/java/org/springframework/data/mapping/model/SimplePersistentPropertyPathAccessor.java @@ -46,6 +46,7 @@ * * @author Oliver Gierke * @author Johannes Englmeier + * @author Ngoc Nhan * @since 2.3 * @soundtrack Ron Spielman - Nineth Song (Tip of My Tongue) */ @@ -167,7 +168,7 @@ public void setProperty(PersistentPropertyPath> .map(it -> setValue(it, leafProperty, value)) // .collect(Collectors.toCollection(() -> CollectionFactory.createApproximateCollection(source, source.size()))); - } else if (Map.class.isInstance(parent)) { + } else if (parent instanceof Map) { Map source = getTypedProperty(parentProperty, Map.class); diff --git a/src/main/java/org/springframework/data/projection/ProxyProjectionFactory.java b/src/main/java/org/springframework/data/projection/ProxyProjectionFactory.java index 1f5271c160..557e9aa619 100644 --- a/src/main/java/org/springframework/data/projection/ProxyProjectionFactory.java +++ b/src/main/java/org/springframework/data/projection/ProxyProjectionFactory.java @@ -46,6 +46,7 @@ * @author Christoph Strobl * @author Mark Paluch * @author Jens Schauder + * @author Ngoc Nhan * @see SpelAwareProxyProjectionFactory * @since 1.10 */ @@ -261,7 +262,7 @@ public MethodInterceptor createMethodInterceptor(Object source, Class targetT @Override public boolean supports(Object source, Class targetType) { - return Map.class.isInstance(source); + return source instanceof Map; } } diff --git a/src/main/java/org/springframework/data/projection/SpelAwareProxyProjectionFactory.java b/src/main/java/org/springframework/data/projection/SpelAwareProxyProjectionFactory.java index edf3150ece..f9e21632ed 100644 --- a/src/main/java/org/springframework/data/projection/SpelAwareProxyProjectionFactory.java +++ b/src/main/java/org/springframework/data/projection/SpelAwareProxyProjectionFactory.java @@ -42,6 +42,7 @@ * @author Thomas Darimont * @author Mark Paluch * @author Jens Schauder + * @author Ngoc Nhan * @since 1.10 */ public class SpelAwareProxyProjectionFactory extends ProxyProjectionFactory implements BeanFactoryAware { @@ -108,7 +109,7 @@ private static boolean hasMethodWithValueAnnotation(Class type) { Assert.notNull(type, "Type must not be null"); - AnnotationDetectionMethodCallback callback = new AnnotationDetectionMethodCallback(Value.class); + AnnotationDetectionMethodCallback callback = new AnnotationDetectionMethodCallback<>(Value.class); ReflectionUtils.doWithMethods(type, callback); return callback.hasFoundAnnotation(); 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 8346f1bf8e..da17e10a89 100644 --- a/src/main/java/org/springframework/data/querydsl/binding/QuerydslDefaultBinding.java +++ b/src/main/java/org/springframework/data/querydsl/binding/QuerydslDefaultBinding.java @@ -39,6 +39,7 @@ * @author Oliver Gierke * @author Colin Gao * @author Johannes Englmeier + * @author Ngoc Nhan * @since 1.11 */ class QuerydslDefaultBinding implements MultiValueBinding, Object> { @@ -54,7 +55,7 @@ public Optional bind(Path path, Collection value return Optional.empty(); } - if (path instanceof CollectionPathBase) { + if (path instanceof CollectionPathBase collectionPathBase) { BooleanBuilder builder = new BooleanBuilder(); @@ -63,10 +64,10 @@ public Optional bind(Path path, Collection value if (element instanceof Collection nestedCollection) { for (Object nested : nestedCollection) { - builder.and(((CollectionPathBase) path).contains(nested)); + builder.and(collectionPathBase.contains(nested)); } } else { - builder.and(((CollectionPathBase) path).contains(element)); + builder.and(collectionPathBase.contains(element)); } } 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 1f34f5bc08..4f7c69d9ee 100644 --- a/src/main/java/org/springframework/data/repository/config/RepositoryBeanNameGenerator.java +++ b/src/main/java/org/springframework/data/repository/config/RepositoryBeanNameGenerator.java @@ -34,6 +34,7 @@ * @author Jens Schauder * @author Mark Paluch * @author Johannes Englmeier + * @author Ngoc Nhan */ class RepositoryBeanNameGenerator { @@ -70,8 +71,8 @@ public RepositoryBeanNameGenerator(ClassLoader beanClassLoader, BeanNameGenerato */ public String generateBeanName(BeanDefinition definition) { - AnnotatedBeanDefinition beanDefinition = definition instanceof AnnotatedBeanDefinition // - ? (AnnotatedBeanDefinition) definition // + AnnotatedBeanDefinition beanDefinition = definition instanceof AnnotatedBeanDefinition annotatedBeanDefinition // + ? annotatedBeanDefinition // : new AnnotatedGenericBeanDefinition(getRepositoryInterfaceFrom(definition)); return generator.generateBeanName(beanDefinition, registry); 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 7999b98268..bdc0328999 100644 --- a/src/main/java/org/springframework/data/repository/config/RepositoryComponentProvider.java +++ b/src/main/java/org/springframework/data/repository/config/RepositoryComponentProvider.java @@ -119,8 +119,8 @@ public Set findCandidateComponents(String basePackage) { Set candidates = super.findCandidateComponents(basePackage); for (BeanDefinition candidate : candidates) { - if (candidate instanceof AnnotatedBeanDefinition) { - AnnotationConfigUtils.processCommonDefinitionAnnotations((AnnotatedBeanDefinition) candidate); + if (candidate instanceof AnnotatedBeanDefinition annotatedBeanDefinition) { + AnnotationConfigUtils.processCommonDefinitionAnnotations(annotatedBeanDefinition); } } 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 aad4756add..21be145f3e 100644 --- a/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationDelegate.java +++ b/src/main/java/org/springframework/data/repository/config/RepositoryConfigurationDelegate.java @@ -123,7 +123,7 @@ private static Environment defaultEnvironment(@Nullable Environment environment, return environment; } - return resourceLoader instanceof EnvironmentCapable ? ((EnvironmentCapable) resourceLoader).getEnvironment() + return resourceLoader instanceof EnvironmentCapable environmentCapable ? environmentCapable.getEnvironment() : new StandardEnvironment(); } @@ -248,11 +248,10 @@ private void registerAotComponents(BeanDefinitionRegistry registry, RepositoryCo private static void potentiallyLazifyRepositories(Map> configurations, BeanDefinitionRegistry registry, BootstrapMode mode) { - if (!DefaultListableBeanFactory.class.isInstance(registry) || BootstrapMode.DEFAULT.equals(mode)) { + if (!(registry instanceof DefaultListableBeanFactory beanFactory) || BootstrapMode.DEFAULT.equals(mode)) { return; } - DefaultListableBeanFactory beanFactory = DefaultListableBeanFactory.class.cast(registry); AutowireCandidateResolver resolver = beanFactory.getAutowireCandidateResolver(); if (!Arrays.asList(ContextAnnotationAutowireCandidateResolver.class, LazyRepositoryInjectionPointResolver.class) @@ -263,8 +262,8 @@ private static void potentiallyLazifyRepositories(Map { @@ -49,7 +50,7 @@ static SelectionSet of(Collection collection) { } public static SelectionSet of(Collection collection, Function, Optional> fallback) { - return new SelectionSet(collection, fallback); + return new SelectionSet<>(collection, fallback); } /** 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 d93c0a7162..01ad5b1272 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 @@ -27,6 +27,7 @@ * @author Nick Williams * @author Mark Paluch * @author Johannes Englmeier + * @author Ngoc Nhan */ public abstract class AbstractEntityInformation implements EntityInformation { @@ -48,8 +49,8 @@ public boolean isNew(T entity) { return id == null; } - if (id instanceof Number) { - return ((Number) id).longValue() == 0L; + if (id instanceof Number number) { + return number.longValue() == 0L; } throw new IllegalArgumentException(String.format("Unsupported primitive id type %s", idType)); 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 9036e6beb1..42c9497083 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 @@ -48,6 +48,7 @@ * @author Christoph Strobl * @author Yuki Yoshida * @author Réda Housni Alaoui + * @author Ngoc Nhan * @since 1.13 * @soundtrack Henrik Freischlader Trio - Master Plan (Openness) */ @@ -300,8 +301,8 @@ private static Collection asCollection(@Nullable Object source) { return Collections.emptyList(); } - if (Collection.class.isInstance(source)) { - return new ArrayList<>((Collection) source); + if (source instanceof Collection collection) { + return new ArrayList<>(collection); } return Collections.singletonList(source); 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 9438a3fc92..6bc3db0d8b 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 @@ -41,6 +41,7 @@ * @author Oliver Gierke * @author Mark Paluch * @author Jens Schauder + * @author Ngoc Nhan */ class QueryExecutionResultHandler { @@ -239,8 +240,8 @@ private static Object unwrapOptional(@Nullable Object source) { return null; } - return Optional.class.isInstance(source) // - ? Optional.class.cast(source).orElse(null) // + return source instanceof Optional optional // + ? optional.orElse(null) // : source; } @@ -266,7 +267,7 @@ private static boolean processingRequired(@Nullable Object source, MethodParamet return !targetType.isInstance(source) // || source == null // - || Collection.class.isInstance(source); + || source instanceof Collection; } /** 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 b1a8f155ff..b10332695b 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 @@ -61,6 +61,7 @@ * @author Thomas Darimont * @author Mark Paluch * @author Johannes Englmeier + * @author Ngoc Nhan */ public abstract class RepositoryFactoryBeanSupport, S, ID> implements InitializingBean, RepositoryFactoryInformation, FactoryBean, BeanClassLoaderAware, @@ -115,7 +116,7 @@ public void setRepositoryBaseClass(Class repositoryBaseClass) { *

* Default is "false", in order to avoid unnecessary extra interception. This means that no guarantees are provided * that {@code RepositoryMethodContext} access will work consistently within any method of the advised object. - * + * * @since 3.4.0 */ public void setExposeMetadata(boolean exposeMetadata) { @@ -210,9 +211,8 @@ public void setBeanFactory(BeanFactory beanFactory) throws BeansException { this.beanFactory = beanFactory; - if (!this.evaluationContextProvider.isPresent() && ListableBeanFactory.class.isInstance(beanFactory)) { - this.evaluationContextProvider = createDefaultQueryMethodEvaluationContextProvider( - (ListableBeanFactory) beanFactory); + if (this.evaluationContextProvider.isEmpty() && beanFactory instanceof ListableBeanFactory listableBeanFactory) { + this.evaluationContextProvider = createDefaultQueryMethodEvaluationContextProvider(listableBeanFactory); } } 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 1a1d2a8b07..eb76ed70b5 100644 --- a/src/main/java/org/springframework/data/repository/query/ReactiveExtensionAwareQueryMethodEvaluationContextProvider.java +++ b/src/main/java/org/springframework/data/repository/query/ReactiveExtensionAwareQueryMethodEvaluationContextProvider.java @@ -34,6 +34,7 @@ * instances. * * @author Mark Paluch + * @author Ngoc Nhan * @since 2.4 */ public class ReactiveExtensionAwareQueryMethodEvaluationContextProvider @@ -73,8 +74,8 @@ public ReactiveExtensionAwareQueryMethodEvaluationContextProvider(List> { @@ -115,12 +116,12 @@ private void cacheRepositoryFactory(ListableBeanFactory factory, String name) { Optional beanFactory = Optional.of(factory).map(it -> { - if (it instanceof ConfigurableListableBeanFactory) { - return (ConfigurableListableBeanFactory) it; + if (it instanceof ConfigurableListableBeanFactory configurableListableBeanFactory) { + return configurableListableBeanFactory; } - if (it instanceof ConfigurableApplicationContext) { - return ((ConfigurableApplicationContext) it).getBeanFactory(); + if (it instanceof ConfigurableApplicationContext configurableApplicationContext) { + return configurableApplicationContext.getBeanFactory(); } return null; 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 37fd9cad9b..357d81c6f8 100644 --- a/src/main/java/org/springframework/data/repository/util/ClassUtils.java +++ b/src/main/java/org/springframework/data/repository/util/ClassUtils.java @@ -36,6 +36,7 @@ * @author Oliver Gierke * @author Mark Paluch * @author Johannes Englmeier + * @author Ngoc Nhan */ public abstract class ClassUtils { @@ -196,8 +197,8 @@ public static boolean hasParameterAssignableToType(Method method, Class type) */ public static void unwrapReflectionException(Exception ex) throws Throwable { - if (ex instanceof InvocationTargetException) { - throw ((InvocationTargetException) ex).getTargetException(); + if (ex instanceof InvocationTargetException invocationTargetException) { + throw invocationTargetException.getTargetException(); } throw ex; 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 f9f37fac0d..cc86137e3f 100644 --- a/src/main/java/org/springframework/data/repository/util/QueryExecutionConverters.java +++ b/src/main/java/org/springframework/data/repository/util/QueryExecutionConverters.java @@ -71,6 +71,7 @@ * @author Christoph Strobl * @author Maciek Opała * @author Jens Schauder + * @author Ngoc Nhan * @since 1.8 * @see NullableWrapperConverters */ @@ -80,7 +81,7 @@ public abstract class QueryExecutionConverters { QueryExecutionConverters.class.getClassLoader()); private static final Set WRAPPER_TYPES = new HashSet<>(10, 1.0f); - private static final Set UNWRAPPER_TYPES = new HashSet(10, 1.0f); + private static final Set UNWRAPPER_TYPES = new HashSet<>(10, 1.0f); private static final Set> UNWRAPPERS = new HashSet<>(); private static final Set> ALLOWED_PAGEABLE_TYPES = new HashSet<>(); private static final Map, ExecutionAdapter> EXECUTION_ADAPTER = new HashMap<>(3, 1.0f); diff --git a/src/main/java/org/springframework/data/spel/ExpressionDependencies.java b/src/main/java/org/springframework/data/spel/ExpressionDependencies.java index ea36a55997..b03d88878f 100644 --- a/src/main/java/org/springframework/data/spel/ExpressionDependencies.java +++ b/src/main/java/org/springframework/data/spel/ExpressionDependencies.java @@ -39,6 +39,7 @@ * * @author Mark Paluch * @author Christoph Strobl + * @author Ngoc Nhan * @since 2.4 */ public class ExpressionDependencies implements Streamable { @@ -102,7 +103,7 @@ public static ExpressionDependencies merged(Iterable dep * @return a set of {@link ExpressionDependencies}. */ public static ExpressionDependencies discover(Expression expression) { - return expression instanceof SpelExpression ? discover(((SpelExpression) expression).getAST(), true) : none(); + return expression instanceof SpelExpression spelExpression ? discover(spelExpression.getAST(), true) : none(); } /** @@ -129,13 +130,13 @@ public static ExpressionDependencies discover(SpelNode root, boolean topLevelOnl private static void collectDependencies(SpelNode node, int compoundPosition, Consumer dependencies) { - if (node instanceof MethodReference) { - dependencies.accept(ExpressionDependency.forMethod(((MethodReference) node).getName()).nest(compoundPosition)); + if (node instanceof MethodReference methodReference) { + dependencies.accept(ExpressionDependency.forMethod(methodReference.getName()).nest(compoundPosition)); } - if (node instanceof PropertyOrFieldReference) { + if (node instanceof PropertyOrFieldReference propertyOrFieldReference) { dependencies.accept( - ExpressionDependency.forPropertyOrField(((PropertyOrFieldReference) node).getName()).nest(compoundPosition)); + ExpressionDependency.forPropertyOrField(propertyOrFieldReference.getName()).nest(compoundPosition)); } for (int i = 0; i < node.getChildCount(); i++) { diff --git a/src/main/java/org/springframework/data/spel/ExtensionAwareEvaluationContextProvider.java b/src/main/java/org/springframework/data/spel/ExtensionAwareEvaluationContextProvider.java index 67afc5e0ff..21006b985d 100644 --- a/src/main/java/org/springframework/data/spel/ExtensionAwareEvaluationContextProvider.java +++ b/src/main/java/org/springframework/data/spel/ExtensionAwareEvaluationContextProvider.java @@ -60,6 +60,7 @@ * @author Christoph Strobl * @author Jens Schauder * @author Mark Paluch + * @author Ngoc Nhan * @since 2.1 */ public class ExtensionAwareEvaluationContextProvider implements EvaluationContextProvider { @@ -235,8 +236,8 @@ public boolean canRead(EvaluationContext context, @Nullable Object target, Strin @Override public TypedValue read(EvaluationContext context, @Nullable Object target, String name) { - if (target instanceof EvaluationContextExtensionAdapter) { - return lookupPropertyFrom((EvaluationContextExtensionAdapter) target, name); + if (target instanceof EvaluationContextExtensionAdapter evaluationContextExtensionAdapter) { + return lookupPropertyFrom(evaluationContextExtensionAdapter, name); } if (adapterMap.containsKey(name)) { @@ -254,8 +255,8 @@ public TypedValue read(EvaluationContext context, @Nullable Object target, Strin public MethodExecutor resolve(EvaluationContext context, @Nullable Object target, final String name, List argumentTypes) { - if (target instanceof EvaluationContextExtensionAdapter) { - return getMethodExecutor((EvaluationContextExtensionAdapter) target, name, argumentTypes).orElse(null); + if (target instanceof EvaluationContextExtensionAdapter evaluationContextExtensionAdapter) { + return getMethodExecutor(evaluationContextExtensionAdapter, name, argumentTypes).orElse(null); } return adapters.stream()// diff --git a/src/main/java/org/springframework/data/util/LazyStreamable.java b/src/main/java/org/springframework/data/util/LazyStreamable.java index f1c7afd410..94c7eb274f 100644 --- a/src/main/java/org/springframework/data/util/LazyStreamable.java +++ b/src/main/java/org/springframework/data/util/LazyStreamable.java @@ -23,6 +23,7 @@ * Lazy implementation of {@link Streamable} obtains a {@link Stream} from a given {@link Supplier}. * * @author Oliver Gierke + * @author Ngoc Nhan * @since 2.0 */ final class LazyStreamable implements Streamable { @@ -34,7 +35,7 @@ private LazyStreamable(Supplier> stream) { } public static LazyStreamable of(Supplier> stream) { - return new LazyStreamable(stream); + return new LazyStreamable<>(stream); } @Override diff --git a/src/main/java/org/springframework/data/util/MethodInvocationRecorder.java b/src/main/java/org/springframework/data/util/MethodInvocationRecorder.java index f49132dbf7..89d801c2ee 100644 --- a/src/main/java/org/springframework/data/util/MethodInvocationRecorder.java +++ b/src/main/java/org/springframework/data/util/MethodInvocationRecorder.java @@ -41,6 +41,7 @@ * * @author Oliver Gierke * @author Johannes Englmeier + * @author Ngoc Nhan * @since 2.2 * @soundtrack The Intersphere - Don't Think Twice (The Grand Delusion) */ @@ -99,7 +100,7 @@ private Recorded create(Class type) { T proxy = (T) proxyFactory.getProxy(type.getClassLoader()); - return new Recorded(proxy, new MethodInvocationRecorder(Optional.ofNullable(interceptor))); + return new Recorded<>(proxy, new MethodInvocationRecorder(Optional.ofNullable(interceptor))); } private Optional getPropertyPath(List strategies) { @@ -319,7 +320,7 @@ public Recorded record(Function converter) { Assert.notNull(converter, "Function must not be null"); - return new Recorded(converter.apply(currentInstance), recorder); + return new Recorded<>(converter.apply(currentInstance), recorder); } /** @@ -332,7 +333,7 @@ public Recorded record(ToCollectionConverter converter) { Assert.notNull(converter, "Converter must not be null"); - return new Recorded(converter.apply(currentInstance).iterator().next(), recorder); + return new Recorded<>(converter.apply(currentInstance).iterator().next(), recorder); } /** @@ -345,7 +346,7 @@ public Recorded record(ToMapConverter converter) { Assert.notNull(converter, "Converter must not be null"); - return new Recorded(converter.apply(currentInstance).values().iterator().next(), recorder); + return new Recorded<>(converter.apply(currentInstance).values().iterator().next(), recorder); } @Override diff --git a/src/main/java/org/springframework/data/util/MultiValueMapCollector.java b/src/main/java/org/springframework/data/util/MultiValueMapCollector.java index aff28c0ed0..98799a0ab8 100644 --- a/src/main/java/org/springframework/data/util/MultiValueMapCollector.java +++ b/src/main/java/org/springframework/data/util/MultiValueMapCollector.java @@ -31,6 +31,7 @@ * A {@link Collector} for building a {@link MultiValueMap} from a {@link java.util.stream.Stream}. * * @author Jens Schauder + * @author Ngoc Nhan * @since 2.0 */ class MultiValueMapCollector implements Collector, MultiValueMap> { @@ -44,7 +45,7 @@ private MultiValueMapCollector(Function keyFunction, Function valueF } static MultiValueMapCollector of(Function keyFunction, Function valueFunction) { - return new MultiValueMapCollector(keyFunction, valueFunction); + return new MultiValueMapCollector<>(keyFunction, valueFunction); } @Override diff --git a/src/main/java/org/springframework/data/util/NullableWrapperConverters.java b/src/main/java/org/springframework/data/util/NullableWrapperConverters.java index 044198c905..429a17772a 100644 --- a/src/main/java/org/springframework/data/util/NullableWrapperConverters.java +++ b/src/main/java/org/springframework/data/util/NullableWrapperConverters.java @@ -53,6 +53,7 @@ * @author Christoph Strobl * @author Maciek Opała * @author Jens Schauder + * @author Ngoc Nhan * @since 2.4 */ public abstract class NullableWrapperConverters { @@ -64,9 +65,9 @@ public abstract class NullableWrapperConverters { private static final boolean VAVR_PRESENT = ClassUtils.isPresent("io.vavr.control.Option", NullableWrapperConverters.class.getClassLoader()); - private static final Set WRAPPER_TYPES = new HashSet(); - private static final Set UNWRAPPER_TYPES = new HashSet(); - private static final Set> UNWRAPPERS = new HashSet>(); + private static final Set WRAPPER_TYPES = new HashSet<>(); + private static final Set UNWRAPPER_TYPES = new HashSet<>(); + private static final Set> UNWRAPPERS = new HashSet<>(); private static final Map, Boolean> supportsCache = new ConcurrentReferenceHashMap<>(); static { diff --git a/src/main/java/org/springframework/data/util/StreamUtils.java b/src/main/java/org/springframework/data/util/StreamUtils.java index 075f02bd97..f15102e622 100644 --- a/src/main/java/org/springframework/data/util/StreamUtils.java +++ b/src/main/java/org/springframework/data/util/StreamUtils.java @@ -40,6 +40,7 @@ * * @author Thomas Darimont * @author Oliver Gierke + * @author Ngoc Nhan * @since 1.10 */ public interface StreamUtils { @@ -141,8 +142,8 @@ static Stream zip(Stream left, Stream right, BiFunction action) { - Sink leftSink = new Sink(); - Sink rightSink = new Sink(); + Sink leftSink = new Sink<>(); + Sink rightSink = new Sink<>(); boolean leftAdvance = lefts.tryAdvance(leftSink); diff --git a/src/main/java/org/springframework/data/web/JsonProjectingMethodInterceptorFactory.java b/src/main/java/org/springframework/data/web/JsonProjectingMethodInterceptorFactory.java index 2006fed128..2fb8ac9b72 100644 --- a/src/main/java/org/springframework/data/web/JsonProjectingMethodInterceptorFactory.java +++ b/src/main/java/org/springframework/data/web/JsonProjectingMethodInterceptorFactory.java @@ -53,6 +53,7 @@ * @author Oliver Gierke * @author Mark Paluch * @author Mikhael Sokolov + * @author Ngoc Nhan * @soundtrack Jeff Coffin - Fruitcake (The Inside Of The Outside) * @since 1.13 */ @@ -97,7 +98,7 @@ public JsonProjectingMethodInterceptorFactory(JsonProvider jsonProvider, Mapping @Override public MethodInterceptor createMethodInterceptor(Object source, Class targetType) { - DocumentContext context = InputStream.class.isInstance(source) ? this.context.parse((InputStream) source) + DocumentContext context = source instanceof InputStream inputStream ? this.context.parse(inputStream) : this.context.parse(source); return new InputMessageProjecting(context); @@ -106,12 +107,12 @@ public MethodInterceptor createMethodInterceptor(Object source, Class targetT @Override public boolean supports(Object source, Class targetType) { - if (InputStream.class.isInstance(source) || JSONObject.class.isInstance(source) - || JSONArray.class.isInstance(source)) { + if (source instanceof InputStream || source instanceof JSONObject + || source instanceof JSONArray) { return true; } - return Map.class.isInstance(source) && hasJsonPathAnnotation(targetType); + return source instanceof Map && hasJsonPathAnnotation(targetType); } /** diff --git a/src/main/java/org/springframework/data/web/SpringDataAnnotationUtils.java b/src/main/java/org/springframework/data/web/SpringDataAnnotationUtils.java index 62ec4e2600..0718754490 100644 --- a/src/main/java/org/springframework/data/web/SpringDataAnnotationUtils.java +++ b/src/main/java/org/springframework/data/web/SpringDataAnnotationUtils.java @@ -36,6 +36,7 @@ * @author Oliver Gierke * @author Mark Paluch * @author Johannes Englmeier + * @author Ngoc Nhan */ abstract class SpringDataAnnotationUtils { @@ -173,8 +174,8 @@ public static void assertQualifiersFor(Class[] parameterTypes, Annotation[][] private static Qualifier findAnnotation(Annotation[] annotations) { for (Annotation annotation : annotations) { - if (annotation instanceof Qualifier) { - return (Qualifier) annotation; + if (annotation instanceof Qualifier qualifier) { + return qualifier; } } diff --git a/src/main/java/org/springframework/data/web/XmlBeamHttpMessageConverter.java b/src/main/java/org/springframework/data/web/XmlBeamHttpMessageConverter.java index 7db27e6746..4d43316963 100644 --- a/src/main/java/org/springframework/data/web/XmlBeamHttpMessageConverter.java +++ b/src/main/java/org/springframework/data/web/XmlBeamHttpMessageConverter.java @@ -42,6 +42,7 @@ * @author Oliver Gierke * @author Christoph Strobl * @author Johannes Englmeier + * @author Ngoc Nhan * @see https://www.xmlbeam.org * @soundtrack Dr. Kobayashi Maru & The Mothership Connection - Anthem (EPisode One) */ @@ -120,7 +121,7 @@ protected Object readInternal(Class clazz, HttpInputMessage in Throwable cause = o_O.getCause(); - if (SAXParseException.class.isInstance(cause)) { + if (cause instanceof SAXParseException) { throw new HttpMessageNotReadableException("Cannot read input message", cause, inputMessage); } else { throw o_O; diff --git a/src/main/java/org/springframework/data/web/config/ProjectingArgumentResolverRegistrar.java b/src/main/java/org/springframework/data/web/config/ProjectingArgumentResolverRegistrar.java index cdbad56ce3..ab9a24c7de 100644 --- a/src/main/java/org/springframework/data/web/config/ProjectingArgumentResolverRegistrar.java +++ b/src/main/java/org/springframework/data/web/config/ProjectingArgumentResolverRegistrar.java @@ -40,6 +40,7 @@ * @author Oliver Gierke * @author Mark Paluch * @author Johannes Englmeier + * @author Ngoc Nhan * @soundtrack Apparat With Soap & Skin - Goodbye (Dark Theme Song - https://www.youtube.com/watch?v=66VnOdk6oto) */ @Configuration(proxyBeanMethods = false) @@ -103,11 +104,10 @@ public Object postProcessBeforeInitialization(Object bean, String beanName) thro @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { - if (!RequestMappingHandlerAdapter.class.isInstance(bean)) { + if (!(bean instanceof RequestMappingHandlerAdapter adapter)) { return bean; } - RequestMappingHandlerAdapter adapter = (RequestMappingHandlerAdapter) bean; List currentResolvers = adapter.getArgumentResolvers(); if (currentResolvers == null) { @@ -115,7 +115,7 @@ public Object postProcessAfterInitialization(Object bean, String beanName) throw String.format("No HandlerMethodArgumentResolvers found in RequestMappingHandlerAdapter %s", beanName)); } - List newResolvers = new ArrayList( + List newResolvers = new ArrayList<>( currentResolvers.size() + 1); newResolvers.add(resolver); newResolvers.addAll(currentResolvers); 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 383ceee7e4..82e74dd853 100644 --- a/src/main/java/org/springframework/data/web/config/SpringDataWebConfiguration.java +++ b/src/main/java/org/springframework/data/web/config/SpringDataWebConfiguration.java @@ -57,6 +57,7 @@ * @author Mark Paluch * @author Greg Turnquist * @author Yanming Zhou + * @author Ngoc Nhan */ @Configuration(proxyBeanMethods = false) public class SpringDataWebConfiguration implements WebMvcConfigurer, BeanClassLoaderAware { @@ -131,7 +132,7 @@ public void addFormatters(FormatterRegistry registry) { return; } - DomainClassConverter converter = new DomainClassConverter( + DomainClassConverter converter = new DomainClassConverter<>( conversionService); converter.setApplicationContext(context); }