|
41 | 41 | import javax.lang.model.element.Element; |
42 | 42 | import javax.lang.model.element.ExecutableElement; |
43 | 43 | import javax.lang.model.element.Modifier; |
| 44 | +import javax.lang.model.element.RecordComponentElement; |
44 | 45 | import javax.lang.model.element.TypeElement; |
45 | 46 | import javax.lang.model.type.DeclaredType; |
46 | 47 | import javax.lang.model.type.TypeKind; |
@@ -248,8 +249,21 @@ private <T> void resolveFinderMethods(CompilationController cc, TreePath path, S |
248 | 249 | Map<String, String> prop2Types = new HashMap<>(); |
249 | 250 | for (ExecutableElement method : ElementFilter.methodsIn(entity.getEnclosedElements())) { |
250 | 251 | String methodName = method.getSimpleName().toString(); |
251 | | - if (methodName.startsWith(GET) && method.getParameters().isEmpty()) { |
252 | | - prop2Types.put(methodName.substring(GET.length()), tu.getTypeName(method.getReturnType()).toString()); |
| 252 | + if (methodName.startsWith(GET) && methodName.length() > 3 && method.getParameters().isEmpty()) { |
| 253 | + TypeMirror type = method.getReturnType(); |
| 254 | + if (type.getKind() != TypeKind.ERROR) { |
| 255 | + methodName = methodName.substring(GET.length()); |
| 256 | + methodName = methodName.substring(0, 1).toUpperCase(Locale.ENGLISH) + methodName.substring(1); |
| 257 | + prop2Types.put(methodName, tu.getTypeName(type).toString()); |
| 258 | + } |
| 259 | + } |
| 260 | + } |
| 261 | + for (RecordComponentElement recordComponent : ElementFilter.recordComponentsIn(entity.getEnclosedElements())) { |
| 262 | + TypeMirror type = recordComponent.asType(); |
| 263 | + if (type.getKind() != TypeKind.ERROR) { |
| 264 | + String name = recordComponent.getSimpleName().toString(); |
| 265 | + name = name.substring(0, 1).toUpperCase(Locale.ENGLISH) + name.substring(1); |
| 266 | + prop2Types.put(name, tu.getTypeName(type).toString()); |
253 | 267 | } |
254 | 268 | } |
255 | 269 | addFindByCompletions(entity, prop2Types, prefix, full, consumer); |
|
0 commit comments