Skip to content

Commit 29d876d

Browse files
committed
Polish abd bit of fixing
1 parent 6a6e77f commit 29d876d

File tree

3 files changed

+20
-17
lines changed

3 files changed

+20
-17
lines changed

headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/app/JdtConfig.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,8 +236,7 @@ public class JdtConfig {
236236
switch(LspClient.currentClient()) {
237237
case VSCODE:
238238
case THEIA:
239-
return new DefaultBuildCommandProvider(server);
240-
// return new VSCodeBuildCommandProvider();
239+
return new VSCodeBuildCommandProvider();
241240
case ECLIPSE:
242241
return new VSCodeBuildCommandProvider();
243242
default:

headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/data/DataRepositoryAotMetadata.java

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
*******************************************************************************/
1111
package org.springframework.ide.vscode.boot.java.data;
1212

13+
import java.util.Objects;
1314
import java.util.Optional;
1415

1516
import org.eclipse.jdt.core.dom.IMethodBinding;
@@ -20,23 +21,25 @@
2021
public record DataRepositoryAotMetadata (String name, String type, DataRepositoryModule module, IDataRepositoryAotMethodMetadata[] methods) {
2122

2223
public Optional<IDataRepositoryAotMethodMetadata> findMethod(IMethodBinding method) {
23-
String name = method.getName();
24+
String methodName = method.getName();
2425

25-
for (IDataRepositoryAotMethodMetadata methodMetadata : methods()) {
26-
27-
if (methodMetadata.getName() != null && methodMetadata.getName().equals(name)) {
28-
29-
String signature = methodMetadata.getSignature();
30-
JLRMethod parsedMethodSignature = JLRMethodParser.parse(signature);
26+
if (methodName != null) {
27+
for (IDataRepositoryAotMethodMetadata methodMetadata : methods()) {
3128

32-
if (parsedMethodSignature.getFQClassName().equals(name())
33-
&& parsedMethodSignature.getMethodName().equals(method.getName())
34-
&& parsedMethodSignature.getReturnType().equals(method.getReturnType().getQualifiedName())
35-
&& parameterMatches(parsedMethodSignature, method)) {
36-
return Optional.of(methodMetadata);
29+
if (methodMetadata.getName() != null && methodMetadata.getName().equals(methodName)) {
30+
31+
String signature = methodMetadata.getSignature();
32+
JLRMethod parsedMethodSignature = JLRMethodParser.parse(signature);
33+
34+
if (Objects.equals(name(), parsedMethodSignature.getFQClassName())
35+
&& methodName.equals(parsedMethodSignature.getMethodName())
36+
&& Objects.equals(parsedMethodSignature.getReturnType(), method.getReturnType().getQualifiedName())
37+
&& parameterMatches(parsedMethodSignature, method)) {
38+
return Optional.of(methodMetadata);
39+
}
3740
}
3841
}
39-
}
42+
}
4043

4144
return Optional.empty();
4245
}

headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/data/DataRepositoryAotMetadataCodeLensProvider.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,8 @@ private List<CodeLens> createCodeLenses(IJavaProject project, MethodDeclaration
144144

145145
if (mb != null && hierarchyAnnot != null) {
146146

147-
getMetadata(repositoryMetadataService, project, mb).ifPresent(metadata -> metadata.findMethod(mb).ifPresent(methodMetadata -> {
147+
Optional<DataRepositoryAotMetadata> optMetadata = getMetadata(repositoryMetadataService, project, mb);
148+
optMetadata.ifPresent(metadata -> metadata.findMethod(mb).ifPresent(methodMetadata -> {
148149
boolean isQueryAnnotated = hierarchyAnnot.isAnnotatedWith(mb, Annotations.DATA_JPA_QUERY)
149150
|| hierarchyAnnot.isAnnotatedWith(mb, Annotations.DATA_MONGODB_QUERY);
150151

@@ -172,7 +173,7 @@ private List<CodeLens> createCodeLenses(IJavaProject project, MethodDeclaration
172173
}));
173174

174175
if (ProjectBuild.MAVEN_PROJECT_TYPE.equals(project.getProjectBuild().getType())) {
175-
String refreshCmdTitle = codeLenses.isEmpty() ? "Show AOT-generated Implementation, Query, etc..." : "Refresh";
176+
String refreshCmdTitle = optMetadata.map(m -> "Refresh").orElse("Show AOT-generated Implementation, Query, etc...");
176177
Command refreshCmd = repositoryMetadataService.regenerateMetadataCommand(project);
177178
refreshCmd.setTitle(refreshCmdTitle);
178179
codeLenses.add(new CodeLens(range, refreshCmd, null));

0 commit comments

Comments
 (0)