Merge pull request #40085 from FelixDes

* pr/40085:
  Apply instanceof pattern matching

Closes gh-40085
This commit is contained in:
Scott Frederick 2024-04-03 16:30:28 -05:00
commit e2ec066fcf
23 changed files with 76 additions and 78 deletions

View File

@ -40,9 +40,8 @@ abstract class AbstractDependencyVersion implements DependencyVersion {
@Override @Override
public boolean isUpgrade(DependencyVersion candidate, boolean movingToSnapshots) { public boolean isUpgrade(DependencyVersion candidate, boolean movingToSnapshots) {
ComparableVersion comparableCandidate = (candidate instanceof AbstractDependencyVersion) ComparableVersion comparableCandidate = (candidate instanceof AbstractDependencyVersion abstractDependencyVersion)
? ((AbstractDependencyVersion) candidate).comparableVersion ? abstractDependencyVersion.comparableVersion : new ComparableVersion(candidate.toString());
: new ComparableVersion(candidate.toString());
return comparableCandidate.compareTo(this.comparableVersion) > 0; return comparableCandidate.compareTo(this.comparableVersion) > 0;
} }

View File

@ -66,8 +66,8 @@ class HttpGraphQlTesterContextCustomizer implements ContextCustomizer {
private void registerHttpGraphQlTester(ConfigurableApplicationContext context) { private void registerHttpGraphQlTester(ConfigurableApplicationContext context) {
ConfigurableListableBeanFactory beanFactory = context.getBeanFactory(); ConfigurableListableBeanFactory beanFactory = context.getBeanFactory();
if (beanFactory instanceof BeanDefinitionRegistry) { if (beanFactory instanceof BeanDefinitionRegistry beanDefinitionRegistry) {
registerHttpGraphQlTester((BeanDefinitionRegistry) beanFactory); registerHttpGraphQlTester(beanDefinitionRegistry);
} }
} }

View File

@ -106,8 +106,8 @@ final class ModifiedClassPathClassLoader extends URLClassLoader {
private static Collection<AnnotatedElement> getAnnotatedElements(Object[] array) { private static Collection<AnnotatedElement> getAnnotatedElements(Object[] array) {
Set<AnnotatedElement> result = new LinkedHashSet<>(); Set<AnnotatedElement> result = new LinkedHashSet<>();
for (Object item : array) { for (Object item : array) {
if (item instanceof AnnotatedElement) { if (item instanceof AnnotatedElement annotatedElement) {
result.add((AnnotatedElement) item); result.add(annotatedElement);
} }
else if (ObjectUtils.isArray(item)) { else if (ObjectUtils.isArray(item)) {
result.addAll(getAnnotatedElements(ObjectUtils.toObjectArray(item))); result.addAll(getAnnotatedElements(ObjectUtils.toObjectArray(item)));

View File

@ -305,8 +305,8 @@ class BeanDefinitionLoader {
ClassExcludeFilter(Object... sources) { ClassExcludeFilter(Object... sources) {
super(false, false); super(false, false);
for (Object source : sources) { for (Object source : sources) {
if (source instanceof Class<?>) { if (source instanceof Class<?> classSource) {
this.classNames.add(((Class<?>) source).getName()); this.classNames.add(classSource.getName());
} }
} }
} }

View File

@ -86,8 +86,8 @@ public class ResourceBanner implements Banner {
*/ */
protected List<PropertyResolver> getPropertyResolvers(Environment environment, Class<?> sourceClass) { protected List<PropertyResolver> getPropertyResolvers(Environment environment, Class<?> sourceClass) {
MutablePropertySources sources = new MutablePropertySources(); MutablePropertySources sources = new MutablePropertySources();
if (environment instanceof ConfigurableEnvironment) { if (environment instanceof ConfigurableEnvironment configurableEnvironment) {
((ConfigurableEnvironment) environment).getPropertySources().forEach(sources::addLast); configurableEnvironment.getPropertySources().forEach(sources::addLast);
} }
sources.addLast(getTitleSource(sourceClass)); sources.addLast(getTitleSource(sourceClass));
sources.addLast(getAnsiSource()); sources.addLast(getAnsiSource());

View File

@ -98,7 +98,7 @@ public class ApplicationAvailabilityBean
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private Class<? extends AvailabilityState> getStateType(AvailabilityState state) { private Class<? extends AvailabilityState> getStateType(AvailabilityState state) {
Class<?> type = (state instanceof Enum) ? ((Enum<?>) state).getDeclaringClass() : state.getClass(); Class<?> type = (state instanceof Enum<?> enumState) ? enumState.getDeclaringClass() : state.getClass();
return (Class<? extends AvailabilityState>) type; return (Class<? extends AvailabilityState>) type;
} }

View File

@ -60,8 +60,8 @@ public class AvailabilityChangeEvent<S extends AvailabilityState> extends Payloa
private Class<?> getStateType() { private Class<?> getStateType() {
S state = getState(); S state = getState();
if (state instanceof Enum) { if (state instanceof Enum<?> enumState) {
return ((Enum<?>) state).getDeclaringClass(); return enumState.getDeclaringClass();
} }
return state.getClass(); return state.getClass();
} }

View File

@ -127,8 +127,8 @@ public enum CloudPlatform {
&& environmentPropertySource.containsProperty(KUBERNETES_SERVICE_PORT)) { && environmentPropertySource.containsProperty(KUBERNETES_SERVICE_PORT)) {
return true; return true;
} }
if (environmentPropertySource instanceof EnumerablePropertySource) { if (environmentPropertySource instanceof EnumerablePropertySource<?> enumerablePropertySource) {
return isAutoDetected((EnumerablePropertySource<?>) environmentPropertySource); return isAutoDetected(enumerablePropertySource);
} }
} }
return false; return false;

View File

@ -225,8 +225,8 @@ public class LoggingApplicationListener implements GenericApplicationListener {
else if (event instanceof ApplicationPreparedEvent preparedEvent) { else if (event instanceof ApplicationPreparedEvent preparedEvent) {
onApplicationPreparedEvent(preparedEvent); onApplicationPreparedEvent(preparedEvent);
} }
else if (event instanceof ContextClosedEvent) { else if (event instanceof ContextClosedEvent contextClosedEvent) {
onContextClosedEvent((ContextClosedEvent) event); onContextClosedEvent(contextClosedEvent);
} }
else if (event instanceof ApplicationFailedEvent) { else if (event instanceof ApplicationFailedEvent) {
onApplicationFailedEvent(); onApplicationFailedEvent();

View File

@ -167,10 +167,10 @@ class SpringConfigurationPropertySource implements ConfigurationPropertySource {
private static boolean isFullEnumerable(PropertySource<?> source) { private static boolean isFullEnumerable(PropertySource<?> source) {
PropertySource<?> rootSource = getRootSource(source); PropertySource<?> rootSource = getRootSource(source);
if (rootSource.getSource() instanceof Map) { if (rootSource.getSource() instanceof Map<?, ?> map) {
// Check we're not security restricted // Check we're not security restricted
try { try {
((Map<?, ?>) rootSource.getSource()).size(); map.size();
} }
catch (UnsupportedOperationException ex) { catch (UnsupportedOperationException ex) {
return false; return false;
@ -180,8 +180,8 @@ class SpringConfigurationPropertySource implements ConfigurationPropertySource {
} }
private static PropertySource<?> getRootSource(PropertySource<?> source) { private static PropertySource<?> getRootSource(PropertySource<?> source) {
while (source.getSource() != null && source.getSource() instanceof PropertySource) { while (source.getSource() != null && source.getSource() instanceof PropertySource<?> propertySource) {
source = (PropertySource<?>) source.getSource(); source = propertySource;
} }
return source; return source;
} }

View File

@ -67,8 +67,8 @@ class SpringConfigurationPropertySources implements Iterable<ConfigurationProper
return result; return result;
} }
result = SpringConfigurationPropertySource.from(source); result = SpringConfigurationPropertySource.from(source);
if (source instanceof OriginLookup) { if (source instanceof OriginLookup<?> originLookup) {
result = result.withPrefix(((OriginLookup<?>) source).getPrefix()); result = result.withPrefix(originLookup.getPrefix());
} }
this.cache.put(source, result); this.cache.put(source, result);
return result; return result;

View File

@ -169,8 +169,8 @@ class SpringIterableConfigurationPropertySource extends SpringConfigurationPrope
private boolean isImmutablePropertySource() { private boolean isImmutablePropertySource() {
EnumerablePropertySource<?> source = getPropertySource(); EnumerablePropertySource<?> source = getPropertySource();
if (source instanceof OriginLookup) { if (source instanceof OriginLookup<?> originLookup) {
return ((OriginLookup<?>) source).isImmutable(); return originLookup.isImmutable();
} }
if (StandardEnvironment.SYSTEM_ENVIRONMENT_PROPERTY_SOURCE_NAME.equals(source.getName())) { if (StandardEnvironment.SYSTEM_ENVIRONMENT_PROPERTY_SOURCE_NAME.equals(source.getName())) {
return source.getSource() == System.getenv(); return source.getSource() == System.getenv();

View File

@ -43,8 +43,8 @@ public class UnboundElementsSourceFilter implements Function<ConfigurationProper
@Override @Override
public Boolean apply(ConfigurationPropertySource configurationPropertySource) { public Boolean apply(ConfigurationPropertySource configurationPropertySource) {
Object underlyingSource = configurationPropertySource.getUnderlyingSource(); Object underlyingSource = configurationPropertySource.getUnderlyingSource();
if (underlyingSource instanceof PropertySource) { if (underlyingSource instanceof PropertySource<?> propertySource) {
String name = ((PropertySource<?>) underlyingSource).getName(); String name = propertySource.getName();
return !BENIGN_PROPERTY_SOURCE_NAMES.contains(name); return !BENIGN_PROPERTY_SOURCE_NAMES.contains(name);
} }
return true; return true;

View File

@ -278,20 +278,20 @@ public class ApplicationConversionService extends FormattingConversionService {
beans.addAll(beanFactory.getBeansOfType(Printer.class).values()); beans.addAll(beanFactory.getBeansOfType(Printer.class).values());
beans.addAll(beanFactory.getBeansOfType(Parser.class).values()); beans.addAll(beanFactory.getBeansOfType(Parser.class).values());
for (Object bean : beans) { for (Object bean : beans) {
if (bean instanceof GenericConverter) { if (bean instanceof GenericConverter genericConverter) {
registry.addConverter((GenericConverter) bean); registry.addConverter(genericConverter);
} }
else if (bean instanceof Converter) { else if (bean instanceof Converter<?, ?> converter) {
registry.addConverter((Converter<?, ?>) bean); registry.addConverter(converter);
} }
else if (bean instanceof Formatter) { else if (bean instanceof Formatter<?> formatter) {
registry.addFormatter((Formatter<?>) bean); registry.addFormatter(formatter);
} }
else if (bean instanceof Printer) { else if (bean instanceof Printer<?> printer) {
registry.addPrinter((Printer<?>) bean); registry.addPrinter(printer);
} }
else if (bean instanceof Parser) { else if (bean instanceof Parser<?> parser) {
registry.addParser((Parser<?>) bean); registry.addParser(parser);
} }
} }
} }

View File

@ -126,20 +126,20 @@ public class SpringApplicationJsonEnvironmentPostProcessor implements Environmen
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private void extract(String name, Map<String, Object> result, Object value) { private void extract(String name, Map<String, Object> result, Object value) {
if (value instanceof Map) { if (value instanceof Map<?, ?> map) {
if (CollectionUtils.isEmpty((Map<?, ?>) value)) { if (CollectionUtils.isEmpty(map)) {
result.put(name, value); result.put(name, value);
return; return;
} }
flatten(name, result, (Map<String, Object>) value); flatten(name, result, (Map<String, Object>) value);
} }
else if (value instanceof Collection) { else if (value instanceof Collection<?> collection) {
if (CollectionUtils.isEmpty((Collection<?>) value)) { if (CollectionUtils.isEmpty(collection)) {
result.put(name, value); result.put(name, value);
return; return;
} }
int index = 0; int index = 0;
for (Object object : (Collection<Object>) value) { for (Object object : collection) {
extract(name + "[" + index + "]", result, object); extract(name + "[" + index + "]", result, object);
index++; index++;
} }

View File

@ -102,14 +102,14 @@ public class JsonComponentModule extends SimpleModule implements BeanFactoryAwar
} }
private void addJsonBean(Object bean, Class<?>[] types, Scope scope) { private void addJsonBean(Object bean, Class<?>[] types, Scope scope) {
if (bean instanceof JsonSerializer) { if (bean instanceof JsonSerializer<?> jsonSerializer) {
addJsonSerializerBean((JsonSerializer<?>) bean, scope, types); addJsonSerializerBean(jsonSerializer, scope, types);
} }
else if (bean instanceof JsonDeserializer) { else if (bean instanceof JsonDeserializer<?> jsonDeserializer) {
addJsonDeserializerBean((JsonDeserializer<?>) bean, types); addJsonDeserializerBean(jsonDeserializer, types);
} }
else if (bean instanceof KeyDeserializer) { else if (bean instanceof KeyDeserializer keyDeserializer) {
addKeyDeserializerBean((KeyDeserializer) bean, types); addKeyDeserializerBean(keyDeserializer, types);
} }
for (Class<?> innerClass : bean.getClass().getDeclaredClasses()) { for (Class<?> innerClass : bean.getClass().getDeclaredClasses()) {
if (isSuitableInnerClass(innerClass)) { if (isSuitableInnerClass(innerClass)) {

View File

@ -78,13 +78,13 @@ public class OptionsCapableConnectionFactory implements Wrapped<ConnectionFactor
* @since 2.5.1 * @since 2.5.1
*/ */
public static OptionsCapableConnectionFactory unwrapFrom(ConnectionFactory connectionFactory) { public static OptionsCapableConnectionFactory unwrapFrom(ConnectionFactory connectionFactory) {
if (connectionFactory instanceof OptionsCapableConnectionFactory) { if (connectionFactory instanceof OptionsCapableConnectionFactory optionsCapableConnectionFactory) {
return (OptionsCapableConnectionFactory) connectionFactory; return optionsCapableConnectionFactory;
} }
if (connectionFactory instanceof Wrapped) { if (connectionFactory instanceof Wrapped<?> wrappedConnectionFactory) {
Object unwrapped = ((Wrapped<?>) connectionFactory).unwrap(); Object unwrapped = wrappedConnectionFactory.unwrap();
if (unwrapped instanceof ConnectionFactory) { if (unwrapped instanceof ConnectionFactory unwrappedConnectionFactory) {
return unwrapFrom((ConnectionFactory) unwrapped); return unwrapFrom(unwrappedConnectionFactory);
} }
} }
return null; return null;

View File

@ -34,9 +34,8 @@ class ForwardHeadersCustomizer implements JettyServerCustomizer {
ForwardedRequestCustomizer customizer = new ForwardedRequestCustomizer(); ForwardedRequestCustomizer customizer = new ForwardedRequestCustomizer();
for (Connector connector : server.getConnectors()) { for (Connector connector : server.getConnectors()) {
for (ConnectionFactory connectionFactory : connector.getConnectionFactories()) { for (ConnectionFactory connectionFactory : connector.getConnectionFactories()) {
if (connectionFactory instanceof HttpConfiguration.ConnectionFactory) { if (connectionFactory instanceof HttpConfiguration.ConnectionFactory jettyConnectionFactory) {
((HttpConfiguration.ConnectionFactory) connectionFactory).getHttpConfiguration() jettyConnectionFactory.getHttpConfiguration().addCustomizer(customizer);
.addCustomizer(customizer);
} }
} }
} }

View File

@ -41,8 +41,8 @@ class CompressionConnectorCustomizer implements TomcatConnectorCustomizer {
public void customize(Connector connector) { public void customize(Connector connector) {
if (this.compression != null && this.compression.getEnabled()) { if (this.compression != null && this.compression.getEnabled()) {
ProtocolHandler handler = connector.getProtocolHandler(); ProtocolHandler handler = connector.getProtocolHandler();
if (handler instanceof AbstractHttp11Protocol) { if (handler instanceof AbstractHttp11Protocol<?> abstractHttp11Protocol) {
customize((AbstractHttp11Protocol<?>) handler); customize(abstractHttp11Protocol);
} }
} }
} }

View File

@ -188,8 +188,8 @@ public class TomcatReactiveWebServerFactory extends AbstractReactiveWebServerFac
if (StringUtils.hasText(getServerHeader())) { if (StringUtils.hasText(getServerHeader())) {
connector.setProperty("server", getServerHeader()); connector.setProperty("server", getServerHeader());
} }
if (connector.getProtocolHandler() instanceof AbstractProtocol) { if (connector.getProtocolHandler() instanceof AbstractProtocol<?> abstractProtocol) {
customizeProtocol((AbstractProtocol<?>) connector.getProtocolHandler()); customizeProtocol(abstractProtocol);
} }
invokeProtocolHandlerCustomizers(connector.getProtocolHandler()); invokeProtocolHandlerCustomizers(connector.getProtocolHandler());
if (getUriEncoding() != null) { if (getUriEncoding() != null) {

View File

@ -328,8 +328,8 @@ public class TomcatServletWebServerFactory extends AbstractServletWebServerFacto
if (StringUtils.hasText(getServerHeader())) { if (StringUtils.hasText(getServerHeader())) {
connector.setProperty("server", getServerHeader()); connector.setProperty("server", getServerHeader());
} }
if (connector.getProtocolHandler() instanceof AbstractProtocol) { if (connector.getProtocolHandler() instanceof AbstractProtocol<?> abstractProtocol) {
customizeProtocol((AbstractProtocol<?>) connector.getProtocolHandler()); customizeProtocol(abstractProtocol);
} }
invokeProtocolHandlerCustomizers(connector.getProtocolHandler()); invokeProtocolHandlerCustomizers(connector.getProtocolHandler());
if (getUriEncoding() != null) { if (getUriEncoding() != null) {

View File

@ -102,21 +102,21 @@ public class ServletContextInitializerBeans extends AbstractCollection<ServletCo
private void addServletContextInitializerBean(String beanName, ServletContextInitializer initializer, private void addServletContextInitializerBean(String beanName, ServletContextInitializer initializer,
ListableBeanFactory beanFactory) { ListableBeanFactory beanFactory) {
if (initializer instanceof ServletRegistrationBean) { if (initializer instanceof ServletRegistrationBean<?> servletRegistrationBean) {
Servlet source = ((ServletRegistrationBean<?>) initializer).getServlet(); Servlet source = servletRegistrationBean.getServlet();
addServletContextInitializerBean(Servlet.class, beanName, initializer, beanFactory, source); addServletContextInitializerBean(Servlet.class, beanName, servletRegistrationBean, beanFactory, source);
} }
else if (initializer instanceof FilterRegistrationBean) { else if (initializer instanceof FilterRegistrationBean<?> filterRegistrationBean) {
Filter source = ((FilterRegistrationBean<?>) initializer).getFilter(); Filter source = filterRegistrationBean.getFilter();
addServletContextInitializerBean(Filter.class, beanName, initializer, beanFactory, source); addServletContextInitializerBean(Filter.class, beanName, filterRegistrationBean, beanFactory, source);
} }
else if (initializer instanceof DelegatingFilterProxyRegistrationBean) { else if (initializer instanceof DelegatingFilterProxyRegistrationBean registrationBean) {
String source = ((DelegatingFilterProxyRegistrationBean) initializer).getTargetBeanName(); String source = registrationBean.getTargetBeanName();
addServletContextInitializerBean(Filter.class, beanName, initializer, beanFactory, source); addServletContextInitializerBean(Filter.class, beanName, registrationBean, beanFactory, source);
} }
else if (initializer instanceof ServletListenerRegistrationBean) { else if (initializer instanceof ServletListenerRegistrationBean<?> registrationBean) {
EventListener source = ((ServletListenerRegistrationBean<?>) initializer).getListener(); EventListener source = registrationBean.getListener();
addServletContextInitializerBean(EventListener.class, beanName, initializer, beanFactory, source); addServletContextInitializerBean(EventListener.class, beanName, registrationBean, beanFactory, source);
} }
else { else {
addServletContextInitializerBean(ServletContextInitializer.class, beanName, initializer, beanFactory, addServletContextInitializerBean(ServletContextInitializer.class, beanName, initializer, beanFactory,

View File

@ -1417,8 +1417,8 @@ class SpringApplicationTests {
private <S extends AvailabilityState> ArgumentMatcher<ApplicationEvent> isAvailabilityChangeEventWithState( private <S extends AvailabilityState> ArgumentMatcher<ApplicationEvent> isAvailabilityChangeEventWithState(
S state) { S state) {
return (argument) -> (argument instanceof AvailabilityChangeEvent<?>) return (argument) -> (argument instanceof AvailabilityChangeEvent<?> availabilityChangeEvent)
&& ((AvailabilityChangeEvent<?>) argument).getState().equals(state); && availabilityChangeEvent.getState().equals(state);
} }
private <E extends ApplicationEvent> AtomicReference<E> addListener(SpringApplication application, private <E extends ApplicationEvent> AtomicReference<E> addListener(SpringApplication application,