From c9b526f2f683fb8c9636270879edaa5823a1d12e Mon Sep 17 00:00:00 2001 From: Martin Lippert Date: Wed, 24 May 2023 13:11:40 +0200 Subject: [PATCH] isCompatibleWith now takes bean type itself into account as well --- .../ide/vscode/commons/protocol/spring/Bean.java | 2 +- .../boot/metamodel/test/SpringMetamodelIndexerBeansTest.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/headless-services/commons/commons-lsp-extensions/src/main/java/org/springframework/ide/vscode/commons/protocol/spring/Bean.java b/headless-services/commons/commons-lsp-extensions/src/main/java/org/springframework/ide/vscode/commons/protocol/spring/Bean.java index 226a526d2..89a7ceb12 100644 --- a/headless-services/commons/commons-lsp-extensions/src/main/java/org/springframework/ide/vscode/commons/protocol/spring/Bean.java +++ b/headless-services/commons/commons-lsp-extensions/src/main/java/org/springframework/ide/vscode/commons/protocol/spring/Bean.java @@ -58,7 +58,7 @@ public class Bean { } public boolean isTypeCompatibleWith(String type) { - return supertypes.contains(type); + return type != null && ((this.type != null && this.type.equals(type)) || (supertypes.contains(type))); } @Override diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/metamodel/test/SpringMetamodelIndexerBeansTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/metamodel/test/SpringMetamodelIndexerBeansTest.java index f61941fae..46b566357 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/metamodel/test/SpringMetamodelIndexerBeansTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/metamodel/test/SpringMetamodelIndexerBeansTest.java @@ -230,6 +230,7 @@ public class SpringMetamodelIndexerBeansTest { assertTrue(beans[0].isTypeCompatibleWith("org.test.supertypes.Interface2OfBeanWithSupertypes")); assertTrue(beans[0].isTypeCompatibleWith("org.test.supertypes.InterfaceOfAbstractBean")); assertTrue(beans[0].isTypeCompatibleWith("org.test.supertypes.BaseClassOfAbstractBeanWithSupertypes")); + assertTrue(beans[0].isTypeCompatibleWith("org.test.BeanWithSupertypes")); assertFalse(beans[0].isTypeCompatibleWith("java.lang.String")); assertFalse(beans[0].isTypeCompatibleWith("java.util.Comparator"));