Skip to content

Commit c32ae0d

Browse files
committed
Add MethodParameter accessor to AotQueryMethodGenerationContext.
Closes #3334
1 parent c21409c commit c32ae0d

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

src/main/java/org/springframework/data/repository/aot/generate/AotQueryMethodGenerationContext.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
import java.util.List;
2222

2323
import org.jspecify.annotations.Nullable;
24+
25+
import org.springframework.core.MethodParameter;
2426
import org.springframework.core.ResolvableType;
2527
import org.springframework.core.annotation.MergedAnnotation;
2628
import org.springframework.core.annotation.MergedAnnotationSelectors;
@@ -65,6 +67,17 @@ MethodMetadata getTargetMethodMetadata() {
6567
return targetMethodMetadata;
6668
}
6769

70+
/**
71+
* Lookup the {@link MethodParameter} by its {@link MethodParameter#getParameterName()}.
72+
*
73+
* @param name the name of the parameter to look up.
74+
* @return the found method parameter or {@literal null} if no parameter with the given name exists.
75+
*/
76+
@Nullable
77+
public MethodParameter getMethodParameter(String name) {
78+
return getTargetMethodMetadata().getMethodParameters().get(name);
79+
}
80+
6881
public RepositoryInformation getRepositoryInformation() {
6982
return repositoryInformation;
7083
}

src/main/java/org/springframework/data/repository/aot/generate/MethodMetadata.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
class MethodMetadata {
4242

4343
private final Map<String, ParameterSpec> methodArguments = new LinkedHashMap<>();
44+
private final Map<String, MethodParameter> methodParameters = new LinkedHashMap<>();
4445
private final Map<String, String> localVariables = new LinkedHashMap<>();
4546
private final ResolvableType actualReturnType;
4647
private final ResolvableType returnType;
@@ -66,6 +67,7 @@ private void initParameters(RepositoryInformation repositoryInformation, Method
6667
TypeName parameterType = TypeName.get(resolvableParameterType.getType());
6768

6869
addParameter(ParameterSpec.builder(parameterType, methodParameter.getParameterName()).build());
70+
methodParameters.put(methodParameter.getParameterName(), methodParameter);
6971
}
7072
}
7173

@@ -85,6 +87,10 @@ Map<String, ParameterSpec> getMethodArguments() {
8587
return methodArguments;
8688
}
8789

90+
Map<String, MethodParameter> getMethodParameters() {
91+
return methodParameters;
92+
}
93+
8894
@Nullable
8995
String getParameterName(int position) {
9096

0 commit comments

Comments
 (0)